<?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>DMDirc Development Blog</title>
	<atom:link href="http://blog.dmdirc.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.dmdirc.com</link>
	<description>DMDirc Development Blog</description>
	<lastBuildDate>Wed, 24 Mar 2010 07:53:09 +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>Intelligent channel names</title>
		<link>http://blog.dmdirc.com/2010/03/24/intelligent-channel-names/</link>
		<comments>http://blog.dmdirc.com/2010/03/24/intelligent-channel-names/#comments</comments>
		<pubDate>Wed, 24 Mar 2010 07:53:09 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Intelligence]]></category>

		<guid isPermaLink="false">http://blog.dmdirc.com/?p=292</guid>
		<description><![CDATA[As you can probably gather from DMDirc&#8217;s tagline, we like making DMDirc act intelligently. One of our latest set of changes revolves around intelligent handling of channel names. Say you join a channel and a friendly person advises you to try some others out for size: &#60;Person&#62; Hey, you, why don't you join #channel2 (and [...]]]></description>
			<content:encoded><![CDATA[<p>As you can probably gather from DMDirc&#8217;s tagline, we like making DMDirc act intelligently. One of our latest set of changes revolves around intelligent handling of channel names. Say you join a channel and a friendly person advises you to try some others out for size:</p>
<p><code>&lt;Person&gt; Hey, you, why don't you join #channel2 (and maybe #channel3)?</code></p>
<p>DMDirc now applies the same intelligent linking algorithms we use for URLs to channel names, so we can intelligently figure out what was probably meant to be part of the channel name, and what was punctuation following it. With our new &#8220;<code>stylechannels</code>&#8221; option enabled, that message will show up as:</p>
<p><code>&lt;Person&gt; Hey, you, why don't you join <span style="color: green;text-decoration: underline">#channel2</span> (and maybe <span style="color: green;text-decoration: underline">#channel3</span>)?</code></p>
<p>As you can see, we now correctly realise that the &#8220;)&#8221; and &#8220;?&#8221; at the end of #channel3 probably weren&#8217;t intended to be part of the channel name. And with <code>stylechannels</code> enabled you&#8217;ll be able to see exactly where you&#8217;re going to end up before clicking.</p>
<p>But we&#8217;re not done yet! What if you&#8217;re more of a keyboard aficionado than a mouse lover? You want to use the /join command, but don&#8217;t think there&#8217;s an easy way to get that channel name that was just mentioned without copying it by hand or resorting to the mouse? Think again &#8211; DMDirc now has intelligent tab completion for its /join command. This keeps an eye out for any linked channel names, and suggests any you&#8217;re not already in when you hit tab! So after our friendly user suggests two channels to us, we can type:</p>
<p><code>/join <em>&lt;tab&gt;</em></code></p>
<p>And DMDirc will suggest <code>#channel2</code> and <code>#channel3</code>. What&#8217;s more, if you decide you want to join multiple channels, recent upgrades to our tab completer allow the join command to offer useful suggestions if you comma-separate the channels:</p>
<p><code>/join #help,<em>&lt;tab&gt;</em></code></p>
<p>Will offer the suggestions <code>#help,#channel2</code> and <code>#help,#channel3</code>.</p>
<p>All of these features will be available in DMDirc 0.6.4, which should be out at the start of July. If you can&#8217;t wait that long, you can try a <a href="http://www.dmdirc.com/nightly">nightly build</a>. Think of any more ways we can make DMDirc intelligent? Leave a comment, poke <a href="http://twitter.com/DMDirc">@DMDirc</a> on Twitter, or you can of course join us <a href="irc://irc.quakenet.org/DMDirc">on IRC</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.dmdirc.com/2010/03/24/intelligent-channel-names/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DMDirc 0.6.3 released</title>
		<link>http://blog.dmdirc.com/2010/03/06/dmdirc-0-6-3-released/</link>
		<comments>http://blog.dmdirc.com/2010/03/06/dmdirc-0-6-3-released/#comments</comments>
		<pubDate>Sat, 06 Mar 2010 20:38:46 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[Release]]></category>

		<guid isPermaLink="false">http://blog.dmdirc.com/?p=285</guid>
		<description><![CDATA[We&#8217;ve just released DMDirc 0.6.3, which is our first release in 2010. From a development point of view, this release also marks the end of our support for Subversion. An overview of the changes included follows: &#160; Window menu enhancement The window menu now groups windows by server, making it much easier to quickly access [...]]]></description>
			<content:encoded><![CDATA[<p>We&#8217;ve just released DMDirc 0.6.3, which is our first release in 2010. From a development point of view, this release also marks the <a href="http://blog.dmdirc.com/2010/01/03/svn-deprecation/">end of our support for Subversion</a>. An overview of the changes included follows:</p>
<div class="nohomepage" style="clear: both;">&nbsp;</div>
<p><img src="http://www.dmdirc.com/res/docs/0.6.3/windowmenu.png" class="alignleft nohomepage"></p>
<h3>Window menu enhancement</h3>
<p>The window menu now groups windows by server, making it much easier to quickly access a specific window (especially if you&#8217;re connected to lots of different servers!).</p>
<div class="nohomepage" style="clear: both;">&nbsp;</div>
<p><img src="http://www.dmdirc.com/res/docs/0.6.3/addonbrowser.png" class="alignleft nohomepage"></p>
<h3>Addon browser</h3>
<p>The addon browser was previously available in 0.6.3m2, but was not properly functioning in that release. DMDirc 0.6.3 presents a functioning addon browser, allowing you to browse through plugins, themes and action packs from within DMDirc, and download and install them with one click.</p>
<div class="nohomepage" style="clear: both;">&nbsp;</div>
<p><img src="http://www.dmdirc.com/res/docs/0.6.3/background.png" class="alignleft nohomepage"></p>
<h3>Backgrounds</h3>
<p>You can now specify background images for both the textpane and the main &#8216;desktop&#8217; area.</p>
<div class="nohomepage" style="clear: both;">&nbsp;</div>
<p><img src="http://www.dmdirc.com/res/docs/0.6.3/topics.png" class="alignleft nohomepage"></p>
<h3>Topic improvements</h3>
<p>A brand new topic bar now adorns the top of channel windows, allowing you to easily see the current topic at a glance, and edit it right from the channel. The topic history display in the channel settings window has also been completely revamped, showing much more detail than it did previously.</p>
<div class="nohomepage" style="clear: both;">&nbsp;</div>
<p><img src="http://www.dmdirc.com/res/docs/0.6.3/links.png" class="alignleft nohomepage"></p>
<h3>Improved URL and channel linking</h3>
<p>DMDirc&#8217;s already intelligent URL handling has been improved further, now allowing some extra characters to ensure compatibility with non-standard URLs. We&#8217;ve also applied the same techniques we use for intelligent URL linking to channel name links, so trailing punctuation and brackets will no longer get in your way when trying to join a channel.</p>
<div class="nohomepage" style="clear: both;">&nbsp;</div>
<p><img src="http://www.dmdirc.com/res/docs/0.6.3/dcc.png" class="alignleft nohomepage"></p>
<h3>DCC fixes</h3>
<p>We&#8217;ve fixed a whole raft of bugs in the DCC plugin, which should make it work much more reliably in more circumstances than ever before. We&#8217;ve also fixed a particularly silly bug which rate limited all DCCs to 10KB/s in past versions.</p>
<div class="nohomepage" style="clear: both;">&nbsp;</div>
<p>As always, we welcome bug reports and feature requests on our <a href="http://bugs.dmdirc.com/">issue tracker</a>, <a href="irc://irc.quakenet.org/dmdirc">irc channel</a> or as comments on this post. We will also respond to mentions on <a href="http://twitter.com/dmdirc">twitter</a>. DMDirc 0.6.3 continues to be supported on Linux, BSD, Solaris, OS X and Windows, as well as having a standalone Jar file for any other java-capable platforms that are not specifically supported.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.dmdirc.com/2010/03/06/dmdirc-0-6-3-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Releasing for lazy people</title>
		<link>http://blog.dmdirc.com/2010/02/16/releasing-for-lazy-people/</link>
		<comments>http://blog.dmdirc.com/2010/02/16/releasing-for-lazy-people/#comments</comments>
		<pubDate>Tue, 16 Feb 2010 20:03:58 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://blog.dmdirc.com/?p=281</guid>
		<description><![CDATA[In preparation for DMDirc 0.6.3, we&#8217;ve just finished enhancing our release procedures considerably. Previously, a typical set of steps needed to release a version of DMDirc would be: Create a new tag in a local Git repository Push the new tag Run the relevant ant task to create an installer Upload the installers and jar [...]]]></description>
			<content:encoded><![CDATA[<p>In preparation for DMDirc 0.6.3, we&#8217;ve just finished enhancing our release procedures considerably. Previously, a typical set of steps needed to release a version of DMDirc would be:</p>
<ol>
<li>Create a new tag in a local Git repository</li>
<li>Push the new tag</li>
<li>Run the relevant ant task to create an installer</li>
<li>Upload the installers and jar file to the correct place</li>
<li>Go through each plugin and upload each one (one at a time) to the <a href="http://addons.dmdirc.com/">addons site</a></li>
<li>Find or clone a copy of the main website repository</li>
<li>Update a PHP file to contain details of each supported OS and each download and its size, etc</li>
<li>Commit the website changes</li>
<li>Push the website changes</li>
</ol>
<p>Obviously, this process was distinctly not enjoyable. A lot of it now lends itself quite well to being automated, but we hadn&#8217;t tried this in the past for various reasons (such as our use of SVN prior to Git, and the huge length of time between releases prior to the introduction of our fixed-length release cycle). Now we have the tools and the motivation (we don&#8217;t want to be doing that process every four months for each alpha, beta, release candidate and stable version!), we set about automating the entire procedure.</p>
<p>We already had a set of scripts which monitored our Git repositories for new commits, and did various useful things such as announcing the commits to IRC and updating our bug tracker. Some extra code was introduced for commits to the client repository that checks if the commit looks like a release, determines which updater channel it&#8217;s for (alpha, beta and rcs are unstable, plain versions are stable), and then builds the relevant installers. Once the installer&#8217;s built, it copies or uploads the files as appropriate, automatically updates the website as needed and commits and pushes the changes, and then automatically submits every plugin to the addons site. This means our release process is now:</p>
<ol>
<li>Create a new tag in a local Git repository</li>
<li>Push the new tag</li>
</ol>
<p>Which I&#8217;m sure you&#8217;ll agree is decidedly simpler. Of course, we still have to announce the release to the world. Anyone wanting to develop an artificial intelligence to automatically create changelogs, release notes, blog posts, news stories and tweets for each release should get in touch!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.dmdirc.com/2010/02/16/releasing-for-lazy-people/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SVN Deprecation</title>
		<link>http://blog.dmdirc.com/2010/01/03/svn-deprecation/</link>
		<comments>http://blog.dmdirc.com/2010/01/03/svn-deprecation/#comments</comments>
		<pubDate>Sun, 03 Jan 2010 04:33:02 +0000</pubDate>
		<dc:creator>Shane</dc:creator>
				<category><![CDATA[Development]]></category>

		<guid isPermaLink="false">http://blog.dmdirc.com/?p=275</guid>
		<description><![CDATA[Despite using Git for all of our DMDirc development work for over a year, we have continued to maintain a copy of the entire codebase in an SVN repository. This was primarily to facilitate some of our automated scripts, which we&#8217;ve finally finished migrating to use Git. This means that we no longer have any [...]]]></description>
			<content:encoded><![CDATA[<p>Despite using Git for all of our DMDirc development work for over a year, we have continued to maintain a copy of the entire codebase in an SVN repository. This was primarily to facilitate some of our automated scripts, which we&#8217;ve finally finished migrating to use Git. This means that we no longer have any need to keep the SVN Repository up to date, and will stop doing so after the release of 0.6.3 in early March.</p>
<p>Anyone who is still using an SVN checkout should read <a href="http://www.dmdirc.com/git">http://www.dmdirc.com/git</a> and switch to using Git, which brings numerous advantages and makes contributing back to DMDirc easier thanks to <a href="http://blog.dmdirc.com/2009/11/26/introducing-gerrit/">Gerrit</a>.</p>
<p>If you have any questions about DMDirc development, feel free to join us in #DMDirc on Quakenet.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.dmdirc.com/2010/01/03/svn-deprecation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Introducing Gerrit</title>
		<link>http://blog.dmdirc.com/2009/11/26/introducing-gerrit/</link>
		<comments>http://blog.dmdirc.com/2009/11/26/introducing-gerrit/#comments</comments>
		<pubDate>Thu, 26 Nov 2009 02:33:51 +0000</pubDate>
		<dc:creator>Shane</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[QA]]></category>

		<guid isPermaLink="false">http://blog.dmdirc.com/?p=268</guid>
		<description><![CDATA[For the past year, the ever-growing DMDirc code base has been managed using the Git version control system. We still mirror our code to an SVN repository, and a couple of our automated tools still use the SVN version of things, but we&#8217;re slowly and surely modifying, upgrading or scrapping these in favour of Git-based [...]]]></description>
			<content:encoded><![CDATA[<p>For the past year, the ever-growing DMDirc code base has been managed using the Git version control system.  We still mirror our code to an SVN repository, and a couple of our automated tools still use the SVN version of things, but we&#8217;re slowly and surely modifying, upgrading or scrapping these in favour of Git-based solutions.</p>
<p>Recently we began a trial of using <a href="http://gerrit.dmdirc.com/">Gerrit</a> to manage commits made to the main DMDirc repositories for the client and the parser. Gerrit is a code review tool, which developers submit their changes to (instead of pushing them directly to the Git repositories); other developers can then review the changes, test them, and leave feedback, before ultimately approving or rejecting the change. Only once a change has been approved is it allowed to go into the repository. </p>
<p>This has helped us greatly improve the quality of the code that makes it into the client. Another advantage to using Gerrit is that it now allows us to open up the repositories a bit more and allow third-party contributions with much more ease than before: it is now possible for anybody to sign up to Gerrit and begin committing to DMDirc right away! We even have a guide on our <a href="http://wiki.dmdirc.com/documentation:developers:git#submitting_changes_for_review">Git wiki page</a> detailing how to do just that.</p>
<p>If you would like to contribute to DMDirc, either by committing (via Gerrit!) or in other ways, we suggest paying a visit to #DMDirc on either <a href="irc://irc.quakenet.org/DMDirc">Quakenet</a>, <a href="irc://irc.freenode.net/DMDirc">Freenode</a>, <a href="irc://irc.oftc.net/DMDirc">OTFC</a>, <a href="irc://irc.coldfront.net/DMDirc">Coldfront</a> or <a href="irc://irc.chatspike.net/DMDirc">Chatspike</a>! (Don&#8217;t worry: we have <a href="http://addons.dmdirc.com/addon/50">a system</a> in place to link all the channels together!)</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.dmdirc.com/2009/11/26/introducing-gerrit/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DMDirc 0.6.3m2 Released</title>
		<link>http://blog.dmdirc.com/2009/11/22/dmdirc-0-6-3m2-released/</link>
		<comments>http://blog.dmdirc.com/2009/11/22/dmdirc-0-6-3m2-released/#comments</comments>
		<pubDate>Sun, 22 Nov 2009 22:51:28 +0000</pubDate>
		<dc:creator>Shane</dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[Release]]></category>

		<guid isPermaLink="false">http://blog.dmdirc.com/?p=246</guid>
		<description><![CDATA[At the start of the month we quietly released DMDirc 0.6.3m2 as part of our new fixed release cycle. DMDirc 0.6.3m2 is the second milestone release since 0.6.1, and the first release we&#8217;ve made as part of the fixed cycle. It contains a large number of bug fixes and minor improvements. As this is the [...]]]></description>
			<content:encoded><![CDATA[<p>At the start of the month we quietly released DMDirc 0.6.3m2 as part of our new <a href="http://blog.dmdirc.com/2009/07/05/improving-the-dmdirc-release-cycle/">fixed release cycle</a>.</p>
<p>DMDirc 0.6.3m2 is the second milestone release since 0.6.1, and the first release we&#8217;ve made as part of the fixed cycle. It contains a large number of bug fixes and minor improvements.</p>
<p>As this is the first release as part of the fixed release cycle, we weren&#8217;t used to the limited timescale between releases and as such our usual &#8216;quiet&#8217; period between releases had a much larger effect than it does normally. This means that we didn&#8217;t get as many features into this release as we would have liked, but we still managed to squeeze a few in:</p>
<div class="nohomepage" style="clear: both;">&nbsp;</div>
<p><img src="http://www.dmdirc.com/res/docs/0.6.3m2/textpane.png" class="alignleft nohomepage"></p>
<h3>Textpane font settings</h3>
<p>One of our most requested improvements &#8211; you can now set both the font name and size of the text displayed in DMDirc&#8217;s textpane. The options can be set globally, per-server or per-channel as usual.</p>
<div class="nohomepage" style="clear: both;">&nbsp;</div>
<p><img src="http://www.dmdirc.com/res/docs/0.6.3m2/twitter.png" class="alignleft nohomepage"></p>
<h3>Alternate parsers (Twitter support)</h3>
<p>DMDirc can now support different parsers in addition to our previous IRC parser. This means better or alternative IRC parsers can be developed in the future, or we can develop parsers to interact with completely different systems. As a proof of concept, we&#8217;ve developed a Twitter parser which allows you to read your Twitter news feed and post status updates direct from DMDirc!</p>
<div class="nohomepage" style="clear: both;">&nbsp;</div>
<p><img src="http://www.dmdirc.com/res/docs/0.6.3m2/servernames.png" class="alignleft nohomepage"></p>
<h3>Configurable server names</h3>
<p>You can now configure how DMDirc displays server names in the treeview and the titlebar. This means you can (for example) show your nickname along with the server name (useful if you often connect to the same server twice as different users), or show the network name instead of the server address (in case you use a bouncer to connect to multiple networks).</p>
<div class="nohomepage" style="clear: both;">&nbsp;</div>
<p><img src="http://www.dmdirc.com/res/docs/0.6.3m2/licensepanel.png" class="alignleft nohomepage"></p>
<h3>License panel</h3>
<p>We&#8217;ve also tidied up the &#8216;License&#8217; panel in the about dialog, to make it much clearer which components are covered by which license. This should make it easier for anyone interested in modifying DMDirc or reusing parts of it to see where they stand.</p>
<div class="nohomepage" style="clear: both;">&nbsp;</div>
<p>As we&#8217;re now committed to releasing on a fixed schedule this will be the last &#8216;milestone&#8217; release, and for future releases we&#8217;ll just add to the minor version number until we&#8217;ve implemented the features targeted for the next major release. This means the next release will be 0.6.3, and any further releases before the 0.7 feature set is complete will be 0.6.4, 0.6.5, etc</p>
<p>As always, we welcome bug reports and feature requests on our <a href="http://bugs.dmdirc.com/">issue tracker</a>, <a href="irc://irc.quakenet.org/dmdirc">irc channel</a> or as comments on this post. We will also respond to mentions on <a href="http://twitter.com/dmdirc">twitter</a>. DMDirc 0.6.3m2 continues to be supported on Linux, BSD, Solaris, OS X and Windows, as well as having a standalone Jar file for any other java-capable platforms that are not specifically supported.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.dmdirc.com/2009/11/22/dmdirc-0-6-3m2-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Development roundup: June 2009</title>
		<link>http://blog.dmdirc.com/2009/09/21/development-roundup-june-200/</link>
		<comments>http://blog.dmdirc.com/2009/09/21/development-roundup-june-200/#comments</comments>
		<pubDate>Mon, 21 Sep 2009 12:36:45 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Roundup]]></category>

		<guid isPermaLink="false">http://blog.dmdirc.com/?p=243</guid>
		<description><![CDATA[Regular visitors to our blog may have noticed a lack of development roundups over the past few months. This was due to some non-DMDirc commitments/difficulties experienced by some of the developers. Never fear, though, we&#8217;re now back and gearing up for DMDirc 0.6.3m2, which should be out on the 1st of November according to our [...]]]></description>
			<content:encoded><![CDATA[<p>Regular visitors to our blog may have noticed a lack of development roundups over the past few months. This was due to some non-DMDirc commitments/difficulties experienced by some of the developers. Never fear, though, we&#8217;re now back and gearing up for DMDirc 0.6.3m2, which should be out on the 1st of November according to our <a href="http://blog.dmdirc.com/2009/07/05/improving-the-dmdirc-release-cycle/">release schedule</a>. We&#8217;ll try to clear up the backlog of roundups over the next few days.</p>
<p>So, going back to June. Almost the entire month was spent in a feature freeze for DMDirc 0.6.3m1. We made around 70 commits to our git repository, fixing a large number of bugs ranging from typos, to windowing/title problems, and various minor UI tweaks.</p>
<p>On the 28th of June, we released <a href="http://blog.dmdirc.com/2009/06/28/dmdirc-063m1-released/">DMDirc 0.6.3m1</a>, the full changelog for which can be seen <a href="http://wiki.dmdirc.com/documentation:changelogs:0.6.3m1">on the wiki</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.dmdirc.com/2009/09/21/development-roundup-june-200/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Improving the DMDirc release cycle</title>
		<link>http://blog.dmdirc.com/2009/07/05/improving-the-dmdirc-release-cycle/</link>
		<comments>http://blog.dmdirc.com/2009/07/05/improving-the-dmdirc-release-cycle/#comments</comments>
		<pubDate>Sun, 05 Jul 2009 14:16:58 +0000</pubDate>
		<dc:creator>Shane</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[QA]]></category>

		<guid isPermaLink="false">http://blog.dmdirc.com/?p=224</guid>
		<description><![CDATA[Once again, we are looking at improving the DMDirc release cycle. First, a bit of history. When we first started with DMDirc back in 2007 we had very regular releases, but these have slowly started getting longer and longer: 0.1 was released on the 1st of March 2007 0.2 quickly followed 5 days later (6th [...]]]></description>
			<content:encoded><![CDATA[<p>Once again, we are looking at improving the DMDirc release cycle. First, a bit of history. When we first started with DMDirc back in 2007 we had very regular releases, but these have slowly started getting longer and longer:</p>
<ul>
<li>0.1 was released on the 1st of March 2007</li>
<li>0.2 quickly followed <strong>5 days</strong> later (6th March)</li>
<li>0.3 was <strong>1 month, 18 days</strong> after that (24th April)</li>
<li>0.4 followed after <strong>1 month, 18 days</strong> again (11th June)</li>
<li>0.5 then came <strong>3 months, 15 days</strong> later (26th September)</li>
<li>0.5.1 was then released as a bug fix a mere <strong>11 days</strong> after that (7th October)</li>
</ul>
<p>So that was six releases in just over 7 months. We were happy to be doing regular releases as we felt it was more likely to keep users with us as the client evolved quickly. However, this pace soon died down and <strong>3 months, 23 days</strong> later (which was at the time the longest we&#8217;d gone without a release), with no sign of 0.6 being finished any time soon, we made the decision to release 0.5.5. This was intended as a half-way point between 0.5 and 0.6 to try and keep the releases regular, with the idea that 0.6 would follow in a similar time scale. This was not quite the case, as it took us a further <strong>7 months, 12 days</strong> before 0.6 was released!</p>
<p>Shortly before the release of 0.6 we looked at the time between releases, and took the decision to split our workload for 0.7 into 3 separate parts (as described <a href="http://blog.dmdirc.com/2008/07/30/looking-ahead-to-dmdirc-07/">here</a>) in order to try and bring the release time down to a more reasonable time scale. After some time it became obvious from the amount of outstanding issues for 0.6.3 that this again wouldn&#8217;t work, as six months in we still had a large number of major features outstanding. We therefore decided once again to split the release further into a set of &#8220;milestone&#8221; releases — 0.6.3m1 (which we&#8217;ve just released), 0.6.3m2 (up next) and then probably 0.6.3 proper. These milestone releases were supposed to be point in time where we thought the client was in a good state that we would finish anything we were working on, tidy up the code and release.</p>
<p>Well, <strong>9 months, 16 days</strong> after the release of 0.6 we released the long-awaited version 0.6.3m1. We once again took a hard look at this and have come to the conclusion that this simply isn&#8217;t acceptable, despite two attempts at breaking the release down it still took us 9 months to do what essentially boils down to 1/9th of the 0.7 release we had originally planned (assuming that 0.6.6 and 0.7 will also be split into two milestone releases).</p>
<p>So now we are going to introduce yet another change to our release cycle. We are going to continue with 0.6.3, 0.6.6 and 0.7 as separate release targets, but instead tweak how we handle milestone releases. Currently we decide to release a milestone randomly when we feel that the client is stable, instead we are going to try and stick to a reasonably fixed release cycle of <strong>4 months</strong> in between releases. Approximately 3 months after the last release we are going to start the process of preparing for a milestone release. This will entail a feature freeze and the bumping of any non-essential issues back to the next milestone. Following this we will finish any currently outstanding issues (or bump them if there is still too much to do), a reasonably quick QA cycle (during which we open up the UNSTABLE updater channel to allow for testing of the upcoming release) and then release after the 4th month and repeat.</p>
<p>So with this new release cycle we hope to go back to our original faster-paced release strategy without losing any of the quality we like in a release, and should be looking at releasing the next milestone on or around the <strong>1st of November</strong>, so watch out during October for news of the pending release of 0.6.3m2!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.dmdirc.com/2009/07/05/improving-the-dmdirc-release-cycle/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Development roundup: May 2009</title>
		<link>http://blog.dmdirc.com/2009/06/29/development-roundup-may-2009-2/</link>
		<comments>http://blog.dmdirc.com/2009/06/29/development-roundup-may-2009-2/#comments</comments>
		<pubDate>Mon, 29 Jun 2009 19:28:11 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Roundup]]></category>

		<guid isPermaLink="false">http://blog.dmdirc.com/?p=221</guid>
		<description><![CDATA[During May the DMDirc developers were gearing up to release DMDirc 0.6.3m1 (which has just been released: see our previous blog post), the first of our &#8220;milestone&#8221; releases on the way to 0.6.3 proper. During this month we made 113 commits to our git repository, fixing over 30 issues. Some of the more notable changes [...]]]></description>
			<content:encoded><![CDATA[<p>During May the DMDirc developers were gearing up to release DMDirc 0.6.3m1 (which has just been released: see our <a href="http://blog.dmdirc.com/2009/06/28/dmdirc-063m1-released/">previous blog post</a>), the first of our &#8220;milestone&#8221; releases on the way to 0.6.3 proper. During this month we made 113 commits to our git repository, fixing over 30 issues. Some of the more notable changes this month were:</p>
<ul>
<li>Default settings changed from being versioned using SVN revision numbers to using Git commit hashes, which fixes a lot of development error and further paves the way for us to drop SVN support entirely,</li>
<li>Several fixes to the profile manager dialog</li>
<li>Fixed bug where updater forgets about updates if it checks again, and tidy up some of the updater code</li>
<li>Many, many fixes to the DCC plugin which means that it now works on a regular basis</li>
<li>Further work on the preferences dialog (including a fix for the long-standing problem relating to plugin icons under Windows)</li>
</ul>
<p>All of these changes made it into DMDirc 0.6.3m1, which we encourage you to check out. As always, you can leave feedback here, join us in <a href="irc://irc.quakenet.org/dmdirc">#DMDirc on Quakenet</a>, use the feedback functionality in the client, or have a word with <a href="http://twitter.com/dmdirc">@DMDirc</a> on Twitter.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.dmdirc.com/2009/06/29/development-roundup-may-2009-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DMDirc 0.6.3m1 Released.</title>
		<link>http://blog.dmdirc.com/2009/06/28/dmdirc-063m1-released/</link>
		<comments>http://blog.dmdirc.com/2009/06/28/dmdirc-063m1-released/#comments</comments>
		<pubDate>Sun, 28 Jun 2009 21:07:27 +0000</pubDate>
		<dc:creator>Shane</dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[Release]]></category>

		<guid isPermaLink="false">http://blog.dmdirc.com/?p=208</guid>
		<description><![CDATA[After nearly a year, we have just released DMDirc 0.6.3m1, with over 1000 commits resulting in over 200 feature additions, bug fixes and other changes, including: A redesign of the preferences dialog Improved support for SSL certficates (both client and server) Support for SOCKS proxies Ability to automatically restart the client after installing updates Ability [...]]]></description>
			<content:encoded><![CDATA[<p>After nearly a year, we have just released DMDirc 0.6.3m1, with over 1000 commits resulting in <a href="http://wiki.dmdirc.com/documentation:changelogs:0.6.3m1">over 200</a> feature additions, bug fixes and other changes, including:</p>
<ul>
<li>A redesign of the preferences dialog
<li>Improved support for SSL certficates (both client and server)
<li>Support for SOCKS proxies
<li>Ability to automatically restart the client after installing updates
<li>Ability for plugins to specify &#8216;services&#8217; that they provide/require.
<li>Ability for plugins to export (share) methods with each other
<li>Improved MDI support
<li>A more robust DCC plugin
<li>Moving of the UI to a plugin, allowing for it to be updated separately from the main client
</ul>
<p>DMDirc 0.6.3m1 is one of our &#8220;milestone&#8221; releases of the 0.6.3 branch. These milestone releases were a (somewhat failed) attempt to release more often than we have in the past. We periodically decide to stop working on any new features and tidy up the current code-base into a release-ready state to allow users of the stable branch of the client to get some of the new features and fixes we have added sooner than having to wait for a full major release. It&#8217;s taken us almost a year to get to 0.6.3m1, so imagine how long it&#8217;d take if we went straight to 0.6.3 itself (which is approximately two milestones away)!</p>
<p>Users of previous versions of DMDirc should in the coming days be prompted by the automatic updater (if enabled) to update to the latest version of DMDirc. Alternatively, you can visit our <a href="http://www.dmdirc.com/downloads">downloads page</a> to grab the latest version yourself.</p>
<p>With DMDirc 0.6.3m1 released we are now looking forward to our next milestone release, DMDirc 0.6.3m2. So far the issue list for this contains exciting additions such as improved handling of different charsets in channels, additional changes to plugins to try and make them less like black magic, server lists, improved support for netbooks (and other low-resolution systems), and a plethora of other bug fixes and general improvements to make the client nicer to use.</p>
<p>As always, we welcome bug reports and feature requests on our <a href="http://bugs.dmdirc.com/">issue tracker</a>, <a href="irc://irc.quakenet.org/dmdirc">irc channel</a> or as comments on this post. We&#8217;ve also recently launched an official <a href="http://twitter.com/dmdirc">twitter presence</a>. DMDirc 0.6.3m1 continues to be supported on Linux, BSD, Solaris, OS X and Windows, as well as having a standalone Jar file for any other platforms that are not specifically supported.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.dmdirc.com/2009/06/28/dmdirc-063m1-released/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Development roundup: April 2009</title>
		<link>http://blog.dmdirc.com/2009/05/25/development-roundup-april-2009/</link>
		<comments>http://blog.dmdirc.com/2009/05/25/development-roundup-april-2009/#comments</comments>
		<pubDate>Mon, 25 May 2009 19:29:58 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Roundup]]></category>

		<guid isPermaLink="false">http://blog.dmdirc.com/?p=203</guid>
		<description><![CDATA[April was a fairly slow month for the DMDirc developers. One of our biggest time sinks this month was fixing problems in the UI which appeared after we made some changes to improve thread safety. Throughout the month we had both major and minor issues related to window switching and maximising/restoring, some of which we&#8217;re [...]]]></description>
			<content:encoded><![CDATA[<p>April was a fairly slow month for the DMDirc developers. One of our biggest time sinks this month was fixing problems in the UI which appeared after we made some changes to improve thread safety. Throughout the month we had both major and minor issues related to window switching and maximising/restoring, some of which we&#8217;re only just getting around to fixing now.</p>
<p>There were a couple of new features introduced this month, such as the &#8216;restart needed&#8217; dialog which appears when the updater determines that you need to restart the client in order to complete the upgrade process. If you elect to restart using this dialog, the client will close and the DMDirc launcher will automatically reopen the (updated) client.</p>
<p>The windows side of this was done by a new addition to our team, Michael &#8216;Zipplet&#8217; Nixon, who has now taken responsibility for all of our code that&#8217;s native to Windows (primarily the Windows launcher, installer and uninstaller). Previously Michael helped us test DMDirc on Windows, and we&#8217;re very grateful that he&#8217;s now joined us as a developer. So far he&#8217;s helped to clean up a lot of the Windows code, and has fixed several major bugs such as the uninstaller not working.</p>
<p>As always we encourage you to try a nightly build and to provide us with any feedback you have, either as a comment here, on our bug tracker, or in #DMDirc on Quakenet (irc.quakenet.org).</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.dmdirc.com/2009/05/25/development-roundup-april-2009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Development roundup: March 2009</title>
		<link>http://blog.dmdirc.com/2009/04/25/development-roundup-march-2009/</link>
		<comments>http://blog.dmdirc.com/2009/04/25/development-roundup-march-2009/#comments</comments>
		<pubDate>Sat, 25 Apr 2009 16:59:08 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Roundup]]></category>

		<guid isPermaLink="false">http://blog.dmdirc.com/?p=197</guid>
		<description><![CDATA[March was a reasonably busy month for us, with 160 commits to our central repository. To begin with, we&#8217;ve made some changes to the way we version our non-stable releases (including nightly builds). Previously, these were versioned using an SVN revision number which lead to problems when we created new branches &#8212; if we created [...]]]></description>
			<content:encoded><![CDATA[<p>March was a reasonably busy month for us, with 160 commits to our central repository.</p>
<p>To begin with, we&#8217;ve made some changes to the way we version our non-stable releases (including nightly builds). Previously, these were versioned using an SVN revision number which lead to problems when we created new branches &#8212; if we created a branch of 0.5 and committed a single change right now, it would have a higher revision number than DMDirc 0.6 or the latest nightly builds; this created lots of problems with updating and plugin version requirements. We now use a description of the git commit for versioning, so our example 0.5 branch would have a version along the lines of 0.5-1-gabcdef1 (which means it&#8217;s 1 commit after the 0.5 tag, and the commit has an abbreviated object name of abcdef1), while more recent builds would be along the lines of 0.6-801-g123456a. You can plug these version strings straight into almost any git command, or our <a href="http://cgit.dmdirc.com/">git web interface</a> to see exactly what is included in that version.</p>
<p>Following on from the plugin changes described last month, we now allow plugins to define their default settings in their plugin.info files, along with any custom formatters and icons they use. This moves a lot of static information out of the plugins&#8217; classes and into more easily altered configuration files. It also allows our addons site to parse this extra information (so we could in the future provide a list of options a plugin accepts, for example). We also updated our plugin build script to be able to cope once again with &#8220;friendly&#8221; version names, so nightly users will once again see proper version numbers instead of SVN revisions.</p>
<p>We&#8217;ve also made some changes to the way our IRC Parser works, which allowed us to remove over 4,000 lines of code from the package. The change should be transparent to any developers using the IRC Parser in their own projects (aside from the sudden decrease in number of classes!). The change means slightly smaller download sizes for our users, and much easier maintenance for us going forward.</p>
<p>As always we encourage you to try a nightly build and to provide us with any feedback you have, either as a comment here, on our bug tracker, or in #DMDirc on Quakenet (irc.quakenet.org).</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.dmdirc.com/2009/04/25/development-roundup-march-2009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Development roundup: February 2009</title>
		<link>http://blog.dmdirc.com/2009/03/03/development-roundup-february-2009/</link>
		<comments>http://blog.dmdirc.com/2009/03/03/development-roundup-february-2009/#comments</comments>
		<pubDate>Tue, 03 Mar 2009 00:51:41 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Roundup]]></category>

		<guid isPermaLink="false">http://blog.dmdirc.com/?p=194</guid>
		<description><![CDATA[Welcome to the second instalment in our monthly series of development roundup blog posts. February was a much busier month for us than January, with quite a few major changes, and over 280 commits made to our git repository. One of the most major changes made during February was the moving of the main DMDirc [...]]]></description>
			<content:encoded><![CDATA[<p>Welcome to the second instalment in our monthly series of development roundup blog posts. February was a much busier month for us than January, with quite a few major changes, and over 280 commits made to our git repository.</p>
<p>One of the most major changes made during February was the moving of the main DMDirc UI to its own plugin. This enables us to update the UI independently of the client, and in the future will result in smaller downloads when updating either the client or the UI. We also took the opportunity to upgrade MiG Layout, the layout library used by the Swing UI, to the latest version, and now include it in our repository as a .jar rather than extracted in source code form. This makes our source tree much tidier, makes it easier for us to update to new versions in the future, and means we can now bundle the library with our UI plugin instead of the client itself.</p>
<p>The next large change we made was a partial revamp of the plugin system. Plugins can (and should!) now use DMDirc-style configuration files (such as those used for actions, in themes, and of course by the config system). We also introduced a system of &#8216;services&#8217; to plugins, aimed at improving how plugins worked together and decoupling plugins from one another. Plugins can now define which services they provide (both to the user, and to other plugins), such as status bar applets, nowplaying media sources, or ways to interact with the user&#8217;s computer (such as the dcop plugin); they can also require certain services be loaded, so plugins written for the Swing UI can require that the &#8216;swing ui&#8217; service is provided for it.</p>
<p>With these plugin changes, we also gave plugins a way to declare certain methods for &#8216;export&#8217; to other plugins. For example, the dcop plugin now exports its getDcopResult method under the alias &#8216;dcop&#8217;, and the dcop media source plugin requires a plugin which can provide this export. If an alternate dcop plugin is written, the dcop media source plugin could work with it right out of the box. In the future we hope to use this method for the nowplaying plugin&#8217;s media sources, and perhaps even the user interface plugins.</p>
<p>Still on the subject of plugins, we also introduced &#8216;subplugins&#8217; this month. Sub-plugins allow a &#8216;child&#8217; plugin to access classes defined by the &#8216;parent&#8217; plugin. Previously, the only way to accomplish this was to make the parent plugin persistent, which meant that it was not possible to unload or reload it. Defining this relationship formally also allows us to present it to the user when we upgrade the plugins panel in the preferences dialog (slated for 0.6.3 — watch this space).</p>
<p>There have also been several major back-end changes, the effects of which won&#8217;t be immediately obvious to users. These are the conclusion of the command parser changes and a slight redesign of the configuration system. The former allows for more flexibility in how we assign commands, makes the processing of some commands more efficient, and fixes some issues we had when splitting command input into arguments. The configuration changes now mean that the defaults for all DMDirc settings are specified in a configuration file; previously, developers could either add them to the file or specify the default as a fallback option when they requested the setting (or both!). This change means that all settings are now listed and tab-completable with the /set command, and means that we no longer have to hunt down every use of the setting when updating defaults.</p>
<p>As mentioned in last month&#8217;s roundup, we&#8217;ve been putting the finishing touches to our reworked preferences dialog. Users of nightly builds will have noticed that it now opens near-instantaneously, and does the heavy work of loading categories in the background. Another long-running project which landed this month is an improvement to the textpane designed to reduce memory usage and pave the way for more features (such as being able to copy control codes) in the future. Finally, we finished enhancing our support for SSL-enabled servers; DMDirc is now capable of validating the SSL certificate used by servers, and presents the user with a dialog if there are problems.</p>
<p>This month there were 67 issues resolved, so unlike last month we won&#8217;t be including a list in this blog post. Anyone interested can browse the full list on our bug tracker, <a href="http://bugs.dmdirc.com/search.php?project_id=1&#038;status_id=80&#038;sticky_issues=on&#038;sortby=last_updated&#038;dir=DESC&#038;hide_status_id=80&#038;filter_by_date=on&#038;start_day=1&#038;end_day=31&#038;start_month=2&#038;end_month=2&#038;start_year=2009&#038;end_year=2009">here</a>. See you next month!</p>
<p>You can try out the latest developments in DMDirc before the next release by using nightly builds, available <a href="http://www.dmdirc.com/nightly">from the main website</a>. Be warned that nightly builds aren&#8217;t tested extensively, and may be quite horribly broken. Finally, as always, we&#8217;re happy to receive feedback or to help out with problems; the easiest way to find us is to drop by <a href="irc://irc.quakenet.org/dmdirc">#DMDirc on Quakenet</a> (which you can get to easily by using the &#8216;Help&#8217; → &#8216;Join dev channel&#8217; menu option in DMDirc).</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.dmdirc.com/2009/03/03/development-roundup-february-2009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Development roundup: January 2009</title>
		<link>http://blog.dmdirc.com/2009/02/10/development-roundup-january-2009/</link>
		<comments>http://blog.dmdirc.com/2009/02/10/development-roundup-january-2009/#comments</comments>
		<pubDate>Tue, 10 Feb 2009 06:17:13 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Roundup]]></category>

		<guid isPermaLink="false">http://blog.dmdirc.com/?p=188</guid>
		<description><![CDATA[This is the first post in what will hopefully be a regular series of updates from the DMDirc developers, detailing what we&#8217;ve been up to on a month-by-month basis. Because of DMDirc&#8217;s quite long release schedule, we have found that our communication on the blog is done in small bursts when a release is nearly [...]]]></description>
			<content:encoded><![CDATA[<p>This is the first post in what will hopefully be a regular series of updates from the DMDirc developers, detailing what we&#8217;ve been up to on a month-by-month basis. Because of DMDirc&#8217;s quite long release schedule, we have found that our communication on the blog is done in small bursts when a release is nearly ready, with very long gaps in between; hopefully these updates will help bridge that gap.</p>
<p>January was a fairly slow month for us, with only 57 commits made to our collective git repositories. We have, however, made progress in a variety of areas, including a major refactoring of the command manager to allow greater flexibility to command authors, and further improvements to our new-look preferences dialog.</p>
<p>Issues marked as fixed this month:</p>
<ul>
<li><a href="http://bugs.dmdirc.com/view/0001812">0001812: Expanding and collapsing treeview makes nicklist a stupid size</li>
<li><a href="http://bugs.dmdirc.com/view/0001874">0001874: Ctrl+c doesn&#8217;t work as expected with find bar open</li>
<li><a href="http://bugs.dmdirc.com/view/0002017">0002017: Can load windows np sources on linux</li>
<li><a href="http://bugs.dmdirc.com/view/0002043">0002043: The arrows for collapsing/expanding the treeview/nicklist are ugly</li>
<li><a href="http://bugs.dmdirc.com/view/0002056">0002056: Line length calculations use char length not byte length</li>
<li><a href="http://bugs.dmdirc.com/view/0002057">0002057: java.lang.NullPointerException — Query.getMaxLineLength(Query.java:167)</li>
<li><a href="http://bugs.dmdirc.com/view/0002066">0002066: text can be sent twice by very quick repetitions of the enter key (and im sure awful pcs!)</li>
<li><a href="http://bugs.dmdirc.com/view/0002067">0002067: alias dialog edit panel not 100% width</li>
<li><a href="http://bugs.dmdirc.com/view/0002070">0002070: UI line splitting needs to use bytes not chars</li>
<li><a href="http://bugs.dmdirc.com/view/0002071">0002071: java.lang.StringIndexOutOfBoundsException: String index out of range: 460</a></li>
</ul>
<p>February is already shaping up to be a much busier month, with the number of commits made almost double that of January already. Major changes so far include the finishing touches of the reworked preferences dialog, a huge change in the way that the user interface interfaces with the client, and a number of changes to the plugin system. Details of all of these will be in next month&#8217;s roundup.</p>
<p>You can try out the latest developments in DMDirc before the next release by using nightly builds, available <a href="http://www.dmdirc.com/nightly">from the main website</a>. Be warned that nightly builds aren&#8217;t tested extensively, and may be quite horribly broken. Finally, as always, we&#8217;re happy to receive feedback or to help out with problems; the easiest way to find us is to drop by <a href="irc://irc.quakenet.org/dmdirc">#DMDirc on Quakenet</a> (which you can get to easily by using the &#8216;Help&#8217; → &#8216;Join dev channel&#8217; menu option in DMDirc).</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.dmdirc.com/2009/02/10/development-roundup-january-2009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DMDirc 0.6</title>
		<link>http://blog.dmdirc.com/2008/09/13/dmdirc-06/</link>
		<comments>http://blog.dmdirc.com/2008/09/13/dmdirc-06/#comments</comments>
		<pubDate>Fri, 12 Sep 2008 23:08:51 +0000</pubDate>
		<dc:creator>Shane</dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[Release]]></category>

		<guid isPermaLink="false">http://blog.dmdirc.com/?p=174</guid>
		<description><![CDATA[Edit: It was recently brought to our attention that the OS X version previously released contained a bug that prevented the client from starting. This bug has now been fixed in the version available from Google code, we urge OS X users who previously downloaded and tried to use this version of DMDirc to try [...]]]></description>
			<content:encoded><![CDATA[<p><em><strong>Edit:</strong> It was recently brought to our attention that the OS X version previously released contained a bug that prevented the client from starting. This bug has now been fixed in the version available from Google code, we urge OS X users who previously downloaded and tried to use this version of DMDirc to try again with the fixed version.</em></p>
<p>After a long period of testing we have finally released DMDirc 0.6, and we think this is the best version of DMDirc to date with <a href="http://www.dmdirc.com/en/documentation/releases.0.6.changelog">over 250 feature additions, bug fixes and other changes</a>, including:</p>
<ul>
<li>Themes system revamp to allow multiple themes to be loaded at a time
<li>Completely redesigned Actions Manager and Actions Editor dialog (see <a href="http://blog.dmdirc.com/2008/09/07/new-action-uis/">our previous coverage</a> of these)
<li>New installer for OS X
<li>The Linux installer can now be used for BSD-like OSs that have Java pre-installed
<li>The Linux installer can now be used on Open Solaris
<li>The automatic updater can now update plugins
</ul>
<p>As of DMDirc 0.6 we now support running on more platforms than before: we have installers for Linux, BSD, Solaris, OS X and Windows, as well as a standalone Jar file for any other platforms that we don&#8217;t currently provide an installer for.</p>
<p>Users of DMDirc 0.5.6 (or the recent unstable releases) should be prompted by the updater (if enabled) to update to the latest version of DMDirc. Alternatively, you can visit our <a href="http://www.dmdirc.com/downloads">downloads page</a> to grab the latest version yourself.</p>
<p>With DMDirc 0.6 (finally!) released we are looking forward to our next release, DMDirc 0.6.3. This will include support for SOCKS proxies, improved support for SSL Servers, a nicer looking Preferences dialog, server lists and more.</p>
<p>As always, we welcome bug reports and feature requests on our <a href="http://bugs.dmdirc.com/">issue tracker</a>, <a href="irc://irc.quakenet.org/dmdirc">irc channel</a> or as comments on this post.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.dmdirc.com/2008/09/13/dmdirc-06/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New Action UIs</title>
		<link>http://blog.dmdirc.com/2008/09/07/new-action-uis/</link>
		<comments>http://blog.dmdirc.com/2008/09/07/new-action-uis/#comments</comments>
		<pubDate>Sun, 07 Sep 2008 21:57:32 +0000</pubDate>
		<dc:creator>greboid</dc:creator>
				<category><![CDATA[Actions]]></category>
		<category><![CDATA[UI]]></category>

		<guid isPermaLink="false">http://blog.dmdirc.com/?p=109</guid>
		<description><![CDATA[In DMDirc 0.6, we have made some back-end improvements to the functionality actions groups which allow authors of action packs to specify meta-data such as a description of the pack, and also list the settings available. We obviously wanted to include this new information into the actions UI, and we were aware that the current [...]]]></description>
			<content:encoded><![CDATA[<p>In DMDirc 0.6, we have made some back-end improvements to the functionality actions groups which allow authors of action packs to specify meta-data such as a description of the pack, and also list the settings available. We obviously wanted to include this new information into the actions UI, and we were aware that the <a href="http://blog.dmdirc.com/2007/05/25/actions-now-with-added-ui/">current actions editor</a> wasn&#8217;t as user-friendly as it could be, so we took the opportunity to redesign and rewrite the actions UIs.</p>
<p><a href="http://blog.dmdirc.com/wp-content/uploads/2008/08/dmdirc-new-actionsmanager.png"><img src="http://blog.dmdirc.com/wp-content/uploads/2008/08/dmdirc-new-actionsmanager-300x256.png" alt="" title="New actions manager UI" width="225" height="192" class="alignleft size-medium wp-image-128" /></a>As you can see from the screenshot we now show an info blurb, version and author for all action groups that provide them. In the future, we plan to allow users to edit action groups&#8217; meta-data from inside the UI. This will make it a lot easier for end users to create action packs and make them available to a wider audience through our <a href="http://addons.dmdirc.com/">addons site</a>, but for the moment only the name of the group is editable. </p>
<p>Settings for a particular group are now displayed underneath the group and are editable using the same components as the preferences dialog. Exposing these to the end user has added a lot more flexibility to actions and should enable them to be used in much nicer ways.</p>
<p>Finally, in the previous incarnation &#8216;wrapped&#8217; actions groups (such as profiles and aliases) were visible but appeared empty. This was rather odd behaviour, so we remedied this and now show the contents of all groups. This allows users to edit the automatically created actions, so they can see how they work or use more advanced features that the wrapper UI doesn&#8217;t expose.  The new UI is also a lot more pleasing to the eye.</p>
<p><a href="http://blog.dmdirc.com/wp-content/uploads/2008/09/aed.png"><img src="http://blog.dmdirc.com/wp-content/uploads/2008/09/aed-300x223.png" alt="" title="DMDirc 0.6 Actions Editor" width="225" height="167" class="alignleft size-medium wp-image-163" /></a>Of course, the Actions Manager is only half of the actions UI; the Actions Editor has also undergone a revamp in 0.6. In DMDirc 0.5.5, we introduced <a href="http://blog.dmdirc.com/2007/10/25/condition-trees-aka-making-actions-even-more-incomprehensible/">Condition trees</a>, but at the time they were only usable if you manually edited the action&#8217;s file in your profile, something which we don&#8217;t expect normal users to do. The new Actions Editor UI exposes condition trees and allows for easy selection of &#8216;AND&#8217; and &#8216;OR&#8217; trees, which should bring the added power of condition trees to more users.</p>
<p>As with the Actions Manager, we think the new Action Editor is much more user friendly than its previous version. You can, for instance, now see all the information about the action on one screen and edit them easily without having to switch between tabs. Of course, we&#8217;re always willing to improve further, so if you have any suggestions, please leave a comment!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.dmdirc.com/2008/09/07/new-action-uis/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Improving the development process</title>
		<link>http://blog.dmdirc.com/2008/08/31/improving-the-development-process/</link>
		<comments>http://blog.dmdirc.com/2008/08/31/improving-the-development-process/#comments</comments>
		<pubDate>Sun, 31 Aug 2008 17:09:16 +0000</pubDate>
		<dc:creator>Shane</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[QA]]></category>
		<category><![CDATA[Release]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://blog.dmdirc.com/?p=70</guid>
		<description><![CDATA[One of the things that makes DMDirc good (in my opinion) is that the three main developers actively use it pretty much all day, every day. We are all very, very heavy IRC users (unlike the author of mIRC for instance, who admits to only occasionally using IRC), which is what led to us [re]starting [...]]]></description>
			<content:encoded><![CDATA[<p>One of the things that makes DMDirc good (in my opinion) is that the three main developers actively use it pretty much all day, every day. We are all very, very heavy IRC users (unlike the author of mIRC for instance, who <a href="http://www.mirc.com/khaled/faq.html">admits to only occasionally using IRC</a>), which is what led to us [re]starting DMDirc development — when we all switched to Linux, we couldn&#8217;t find an existing client that any of us really liked.</p>
<p>From the start we wanted DMDirc to be an excellent client, and we quickly got it into a usable state (I have logs showing me using it in early May 2007).  To help us do this we registered with Google Code, which provided us with a Subversion repository, download hosting and an issue tracker.</p>
<p>In addition to the tools on Google Code we also wrote a service that received error reports from DMDirc clients, and allowed developers to browse them using a web interface. This system never really worked too well; it meant that we in effect had two systems for tracking errors, the automated error system (which was checked manually, and therefore quite infrequently) and the user-facing Google Code issue tracker. The Google Code issue tracker also had quite a few issues of its own [ba-dum-tish] that posed problems for us: we didn&#8217;t have much control over it, Google were slow to improve it, and it didn&#8217;t allow for dependencies or private issues. The lack of private issues was the reason we felt the need to have two separate systems at the time — automatically reported errors may in some cases contain private information, so we can&#8217;t show them publicly.</p>
<p>Sometime just before DMDirc 0.5.5 was released, we decided to start using <a href="http://mantisbt.org">Mantis</a> as our primary issue tracker. Mantis, whilst not perfect, gave us the control we wanted — it&#8217;s written in PHP (which, like Java, we all know very well), and is easy enough to modify. We imported all of our existing issues from Google Code, using a <a href="http://bugs.dmdirc.com/patches/1.1.0/IssueScrape.py">Python script</a> (yay for multi-language proficiency!) to screenscrape the website and build an XML file, and then a <a href="http://bugs.dmdirc.com/patches/1.1.0/import.phps">PHP script</a> to read the XML file and import the issues into Mantis. With the issues imported, we set about modifying Mantis to better suit our needs.</p>
<p>We (well, Chris and I) had got quite used to using the issue &#8216;grid view&#8217; offered by Google code, so one of the first things we did when switching to Mantis was implementing our <a href="http://bugs.dmdirc.com/view_grid_page.php">own version</a> of it. We also improved the error reporting backend to raise new Mantis issues (marked as private, of course). Later on, we also enabled SVN integration, which initially meant writing a script to parse e-mails from Google Code (where our SVN repository was still hosted) and passing the information on to Mantis for it to use. After a while, we modified the integration to include links to <a href="http://fisheye.dmdirc.com">our Fisheye instance</a>, and also map Subversion users to Mantis users in order to add comments with the appropriate username instead of just &#8216;SVN user&#8217;.</p>
<p>More recently, we&#8217;ve improved the Fisheye aspect of the integration dramatically; we now access Fisheye and include its representation of the changes directly in Mantis, allowing you to see a list of affected files and even view diffs of the changes without leaving the issue page. We also parse any stack traces in the issue description, and automatically link relevant lines to the Fisheye view of the specified file and revision, if the information is available. You can see an example of both of these modifications in <a href="http://bugs.dmdirc.com/view.php?id=1330">this issue</a>.</p>
<p>Now, as I mentioned above, we are all heavy IRC users so having to periodically check Mantis for new bugs wasn&#8217;t very appealing to us, so we modified it some more so that it communicated with an IRC bot we have which is designed to relay notifications. Mantis tells us everything that happens — new issues, edited issues, property changes on issues — anything that happens there, we instantly know about it.</p>
<p>This setup worked well for us for about 4 months, after which we decided to switch over to using a self-hosted SVN Repository, which opened up even more possibilities. We added post-commit hooks to replace the email-parsing hacks for Mantis support, enabled reporting of commits to IRC, and created a pre-commit hook to make sure that every commit was linked to an issue on Mantis.</p>
<p>Not long after that we discovered and implemented <a href="http://www.atlassian.com/software/bamboo/">Bamboo</a> into our development process. Bamboo is a <a href="http://en.wikipedia.org/wiki/Continuous_Integration">Continuous Integration</a> server, which means that every time we commit something to the trunk (or active branches), it will rebuild the project on our server, run our collection of unit tests and then publish and store the results. Bamboo also notifies us via Jabber if you cause a build to fail. Of course this wasn&#8217;t quite perfect, and after a short while we discovered a <a href="http://confluence.atlassian.com/display/BAMEXT/Pre-Post+Build+Command+Plugin">plugin</a> that can execute post-build scripts. One Bash script later and Bamboo was reporting to IRC like everything else. We also, of course, integrated Bamboo with Mantis. If you check <a href="http://bugs.dmdirc.com/view.php?id=1330">this issue</a> again you will see that the results of the build from Bamboo are also reported under the the commit that triggered it.</p>
<p>As mentioned before, we have a collection of <a href="http://en.wikipedia.org/wiki/Unit_testing">unit tests</a> to make sure things work as expected. Every so often we generate <a href="http://reports.dmdirc.com/frame-clover.html">Clover reports</a> to show how much code coverage we have, and in the last month we have also discovered and began using the <a href="http://fest.easytesting.org/">FEST</a> Swing library to allow us to start unit testing the DMDirc GUI.</p>
<p>So as you can see, what we have now is a very tightly integrated system to help ensure that DMDirc is a quality product. Everything reports to IRC so we know as soon as things happen, our issue tracker is almost omnipotent in that it can tell nearly everything about an issue from being raised to being fixed, and to top it all off, we have <a href="http://www.nagios.org/">Nagios</a> running and monitoring it all for us (and of course, this reports to IRC also!)</p>
<p>Of course this setup wouldn&#8217;t be possible if it wasn&#8217;t for a few choice products provided for free — <a href="http://mantisbt.org">Mantis</a>, <a href="http://www.atlassian.com/software/fisheye/">Fisheye</a>, <a href="http://www.atlassian.com/software/bamboo/">Bamboo</a>, <a href="http://www.atlassian.com/software/clover">Clover</a> and many others. We would like to thank the developers of these products for helping us make DMDirc great.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.dmdirc.com/2008/08/31/improving-the-development-process/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Introducing the intelligent IRC client</title>
		<link>http://blog.dmdirc.com/2008/08/07/introducing-the-intelligent-irc-client/</link>
		<comments>http://blog.dmdirc.com/2008/08/07/introducing-the-intelligent-irc-client/#comments</comments>
		<pubDate>Thu, 07 Aug 2008 22:09:04 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Intelligence]]></category>

		<guid isPermaLink="false">http://blog.dmdirc.com/?p=65</guid>
		<description><![CDATA[If you&#8217;re reading this via our website, you may have already noticed that DMDirc has undergone a small re-branding. We now use the tagline &#8220;the intelligent IRC client&#8221; across all the DMDirc sites (apart from the addons site which is undergoing an overhaul — you can take a sneak peak at what it&#8217;s going to [...]]]></description>
			<content:encoded><![CDATA[<p>If you&#8217;re reading this via our website, you may have already noticed that DMDirc has undergone a small re-branding. We now use the tagline &#8220;the intelligent IRC client&#8221; across all the DMDirc sites (apart from the <a href="http://addons.dmdirc.com/">addons site</a> which is undergoing an overhaul — you can take a sneak peak at what it&#8217;s going to be like over at the <a href="http://addons-dev.dmdirc.com/">development site</a>). This tagline has also found its way into the &#8216;About&#8217; dialog in recent nightly builds.</p>
<p>Why &#8220;the intelligent IRC client&#8221;? Well, we think DMDirc&#8217;s built-in &#8216;intelligence&#8217; is the most significant aspect that sets it apart from other clients. We&#8217;ve yet to see another IRC client that has tab-completion anywhere near the quality of DMDirc&#8217;s, or that parses links as well as we do. We have more enhancements coming for both of these areas, too, as well as plans to make other DMDirc features more &#8216;intelligent&#8217;.</p>
<p>While the two areas mentioned above may not seem ground-shatteringly important, they improve the usability of the client quite a lot. The difference they make is most noticeable when you use another IRC client, and find that you can no longer tab-complete command names, or that a link in the topic includes a closing quotation mark when you click on it, which means you have to do something extra (open the manual to look up the command name, manually copy the URL or modify it in the browser, etc) in order to do/find out what you want, instead of it just working.</p>
<p>DMDirc 0.6 (coming soon; we&#8217;re going to be pushing out an alpha version this weekend) features a lot of enhancements to the &#8216;intelligent&#8217; aspects of DMDirc, some of which we&#8217;ve <a href="http://blog.dmdirc.com/2008/02/13/even-more-intelligent-tab-completion/">discussed previously</a>. But, as always, we&#8217;d love to hear from you if you have any suggestions on how we could make DMDirc more intelligent. Feel free to leave a comment on this post, <a href="http://bugs.dmdirc.com/bug_report_advanced_page.php">create a new issue</a> on the issue tracker, join us in <a href="irc://irc.quakenet.org/dmdirc">#DMDirc on Quakenet</a>, or use the feedback form found in the Help menu in the client itself.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.dmdirc.com/2008/08/07/introducing-the-intelligent-irc-client/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Looking ahead to DMDirc 0.7</title>
		<link>http://blog.dmdirc.com/2008/07/30/looking-ahead-to-dmdirc-07/</link>
		<comments>http://blog.dmdirc.com/2008/07/30/looking-ahead-to-dmdirc-07/#comments</comments>
		<pubDate>Wed, 30 Jul 2008 11:44:17 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://blog.dmdirc.com/?p=61</guid>
		<description><![CDATA[With DMDirc 0.6 coming soon (hopefully — we still have a few bits and pieces to finish off), we&#8217;re starting to look ahead towards the next major branch: DMDirc 0.7. The 0.7 branch has several major new features, namely sever lists and a revamped update system, both of which have extensive core and UI components. [...]]]></description>
			<content:encoded><![CDATA[<p>With DMDirc 0.6 coming soon (hopefully — we still have a few bits and pieces to finish off), we&#8217;re starting to look ahead towards the next major branch: DMDirc 0.7.  The 0.7 branch has several major new features, namely sever lists and a revamped update system, both of which have extensive core and UI components.  There are also a large number of smaller features and enhancements: we have over 80 issues open for the 0.7 branch, and this number is growing fairly steadily.</p>
<p>Looking back on the 0.6 branch, one of the things we&#8217;d like to change most is the length of time between each release. Ignoring security and bug fixes, there was a four month gap between 0.5 and 0.5.5, and it looks like DMDirc 0.6 will be released between six and seven months after that. This isn&#8217;t because we&#8217;re getting lazy, or because we care less about DMDirc than we did when we released the first few versions (which were all inside of the same month); it&#8217;s because we&#8217;re implementing more features, fixing more bugs, and doing more behind-the-scenes work (improving the DMDirc code base) than we have in previous releases.  To combat this somewhat, we&#8217;re aiming to make three releases as part of the 0.7 development series &#8211; DMDirc 0.6.3, 0.6.6 and 0.7. We&#8217;ve allocated issues to each release to try and balance the time it will take (DMDirc 0.5.5 wasn&#8217;t a pre-planned release and, as you can tell from the timing, didn&#8217;t split the workload too well), so hopefully we&#8217;ll be able to make releases somewhat more frequently than we have been.</p>
<p>Pre-planning these sub-releases has also enabled us to organise issues better so that we&#8217;re working on (and releasing) related features at the same time. The rough focus of each release is described below. Note that these are just the major, overarching themes; each release also contains a good helping of smaller, independent enhancements.</p>
<ul>
<li>DMDirc 0.6.3: Server lists, input/command improvements, plugin improvements</li>
<li>DMDirc 0.6.6: Updater overall, installer and launcher improvements</li>
<li>DMDirc 0.7: Channel and general window/UI improvements</li>
</ul>
<p>Of course, if you can&#8217;t wait for releases to try out all the new features, you can download a <a href="http://www.dmdirc.com/en/nightlies">nightly build</a>, which can auto-update with the latest features and bug fixes each day.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.dmdirc.com/2008/07/30/looking-ahead-to-dmdirc-07/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Even more supported operating systems</title>
		<link>http://blog.dmdirc.com/2008/07/25/even-more-supported-operating-systems/</link>
		<comments>http://blog.dmdirc.com/2008/07/25/even-more-supported-operating-systems/#comments</comments>
		<pubDate>Fri, 25 Jul 2008 21:46:50 +0000</pubDate>
		<dc:creator>Shane</dc:creator>
				<category><![CDATA[BSD]]></category>
		<category><![CDATA[Installer]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[OSX]]></category>
		<category><![CDATA[Plugins]]></category>
		<category><![CDATA[Solaris]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://blog.dmdirc.com/?p=53</guid>
		<description><![CDATA[With the upcoming version 0.6 of DMDirc (we know that it&#8217;s been a while since the last big release, we&#8217;ll blog about that soon) we have added support for even more operating systems. As you probably know, DMDirc is written in Java which gives us a huge advantage as far as cross-platform compatibility is concerned. [...]]]></description>
			<content:encoded><![CDATA[<p>With the upcoming version 0.6 of DMDirc (we know that it&#8217;s been a while since the last big release, we&#8217;ll blog about that soon) we have added support for even more operating systems.</p>
<p>As you probably know, DMDirc is written in Java which gives us a huge advantage as far as cross-platform compatibility is concerned. Java runs on all the major operating systems so most of the hard work has been done for us.</p>
<p>Up to DMDirc 0.5.6 we only supported Windows and Linux and provided a separate jar-only download for other platforms. For 0.6 the supported list of operating systems has more than doubled; we now package DMDirc for:</p>
<ol>
<li>Linux</li>
<li>Windows</li>
<li>OS X</li>
<li>Open Solaris (and normal Solaris)</li>
<li>BSD (tested on PC-BSD, which is FreeBSD at the core)</li>
</ol>
<p>This pretty much covers all major non-server operating systems, which we are quite pleased about.</p>
<p>The Installer for DMDirc runs on all of the above systems (apart from OS X, which has its own installation method) and where possible can download and install Java automatically. Currently the only exception to this is BSD, where users will need to compile the jdk16 port manually — unfortunately Sun&#8217;s licensing prevents redistribution of the modified JRE used on BSD.</p>
<p>The nightly builds have been working on all of the above operating systems for a while now, and you can browse and download the installers from our <a href="http://www.dmdirc.com/en/nightlies">nightly builds</a> page.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.dmdirc.com/2008/07/25/even-more-supported-operating-systems/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
