Intelligent channel names

Filed under: General,Intelligence — Chris on March 24, 2010 @ 08:53 — Permalink

As you can probably gather from DMDirc’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:

<Person> Hey, you, why don't you join #channel2 (and maybe #channel3)?

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 “stylechannels” option enabled, that message will show up as:

<Person> Hey, you, why don't you join #channel2 (and maybe #channel3)?

As you can see, we now correctly realise that the “)” and “?” at the end of #channel3 probably weren’t intended to be part of the channel name. And with stylechannels enabled you’ll be able to see exactly where you’re going to end up before clicking.

But we’re not done yet! What if you’re more of a keyboard aficionado than a mouse lover? You want to use the /join command, but don’t think there’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 – DMDirc now has intelligent tab completion for its /join command. This keeps an eye out for any linked channel names, and suggests any you’re not already in when you hit tab! So after our friendly user suggests two channels to us, we can type:

/join <tab>

And DMDirc will suggest #channel2 and #channel3. What’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:

/join #help,<tab>

Will offer the suggestions #help,#channel2 and #help,#channel3.

All of these features will be available in DMDirc 0.6.4, which should be out at the start of July. If you can’t wait that long, you can try a nightly build. Think of any more ways we can make DMDirc intelligent? Leave a comment, poke @DMDirc on Twitter, or you can of course join us on IRC.

DMDirc 0.6.3 released

Filed under: News,Release — Chris on March 6, 2010 @ 21:38 — Permalink

We’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:

 

Window menu enhancement

The window menu now groups windows by server, making it much easier to quickly access a specific window (especially if you’re connected to lots of different servers!).

 

Addon browser

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.

 

Backgrounds

You can now specify background images for both the textpane and the main ‘desktop’ area.

 

Topic improvements

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.

 

Improved URL and channel linking

DMDirc’s already intelligent URL handling has been improved further, now allowing some extra characters to ensure compatibility with non-standard URLs. We’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.

 

DCC fixes

We’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’ve also fixed a particularly silly bug which rate limited all DCCs to 10KB/s in past versions.

 

As always, we welcome bug reports and feature requests on our issue tracker, irc channel or as comments on this post. We will also respond to mentions on twitter. 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.

Releasing for lazy people

Filed under: Development,Tech — Chris on February 16, 2010 @ 21:03 — Permalink

In preparation for DMDirc 0.6.3, we’ve just finished enhancing our release procedures considerably. Previously, a typical set of steps needed to release a version of DMDirc would be:

  1. Create a new tag in a local Git repository
  2. Push the new tag
  3. Run the relevant ant task to create an installer
  4. Upload the installers and jar file to the correct place
  5. Go through each plugin and upload each one (one at a time) to the addons site
  6. Find or clone a copy of the main website repository
  7. Update a PHP file to contain details of each supported OS and each download and its size, etc
  8. Commit the website changes
  9. Push the website changes

Obviously, this process was distinctly not enjoyable. A lot of it now lends itself quite well to being automated, but we hadn’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’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.

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’s for (alpha, beta and rcs are unstable, plain versions are stable), and then builds the relevant installers. Once the installer’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:

  1. Create a new tag in a local Git repository
  2. Push the new tag

Which I’m sure you’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!

SVN Deprecation

Filed under: Development — Shane on January 3, 2010 @ 05:33 — Permalink

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’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.

Anyone who is still using an SVN checkout should read http://www.dmdirc.com/git and switch to using Git, which brings numerous advantages and makes contributing back to DMDirc easier thanks to Gerrit.

If you have any questions about DMDirc development, feel free to join us in #DMDirc on Quakenet.

Introducing Gerrit

Filed under: Development,QA — Shane on November 26, 2009 @ 03:33 — Permalink

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’re slowly and surely modifying, upgrading or scrapping these in favour of Git-based solutions.

Recently we began a trial of using Gerrit 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.

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 Git wiki page detailing how to do just that.

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 Quakenet, Freenode, OTFC, Coldfront or Chatspike! (Don’t worry: we have a system in place to link all the channels together!)

Next Page »

Powered by WordPress