<?xml version="1.0" encoding="utf-8" ?>

<rss version="2.0" 
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:admin="http://webns.net/mvcb/"
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
   xmlns:wfw="http://wellformedweb.org/CommentAPI/"
   xmlns:content="http://purl.org/rss/1.0/modules/content/"
   >
<channel>
    <title>mutt-ng development blog</title>
    <link>http://mutt-ng.supersized.org/</link>
    <description>mutt-ng is a fork from the mutt mail client. Here you can track the latest things going on in the mutt-ng development team.</description>
    <dc:language>en</dc:language>
    <generator>Serendipity 1.3-alpha1 - http://www.s9y.org/</generator>
    <pubDate>Sat, 04 Nov 2006 10:41:40 GMT</pubDate>

    <image>
        <url>http://mutt-ng.supersized.org/templates/default/img/s9y_banner_small.png</url>
        <title>RSS: mutt-ng development blog - mutt-ng is a fork from the mutt mail client. Here you can track the latest things going on in the mutt-ng development team.</title>
        <link>http://mutt-ng.supersized.org/</link>
        <width>100</width>
        <height>21</height>
    </image>

<item>
    <title>mutt-ng isn't dead!</title>
    <link>http://mutt-ng.supersized.org/archives/43-mutt-ng-isnt-dead!.html</link>
    
    <comments>http://mutt-ng.supersized.org/archives/43-mutt-ng-isnt-dead!.html#comments</comments>
    <wfw:comment>http://mutt-ng.supersized.org/wfwcomment.php?cid=43</wfw:comment>

    <slash:comments>12</slash:comments>
    <wfw:commentRss>http://mutt-ng.supersized.org/rss.php?version=2.0&amp;type=comments&amp;cid=43</wfw:commentRss>
    

    <author>nospam@example.com (krennmair)</author>
    <content:encoded>
    As some of you may have noticed, mutt-ng development came to a halt quite a while ago. The problem was that mutt-ng, in its original form, wasn&#039;t really maintainable anymore. We had huge issues merging changes that happened in mutt, as well as newer versions of the patches that we had integrated into mutt-ng. This led to a total lack of motivation to push mutt-ng development forward, and eventually all efforts were suspended.&lt;br /&gt;
&lt;br /&gt;
Recently, I collected my thoughts about what could have been done better in the whole development, and my conclusion was that a fork can&#039;t survive without a certain user community, and the mutt-ng community never really got that big. Another big issue was the lack of the right tools, or at least the knowledge about them, e.g. we had absolutely no patch management.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;
The consequence of all that was that I decided to &quot;restart&quot; the whole project, but with different goals. The new mutt-ng isn&#039;t supposed to be a fork anymore, but instead a well-integrated set of patches against the latest version of mutt. I experimented a little bit with different patch management tools, and decided to use &lt;a href=&quot;http://savannah.nongnu.org/projects/quilt/&quot;&gt;quilt&lt;/a&gt; in combination with a Subversion repository. For those who don&#039;t know quilt: it manages a stack of patches, and you can push and pop them. The patches themselves are stored in a subdirectory called &quot;patches&quot;. When you&#039;re a certain patch, you can edit some files, and then refresh the patch so that your changes are reflected in the corresponding patch file. To change a patch to a newer version, all you need to do is to pop as far as the patch before the patch to be replaced, copy the new patch over the old patch, and push it. If there are any conflicts, force the push, correct the conflicts, and refresh the patch. Then push the rest of the patches, which usually works with no or little extra work. This means that managing a relatively big set of patches is quite simple, while quilt manages all the &quot;dirty&quot; stuff.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;
So far, I managed to reintegrate most of the patches we had in mutt-ng, and also to port some of the mutt-ng-specific features and bugfixes. The new mutt-ng isn&#039;t as complete as the old one, but its pretty usable, and the most important things like sidebar and NNTP support work already. If you want to have a look at the current state, read &lt;a href=&quot;http://bereshit.synflood.at/svn/mutt-patches/trunk/README&quot;&gt;this description&lt;/a&gt; on how to apply these patches. As stated above, you will need quilt in order to use it.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;
Feedback is welcome, and I would also like to know if this new development model is desired and accepted by the community. 
    </content:encoded>

    <pubDate>Sat, 28 Oct 2006 13:51:01 +0200</pubDate>
    <guid isPermaLink="false">http://mutt-ng.supersized.org/archives/43-guid.html</guid>
    
</item>
<item>
    <title>Insight Rewrite: Licensing</title>
    <link>http://mutt-ng.supersized.org/archives/42-Insight-Rewrite-Licensing.html</link>
    
    <comments>http://mutt-ng.supersized.org/archives/42-Insight-Rewrite-Licensing.html#comments</comments>
    <wfw:comment>http://mutt-ng.supersized.org/wfwcomment.php?cid=42</wfw:comment>

    <slash:comments>2</slash:comments>
    <wfw:commentRss>http://mutt-ng.supersized.org/rss.php?version=2.0&amp;type=comments&amp;cid=42</wfw:commentRss>
    

    <author>nospam@example.com (Rocco Rutte)</author>
    <content:encoded>
    Today&#039;s topic is more of a religious nature: Licensing.&lt;br /&gt;
&lt;br/&gt;&lt;br/&gt;&lt;br /&gt;
Until now, all files have been just licensed under the GPL. We now switched to a mixed system which makes sense for us.&lt;br /&gt;
&lt;br/&gt;&lt;br/&gt;&lt;br /&gt;
The new licenses we use include: GPL (of course), LGPL and public domain.&lt;br /&gt;
&lt;br/&gt;&lt;br/&gt;&lt;br /&gt;
To start with the latter: we took some minimal implementations from mailing lists or other publicly available archives and silently used them. To tag them as GPL is not correct as by appearing publicly we consider these to be public domain already. Also, we put the examples of the manual and some tool scripts under it. The GPL is fine but for some simple scripts this is just overkill.&lt;br /&gt;
&lt;br/&gt;&lt;br/&gt;&lt;br /&gt;
LGPL. In the very end we want to at least have the core part under LGPL. The reason is quite simple: there&#039;re no real algorithms but rather wrapper functions putting libraries (which are themselves under LGPL) behind a convenient API for use in muttng. As the underlying libraries are LGPL to have proprietary software benefit from it, why shouldn&#039;t benefits from our abstraction layer be possible? Currently only the files we wrote completely from scratch are put under it. Files containing portions of old code are left under GPL, of course.&lt;br /&gt;
&lt;br/&gt;&lt;br/&gt;&lt;br /&gt;
GPL. Right now the libmuttng part contains just too many fractions of old code so it cannot be simply put under LGPL. We hope we have time to replace these parts step by step so we can replace GPL-dependencies of our new code by new LGPL-code to, in the end, make libmuttng licensed under LGPL, too. The muttng part (i.e. all tools and applications) will remain GPL as &quot;just an example of how to use the libraries.&quot;&lt;br /&gt;
&lt;br/&gt;&lt;br/&gt;&lt;br /&gt;
As it turns out, there always are dicussions when (partial) license switches appear. So everyone is invited to comment on it.&lt;br /&gt;
&lt;br/&gt;&lt;br/&gt;&lt;br /&gt;
If somebody discovers parts of old code now tagged as being LGPL, please notify us as this is a serious mistake and license violation not done intentionally. 
    </content:encoded>

    <pubDate>Thu, 19 Jan 2006 12:03:46 +0100</pubDate>
    <guid isPermaLink="false">http://mutt-ng.supersized.org/archives/42-guid.html</guid>
    
</item>
<item>
    <title>mutt-ng at 22C3</title>
    <link>http://mutt-ng.supersized.org/archives/41-mutt-ng-at-22C3.html</link>
    
    <comments>http://mutt-ng.supersized.org/archives/41-mutt-ng-at-22C3.html#comments</comments>
    <wfw:comment>http://mutt-ng.supersized.org/wfwcomment.php?cid=41</wfw:comment>

    <slash:comments>2</slash:comments>
    <wfw:commentRss>http://mutt-ng.supersized.org/rss.php?version=2.0&amp;type=comments&amp;cid=41</wfw:commentRss>
    

    <author>nospam@example.com (krennmair)</author>
    <content:encoded>
    From December 27th to December 30th 2005, the &lt;a href=&quot;http://events.ccc.de/congress/2005/&quot; title=&quot;22C3 website&quot;&gt;22nd Chaos Communication Congress&lt;/a&gt; (short: 22C3), a congress on &amp;quot;technology, society and utopia&amp;quot;, also known as the &amp;quot;European Hacker Conference&amp;quot;, is taking place in Berlin, Germany. Chaos Communication Congress proved itself to be a wonderful place to hack, to collaborate and to exchange ideas, and to meet new and interesting people.&lt;br /&gt;&lt;br /&gt;This year, we decided to register seats for the mutt-ng project at the &lt;a href=&quot;http://events.ccc.de/congress/2005/hackcenter.en.html&quot; title=&quot;Hackcenter&quot;&gt;Hackcenter&lt;/a&gt;, where most of the hacking is about to takeplace. So, if you want to meet us, talk to us, or contribute code and/or ideas, just stop by. Nico Golde and I (Andreas Krennmair) will be there from the 26th in the evening on, and Rocco Rutte will most likely join us on the 28th. We hope to get as much as possible done at the Congress, especially the ongoing mutt-ng rewrite will have our attention. See you in Berlin!&lt;br /&gt; 
    </content:encoded>

    <pubDate>Mon, 26 Dec 2005 11:20:40 +0100</pubDate>
    <guid isPermaLink="false">http://mutt-ng.supersized.org/archives/41-guid.html</guid>
    
</item>
<item>
    <title>Insight Rewrite: IPv6</title>
    <link>http://mutt-ng.supersized.org/archives/40-Insight-Rewrite-IPv6.html</link>
    
    <comments>http://mutt-ng.supersized.org/archives/40-Insight-Rewrite-IPv6.html#comments</comments>
    <wfw:comment>http://mutt-ng.supersized.org/wfwcomment.php?cid=40</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://mutt-ng.supersized.org/rss.php?version=2.0&amp;type=comments&amp;cid=40</wfw:commentRss>
    

    <author>nospam@example.com (Rocco Rutte)</author>
    <content:encoded>
    Today&#039;s topic isn&#039;t that exciting after all: IPv6.&lt;br /&gt;
&lt;br/&gt;&lt;br/&gt;&lt;br /&gt;
I just committed an update of the Connection class and the URL parser to work nicely with IPv6. However, there&#039;s one thing to note so that I write this blog entry.&lt;br /&gt;
&lt;br/&gt;&lt;br/&gt;&lt;br /&gt;
What changed (somewhat) is the basic URL syntax. It still remains as:&lt;br/&gt;&lt;br /&gt;
&lt;code&gt;proto[s]://[user[:password]]@host[:port][/path]&lt;/code&gt;&lt;br/&gt;&lt;br /&gt;
...but for IPv6 the host part is somewhat treated specially if it&#039;s an IPv6 address rather than a domain name (in which case the DNS resolver will do the job together with the IPv6 stack of the operating system.)&lt;br /&gt;
&lt;br/&gt;&lt;br/&gt;&lt;br /&gt;
IPv6 addresses have to be enclosed in [] since they contain colons (&#039;:&#039;) which are used to detect whether and what port is embedded in the URL in case it&#039;s non-standard for the protocoll.&lt;br /&gt;
&lt;br/&gt;&lt;br/&gt;&lt;br /&gt;
Also, please keep in mind that all parts of the URL are expected to be encoded. This is important for IPv6&#039;s link-local addresses with KAME-derived IPv6 stacks such as found on the BSD systems. With KAME, an interface may be embedded like so:&lt;br/&gt;&lt;br /&gt;
&lt;code&gt;fe80::1%lo0&lt;/code&gt;&lt;br/&gt;&lt;br /&gt;
which is the link-local address for the loopback device &lt;code&gt;fe80::1&lt;/code&gt; reachable via &lt;code&gt;lo0&lt;/code&gt; (of course, just &lt;code&gt;::1&lt;/code&gt; is shorter but this serves only as an example for non-KAME users.)&lt;br /&gt;
&lt;br/&gt;&lt;br/&gt;&lt;br /&gt;
In short, the percent sign (&#039;%&#039;) is used in URLs for marking an encoded sequence so that itself has to be encoded as &lt;code&gt;%25&lt;/code&gt;. A correct example IMAP URL to loopback for user &lt;code&gt;joe&lt;/code&gt; with password &lt;code&gt;secret&lt;/code&gt; using a secure connection to port &lt;code&gt;4711&lt;/code&gt; would thus be:&lt;br/&gt;&lt;br/&gt;&lt;br /&gt;
&lt;code&gt;imaps://joe:secret@[fe80::1%25lo0]:4711/&lt;/code&gt;&lt;br/&gt;&lt;br /&gt;
or shorter:&lt;br/&gt;&lt;br /&gt;
&lt;code&gt;imaps://joe:secret@[::1]:4711/&lt;/code&gt;&lt;br /&gt;
&lt;br/&gt;&lt;br/&gt;&lt;br /&gt;
Also, the code handling &lt;code&gt;connect(2)&lt;/code&gt; has been replace by a portable and protocol-independent one so that IPv4 and IPv6 are expected to work without problems. As I didn&#039;t setup IPv6-enabled local servers and as I don&#039;t/won&#039;t get IPv6 connectivity, I couldn&#039;t test very much. Please report problems if you encounter any.&lt;br /&gt;
&lt;br/&gt;&lt;br/&gt;&lt;br /&gt;
Testing can be done with the &lt;code&gt;muttng-query&lt;/code&gt; tool like so:&lt;br/&gt;&lt;br /&gt;
&lt;code&gt;$ muttng-query -d 5 pop[s]://ipv6host/&lt;/code&gt;&lt;br/&gt;&lt;br /&gt;
or&lt;br /&gt;&lt;br /&gt;
&lt;code&gt;$ muttng-query -d 5 nntp[s]://ipv6host/group&lt;/code&gt;. 
    </content:encoded>

    <pubDate>Thu, 22 Dec 2005 13:22:41 +0100</pubDate>
    <guid isPermaLink="false">http://mutt-ng.supersized.org/archives/40-guid.html</guid>
    
</item>
<item>
    <title>Insight Rewrite: Binaries</title>
    <link>http://mutt-ng.supersized.org/archives/39-Insight-Rewrite-Binaries.html</link>
    
    <comments>http://mutt-ng.supersized.org/archives/39-Insight-Rewrite-Binaries.html#comments</comments>
    <wfw:comment>http://mutt-ng.supersized.org/wfwcomment.php?cid=39</wfw:comment>

    <slash:comments>2</slash:comments>
    <wfw:commentRss>http://mutt-ng.supersized.org/rss.php?version=2.0&amp;type=comments&amp;cid=39</wfw:commentRss>
    

    <author>nospam@example.com (Rocco Rutte)</author>
    <content:encoded>
    Today&#039;s topic for the rewrite features is: binaries.&lt;br /&gt;
&lt;br/&gt;&lt;br/&gt;&lt;br /&gt;
As some may have seen from the doxygen documentation and/or the source, several binaries are being built and will be installed. There&#039;ll be one main muttng binary and several others being a symlink to it. Upon startup, the binary name is detected an muttng behaves differently. This article briefly explains what these binaries will do as my documentation patch is not yet committed.&lt;br /&gt;
&lt;br/&gt;&lt;br/&gt;&lt;br /&gt;
Of course, &lt;strong&gt;muttng(1)&lt;/strong&gt; will remain the main interactive client with a curses-based interface. This is also the main binary being installed.&lt;br /&gt;
&lt;br/&gt;&lt;br/&gt;&lt;br /&gt;
&lt;strong&gt;muttng-conf(1)&lt;/strong&gt; will be, inspired by the postconf(1) command, a command for configuration diagnostics. Currently, the following items are already supported: print variable names and values and print function bindings. For these and all future groups of items, there are the following three modes planned: (1) just print everything as-is, (2) print only changed items and (3) as an add-on to the other two modes, support an &quot;annotated&quot; mode. &quot;Annotated&quot; means that it prints comments with defaults and other descriptions along the main output. Output will be printed in the muttngrc syntax so that the output can be used as a configuration file itself.&lt;br /&gt;
&lt;br/&gt;&lt;br/&gt;&lt;br /&gt;
&lt;strong&gt;muttng-mailx(1)&lt;/strong&gt; will be a true mailx(1) replacement. Now that there is a command-line option to enable mailx-compatibility. However, it doesn&#039;t make sense as scripts or the like must be ported to it. We will turn this into a true replacement so that it, for example, can be used with mechanisms such as Debian&#039;s alternates. This will be a really cool feature as all tools will use the users configuration. For example, with it all the hooks and other features being available for the mailx-replacement, users can setup cronjobs and their mail delivery very flexibly.&lt;br /&gt;
&lt;br/&gt;&lt;br/&gt;&lt;br /&gt;
&lt;strong&gt;muttng-query(1)&lt;/strong&gt; is a temporary addition and it depends on user feedback whether it will stay or not. As the user interface(s) are last on our &quot;roadmap&quot; (because we want to ensure the two library layers are working properly before we start to use them), we need something to test libmuttng with. The query tool will provide a command-line way of dealing with any type of folder. Also it will support a colon mode similar to that of gpg(1) so that output can be parsed by scripts easily. Planned features are listing which mailboxes have new mail, maybe also print which mail is new, maybe search accross folders, etc. Before its addition yesterday some testing code was implemented in muttng(1) where it doesn&#039;t fit so I simply created this tool. As said, we&#039;re doing a rewrite and are interested in feedback and critics of any type so it depends on users whether this tool will stay and what features it&#039;ll offer.&lt;br /&gt;
&lt;br/&gt;&lt;br/&gt;&lt;br /&gt;
&lt;strong&gt;muttng-sync(1)&lt;/strong&gt; will be a tool supporting bi-directional syncing of arbitrary folders. Possible uses range from simple offline IMAP to syncing two Maildir trees with a workstation and a laptop. As it&#039;ll also be built upon libmuttng which will provide transparent support for different mailbox types, it&#039;ll be theoretically possible to mirror remote newsgroups to a local Maildir or MBOX file as well as a remote IMAP folder. Not only because users requested an offline IMAP feature (which muttng-sync(1) will be the generalized solution to), but also to test whether the abstraction we make in libmuttng, this tool serves well a real-world test environment.&lt;br /&gt;
&lt;br/&gt;&lt;br/&gt;&lt;br /&gt;
Any feedback is welcome... 
    </content:encoded>

    <pubDate>Sat, 17 Dec 2005 16:05:15 +0100</pubDate>
    <guid isPermaLink="false">http://mutt-ng.supersized.org/archives/39-guid.html</guid>
    
</item>
<item>
    <title>Insight Rewrite: Debugging</title>
    <link>http://mutt-ng.supersized.org/archives/38-Insight-Rewrite-Debugging.html</link>
    
    <comments>http://mutt-ng.supersized.org/archives/38-Insight-Rewrite-Debugging.html#comments</comments>
    <wfw:comment>http://mutt-ng.supersized.org/wfwcomment.php?cid=38</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://mutt-ng.supersized.org/rss.php?version=2.0&amp;type=comments&amp;cid=38</wfw:commentRss>
    

    <author>nospam@example.com (Rocco Rutte)</author>
    <content:encoded>
    Hereby I start a new series of articles called &quot;Insight Rewrite&quot; which will give some details about this work or will work. Today&#039;s topic is: debugging.&lt;br /&gt;
&lt;br/&gt;&lt;br/&gt;&lt;br /&gt;
Debugging support is essential as with unit testing we can only verify that a single function does what it&#039;s supposed to but not really/completely whether they&#039;re also used the right way.&lt;br /&gt;
&lt;br/&gt;&lt;br/&gt;&lt;br /&gt;
Debugging will be available, as before, via the -d command line switch for all tools as well as via the $debug_level option. The reason behind the config option is that now users can freely turn debugging on and off during runtime as well as only change the verbosity level.&lt;br /&gt;
&lt;br/&gt;&lt;br/&gt;&lt;br /&gt;
Before there were only a few debug files kept which is a &quot;feature&quot; removed in the rewrite. Now debug files will remain until they&#039;re deleted by users. Also, the naming is different: files will be named as: ~/.[scope].[pid].[id].log. These fields have the following meanings: &quot;[scope]&quot; is either &quot;libmuttng&quot; or one of &quot;muttng-conf&quot;, &quot;muttng-sync&quot;, etc (yes, debugging is done to different files for the libmuttng library and the actual application). &quot;[pid]&quot; is the current process&#039; ID number. As debugging may be turned on and off during runtime, the &quot;[id]&quot; field starts off with &quot;1&quot; and will be subsequently increased everytime debugging is turned on again.&lt;br /&gt;
&lt;br/&gt;&lt;br/&gt;&lt;br /&gt;
New is also the fact that each of the debug levels from 1 to 5 has it&#039;s own meaning, i.e. we don&#039;t choose a message&#039;s debug level by our current mood any longer. For example, level 1 is for all module registration and de-registration, level 2 for parsing, 3 for signals and events, etc.&lt;br /&gt;
&lt;br/&gt;&lt;br/&gt;&lt;br /&gt;
As before, each line will contain the caller besides the message. New is that lines are space-indented to more quickly find things as debug files may grow quite large.&lt;br /&gt;
&lt;br/&gt;&lt;br/&gt;&lt;br /&gt;
As some may have wondered why we organized the inheritance for libmuttng as well as applications the way we did: the debugging support is implemented in libmuttng and publicy visible (and thus useable) by applications so that the base classes LibMuttng and Muttng for both layers contain such a debug object. As a consequence, all classes have debug support. The level change is connected via the configuration manager and a signal to achieve separation.&lt;br /&gt;
&lt;br/&gt;&lt;br/&gt;&lt;br /&gt;
As today and yesterday I ported a number of core/ functions required by the configuration parser, and finally added a first one simply printing each line read to the debug file, brave users can already get, compile and run the muttng-conf binary and see the files created in $HOME.&lt;br /&gt;
&lt;br/&gt;&lt;br/&gt;&lt;br /&gt;
Next up on my todo list are all the unit tests still missing for these functions added so it depends on how much spare time I  have whether we&#039;ll have a configuration parser to finish the year with.&lt;br /&gt;
&lt;br/&gt;&lt;br/&gt;&lt;br /&gt;
(Btw, we developers will meet at the Chaos Communication Congress in Berlin at the end of the year and applied for its hackcenter so maybe we can meet users and/or write the parser.) 
    </content:encoded>

    <pubDate>Thu, 15 Dec 2005 17:07:33 +0100</pubDate>
    <guid isPermaLink="false">http://mutt-ng.supersized.org/archives/38-guid.html</guid>
    
</item>
<item>
    <title>Update and background information on the rewrite</title>
    <link>http://mutt-ng.supersized.org/archives/37-Update-and-background-information-on-the-rewrite.html</link>
            <category>Rewrite</category>
    
    <comments>http://mutt-ng.supersized.org/archives/37-Update-and-background-information-on-the-rewrite.html#comments</comments>
    <wfw:comment>http://mutt-ng.supersized.org/wfwcomment.php?cid=37</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://mutt-ng.supersized.org/rss.php?version=2.0&amp;type=comments&amp;cid=37</wfw:commentRss>
    

    <author>nospam@example.com (krennmair)</author>
    <content:encoded>
    &lt;br /&gt;
&lt;p&gt;As some of you probably saw already, mutt-ng is currently in a rewrite phase. I would like to give some insight on why we started the rewrite and what&#039;s actually going on. When we were trying to improve mutt-ng with more and more features, we came across the problem that it was very difficult to actually identify and fix bugs, and how changes on some parts of the code would influence the overall behaviour and probably would add new bugs to the code.&lt;/p&gt;&lt;p&gt;So we came to the conclusion that the only feasible way that would make it easier for us in the future would be a &lt;i&gt;well-documented&lt;/i&gt; rewrite, as we had troubles seeing overall design goals, in fact, there was &lt;i&gt;no documentation at all&lt;/i&gt;&lt;span&gt; for the original mutt(-ng) design. So first, we started drawing UML diagrams of the overall design, using &lt;a href=&quot;http://argouml.tigris.org/&quot;&gt;ArgoUML&lt;/a&gt;. These designs can be found &lt;/span&gt;&lt;a href=&quot;http://svn.berlios.de/svnroot/repos/mutt-ng/branches/muttng-rewrite/srcdoc/design/&quot;&gt;in our Subversion repository&lt;/a&gt;. As soon as we had a reasonably usable design, we started with the implementation in C++, which is currently going on. Why C++? Because it&#039;s language that makes it reasonably easy to provide a clean mutt-ng implementation that reflects the UML design and makes it possible to take advantage of object-oriented features while retaining compatibility with existing mutt-ng code pieces, making it relatively simple to reuse existing (pre-rewrite) mutt-ng code.&lt;/p&gt;&lt;p&gt;As mentioned before, one focus is on documentation. Rocco put some effort into documentation building: complete developer documentation of the source code can be automatically generated. Even better: the documentation is generated once a day from the most current source code, and put online &lt;a href=&quot;http://mutt-ng.berlios.de/rewrite/doxygen/&quot;&gt;here&lt;/a&gt;. The user documentation is auto-generated. More general information about the rewrite can be found on the &lt;a href=&quot;http://mutt-ng.berlios.de/rewrite/&quot;&gt;mutt-ng rewrite page&lt;/a&gt;. This is also something where anybody who wants to contribute can do so: the user documentation and the rewrite pages are created in such a way that it&#039;s simple to translate it to another language. So, if you want to contribute to mutt-ng, just translate the user documentation to your native language. So far, English and German are available. Although there isn&#039;t much to document yet, we think that providing the documentation in as many languages as possible makes it easier to get a grip on mutt-ng, to understand it and to get them contribute by themselves.&lt;/p&gt;&lt;p&gt;Besides documentation, there is another important goal on the rewrite: as much of the mutt-ng functionality as possible should be automatically testable. The buzzword for this is &lt;a href=&quot;http://en.wikipedia.org/wiki/Unit_test&quot;&gt;unit testing&lt;/a&gt;. The tool of choice for this is &lt;a href=&quot;http://unitpp.sf.net/&quot;&gt;unit++&lt;/a&gt;, a very C++-ish unit testing support library. To meet our own expectations of high-quality code, we wrote unit tests for the core library and the mutt-ng library (yes, very modular design) practically in parallel, a development method that proved to be useful especially in big projects: as soon as a test breaks, you know that something has gone wrong, so continuously developing and testing makes it easy to detect hidden bugs. For refactoring, this is also very useful, as the unit test is part of the specification, and you can easily test your code whether it conforms to the previously defined (and expected) behaviour. We think that this will very valuable for future development.&lt;/p&gt;&lt;p&gt;If you&#039;re interested in contributing to the mutt-ng rewrite, don&#039;t hesitate to submit patches. But please don&#039;t forget to provide useful documentation (a look at the header files shows what we mean) and unit tests. Documentation makes your code easier to understand, and the unit tests show that your code works, so providing both raises the chance of getting your patch included.&lt;/p&gt;&lt;p&gt;In the future, we hope to be able to provide more and especially more often background information on the rewrite status.&lt;br /&gt; &lt;/p&gt;&lt;br /&gt;
 
    </content:encoded>

    <pubDate>Mon, 12 Dec 2005 13:12:01 +0100</pubDate>
    <guid isPermaLink="false">http://mutt-ng.supersized.org/archives/37-guid.html</guid>
    
</item>
<item>
    <title>Rewrite in progress</title>
    <link>http://mutt-ng.supersized.org/archives/36-Rewrite-in-progress.html</link>
    
    <comments>http://mutt-ng.supersized.org/archives/36-Rewrite-in-progress.html#comments</comments>
    <wfw:comment>http://mutt-ng.supersized.org/wfwcomment.php?cid=36</wfw:comment>

    <slash:comments>2</slash:comments>
    <wfw:commentRss>http://mutt-ng.supersized.org/rss.php?version=2.0&amp;type=comments&amp;cid=36</wfw:commentRss>
    

    <author>nospam@example.com (Rocco Rutte)</author>
    <content:encoded>
    For the last couple of days and weeks, there isn&#039;t much going on with mutt-ng for several reasons.&lt;br /&gt;
&lt;br /&gt;
&lt;br/&gt;&lt;br/&gt;&lt;br /&gt;
&lt;br /&gt;
First, we, the core developers, have come to the conclusion that a &quot;next generation&quot; mutt really needs a rewrite or better: a (documented!) design made with current and future features in mind. An example which is just impossible to implement right now easily in an elegant fashion is transparent syncing of different folders like remote to local IMAP, remote to remote IMAP, local to (NFS-)local Maildir, etc. With the re-design ideas we have so far, this will be easy as it will be built on top of a &quot;mail storage abstraction.&quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br/&gt;&lt;br/&gt;&lt;br /&gt;
&lt;br /&gt;
Second, we have come to the conclusion that when adding features, we spend most of the time trying to understand the complexity behind the current code to find the proper place for the change (sometimes we were even stuck.) Thus, some of the things we already changed only improves the situation from a user&#039;s point of view, but adds more complexity making it harder to maintain the code base in the feature.&lt;br /&gt;
&lt;br /&gt;
&lt;br/&gt;&lt;br/&gt;&lt;br /&gt;
&lt;br /&gt;
A third and last reason for why we need a rewrite is simply the fact that we included many patches already. The main problem we experienced is that these patches are just add-ons, that is, they add features but for compatibility are not allowed to improve the underlaying design or interfaces to implement a feature more easily. Also, many patches are standalone and don&#039;t really integrate or work well with one another. We found it too difficult to actually integrate all of the foreign code, re-design everything &quot;in-place&quot; and thus make everything fit into a consistent mail client.&lt;br /&gt;
&lt;br /&gt;
&lt;br/&gt;&lt;br/&gt;&lt;br /&gt;
&lt;br /&gt;
Andreas, the maintainer, has opened a branch with early ideas which are subject to change and which will be implemented as soon as they turn out to be the way to go.&lt;br /&gt;
&lt;br /&gt;
&lt;br/&gt;&lt;br/&gt;&lt;br /&gt;
&lt;br /&gt;
Everybody is invited to join and start discussions on the developer&#039;s list.&lt;br /&gt;
&lt;br /&gt;
&lt;br/&gt;&lt;br/&gt;&lt;br /&gt;
&lt;br /&gt;
As I maintain an automated blog for the mutt-ng subversion repository, you can also stay up-to-date on the rewrite branch via the following URL:&lt;br /&gt;
&lt;br/&gt;&lt;br /&gt;
&lt;a href=&quot;http://user.cs.tu-berlin.de/~pdmef/muttng.cgi?c=muttng-rewrite&quot;&gt;http://user.cs.tu-berlin.de/~pdmef/muttng.cgi?c=muttng-rewrite&lt;/a&gt;.&lt;br /&gt;
&lt;br/&gt;&lt;br /&gt;
There you&#039;ll also find various RSS, Atom and even MBOX newsfeeds. 
    </content:encoded>

    <pubDate>Tue, 08 Nov 2005 07:59:55 +0100</pubDate>
    <guid isPermaLink="false">http://mutt-ng.supersized.org/archives/36-guid.html</guid>
    
</item>
<item>
    <title>Scoring in mutt-ng</title>
    <link>http://mutt-ng.supersized.org/archives/35-Scoring-in-mutt-ng.html</link>
            <category>Features</category>
    
    <comments>http://mutt-ng.supersized.org/archives/35-Scoring-in-mutt-ng.html#comments</comments>
    <wfw:comment>http://mutt-ng.supersized.org/wfwcomment.php?cid=35</wfw:comment>

    <slash:comments>1</slash:comments>
    <wfw:commentRss>http://mutt-ng.supersized.org/rss.php?version=2.0&amp;type=comments&amp;cid=35</wfw:commentRss>
    

    <author>nospam@example.com (krennmair)</author>
    <content:encoded>
    &lt;br /&gt;
&lt;p&gt;In revision 553, we fine-tuned the scoring functionality of mutt-ng in order to make it more usable, especially for reading newsgroups. Basically, the fine-tuning consists of enabling patterns to match against the realname of headers containing mail addresses, e.g. From:, Cc:, To:, etc., which was deactivated before for whatever reason.&lt;/p&gt;&lt;p /&gt; &lt;br /&gt;&lt;a href=&quot;http://mutt-ng.supersized.org/archives/35-Scoring-in-mutt-ng.html#extended&quot;&gt;Continue reading &quot;Scoring in mutt-ng&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Wed, 19 Oct 2005 09:12:42 +0200</pubDate>
    <guid isPermaLink="false">http://mutt-ng.supersized.org/archives/35-guid.html</guid>
    
</item>
<item>
    <title>Better documentation</title>
    <link>http://mutt-ng.supersized.org/archives/34-Better-documentation.html</link>
    
    <comments>http://mutt-ng.supersized.org/archives/34-Better-documentation.html#comments</comments>
    <wfw:comment>http://mutt-ng.supersized.org/wfwcomment.php?cid=34</wfw:comment>

    <slash:comments>3</slash:comments>
    <wfw:commentRss>http://mutt-ng.supersized.org/rss.php?version=2.0&amp;type=comments&amp;cid=34</wfw:commentRss>
    

    <author>nospam@example.com (Rocco Rutte)</author>
    <content:encoded>
    As readers of the mailing lists and/or ChangeLogs may have noticed, some time ago I added an ad-hoc stylesheet to transform the DocBook/XML based manual into LaTeX.&lt;br /&gt;
&lt;br /&gt;
&lt;br/&gt;&lt;br/&gt;&lt;br /&gt;
&lt;br /&gt;
As the manual itself isn&#039;t valid and plain DocBook but contains some goodies to make it more consistent and easier to write, so does the LaTeX (stylesheet) file. That means it&#039;s not a general DocBook to LaTeX conversion solution.&lt;br /&gt;
&lt;br /&gt;
&lt;br/&gt;&lt;br/&gt;&lt;br /&gt;
&lt;br /&gt;
At &lt;a href=&quot;http://mutt-ng.berlios.de/&quot;&gt;our Berlios site&lt;/a&gt;, there&#039;re two links given: one for a PDF generated by pdflatex(1) and one PostScript file generated by latex(1).&lt;br /&gt;
&lt;br /&gt;
&lt;br/&gt;&lt;br/&gt;&lt;br /&gt;
&lt;br /&gt;
The Makefile in the source&#039;s doc subdirectory contains two targets to build them: manual-ng.pdf and manual-ng.ps whereby for the latter the breakurl.sty package is required which doesn&#039;t seem to be installed by default everywhere.&lt;br /&gt;
&lt;br /&gt;
&lt;br/&gt;&lt;br/&gt;&lt;br /&gt;
&lt;br /&gt;
I&#039;m writing all this because I already started an attempt to continue with LaTeX instead of SGML back then. It would be really nice if people/users could provide input (in any way) on which direction to go... 
    </content:encoded>

    <pubDate>Sun, 09 Oct 2005 15:39:42 +0200</pubDate>
    <guid isPermaLink="false">http://mutt-ng.supersized.org/archives/34-guid.html</guid>
    
</item>
<item>
    <title>Bug fixes</title>
    <link>http://mutt-ng.supersized.org/archives/33-Bug-fixes.html</link>
    
    <comments>http://mutt-ng.supersized.org/archives/33-Bug-fixes.html#comments</comments>
    <wfw:comment>http://mutt-ng.supersized.org/wfwcomment.php?cid=33</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://mutt-ng.supersized.org/rss.php?version=2.0&amp;type=comments&amp;cid=33</wfw:commentRss>
    

    <author>nospam@example.com (Rocco Rutte)</author>
    <content:encoded>
    Within the past few days, many minor problems which can reproduceably crash mutt-ng were fixed. As part of the re-organization of configuration variable handling, there likely are huge problems with regex variable handling etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br/&gt;&lt;br/&gt;&lt;br /&gt;
&lt;br /&gt;
Also, the &lt;tt&gt;DelSp=yes&lt;/tt&gt; handling was incorrect for empty lines as numerous people have reported.&lt;br /&gt;
&lt;br /&gt;
&lt;br/&gt;&lt;br/&gt;&lt;br /&gt;
&lt;br /&gt;
Please upgrade to a revision after 501 as soon as possible.&lt;br /&gt;
&lt;br /&gt;
&lt;br/&gt;&lt;br/&gt;&lt;br /&gt;
&lt;br /&gt;
New packages will be available soon. 
    </content:encoded>

    <pubDate>Sun, 11 Sep 2005 20:06:37 +0200</pubDate>
    <guid isPermaLink="false">http://mutt-ng.supersized.org/archives/33-guid.html</guid>
    
</item>
<item>
    <title>More pre-defined variables providing more flexibility</title>
    <link>http://mutt-ng.supersized.org/archives/32-More-pre-defined-variables-providing-more-flexibility.html</link>
    
    <comments>http://mutt-ng.supersized.org/archives/32-More-pre-defined-variables-providing-more-flexibility.html#comments</comments>
    <wfw:comment>http://mutt-ng.supersized.org/wfwcomment.php?cid=32</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://mutt-ng.supersized.org/rss.php?version=2.0&amp;type=comments&amp;cid=32</wfw:commentRss>
    

    <author>nospam@example.com (Rocco Rutte)</author>
    <content:encoded>
    Revision 472 contains three more pre-defined variables: &lt;tt&gt;$muttng_pwd&lt;/tt&gt; (for the current working directory), &lt;tt&gt;$muttng_folder_name&lt;/tt&gt; and &lt;tt&gt;$muttng_folder_path&lt;/tt&gt; for refering to the currently opened mailbox.&lt;br /&gt;
&lt;br/&gt;&lt;br/&gt;&lt;br /&gt;
This really rocks in connection with a very simple folder-hook:&lt;br /&gt;
&lt;br/&gt;&lt;br /&gt;
&lt;tt&gt;folder-hook . &#039;source ~/.mutt/score-$muttng_folder_name&#039;&lt;/tt&gt;&lt;br /&gt;
&lt;br/&gt;&lt;br /&gt;
with which we now have a single command to read in scores when entering a folder. This may be especially useful in connection with newsgroups to separate and modularize the config as lots of scoring rules really slown things down.&lt;br /&gt;
&lt;br/&gt;&lt;br /&gt;
For more of such useful info to be queried/used at runtime, just contact us... 
    </content:encoded>

    <pubDate>Wed, 31 Aug 2005 23:31:42 +0200</pubDate>
    <guid isPermaLink="false">http://mutt-ng.supersized.org/archives/32-guid.html</guid>
    
</item>
<item>
    <title>Improved RfC 3676 aka f=f support</title>
    <link>http://mutt-ng.supersized.org/archives/31-Improved-RfC-3676-aka-ff-support.html</link>
    
    <comments>http://mutt-ng.supersized.org/archives/31-Improved-RfC-3676-aka-ff-support.html#comments</comments>
    <wfw:comment>http://mutt-ng.supersized.org/wfwcomment.php?cid=31</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://mutt-ng.supersized.org/rss.php?version=2.0&amp;type=comments&amp;cid=31</wfw:commentRss>
    

    <author>nospam@example.com (Rocco Rutte)</author>
    <content:encoded>
    Peter J. Holzer kindly contributed a replacement for the format=flowed handler which has been further extended to match the update as of RfC 3676. For example, muttng now does space-stuffing when sending messages and handles DelSp. For both fetaures there&#039;re still some unsolved questions or interpretations of the standard to make though... 
    </content:encoded>

    <pubDate>Tue, 30 Aug 2005 21:14:48 +0200</pubDate>
    <guid isPermaLink="false">http://mutt-ng.supersized.org/archives/31-guid.html</guid>
    
</item>
<item>
    <title>More flexibility</title>
    <link>http://mutt-ng.supersized.org/archives/30-More-flexibility.html</link>
    
    <comments>http://mutt-ng.supersized.org/archives/30-More-flexibility.html#comments</comments>
    <wfw:comment>http://mutt-ng.supersized.org/wfwcomment.php?cid=30</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://mutt-ng.supersized.org/rss.php?version=2.0&amp;type=comments&amp;cid=30</wfw:commentRss>
    

    <author>nospam@example.com (Rocco Rutte)</author>
    <content:encoded>
    Within the last days the internal handling (and partially parsing) of config variables has changed greatly. As a side-effect, the following two features are now available: (1) not only environment variables but all config variables can be used via the usual $foo notation and (2) users can freely define variables by prefixing them with $user_. These can be used just everywhere including the expansion, etc. See the manual for more verbose examples. In connection to that, a draft feature has been added which is still subject to change: via some $muttng_ variables, muttng provides static and read-only information to be used in configuration (paths, version information and currently the header caching backend). If there&#039;s positive feedback, this will be kept and expanded to have portable config files defined only once.&lt;br /&gt;
&lt;br /&gt;
Also, more usability function has been and/or will be added soon. Muttng already can remind of possibly forgotten files to attach (if promised in the message&#039;s text) and will soon strip signatures when preparing replies... 
    </content:encoded>

    <pubDate>Tue, 30 Aug 2005 21:11:26 +0200</pubDate>
    <guid isPermaLink="false">http://mutt-ng.supersized.org/archives/30-guid.html</guid>
    
</item>
<item>
    <title>FreeBSD Port available.</title>
    <link>http://mutt-ng.supersized.org/archives/29-FreeBSD-Port-available..html</link>
    
    <comments>http://mutt-ng.supersized.org/archives/29-FreeBSD-Port-available..html#comments</comments>
    <wfw:comment>http://mutt-ng.supersized.org/wfwcomment.php?cid=29</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://mutt-ng.supersized.org/rss.php?version=2.0&amp;type=comments&amp;cid=29</wfw:commentRss>
    

    <author>nospam@example.com (Rocco Rutte)</author>
    <content:encoded>
    Already since June, 14th 2005 there&#039;s a port in mail/mutt-ng. I&#039;ve sent the maintainer a patch which made it in on August 29th. Using the updated port not only a more recent version is available, also qdbm as header caching backend supporting compression can be chosen. 
    </content:encoded>

    <pubDate>Tue, 30 Aug 2005 21:06:50 +0200</pubDate>
    <guid isPermaLink="false">http://mutt-ng.supersized.org/archives/29-guid.html</guid>
    
</item>

</channel>
</rss>