Bela Lugosi's Dead, Jim Below are the 20 most recent journal entries recorded in the "Richard Kettlewell" journal:

[<< Previous 20 entries]

November 27th, 2009
10:03 pm

[Link]

What I did with my time off
  • Got a roofer to look at our loft, which has a squirrel problem. We need our eave combs (i.e. the things that block the gap at the bottom of the tiles) replacing. Quote expected next week.
  • Taught DisOrder how to use Secret Rabbit Code.
  • Added drag and drop and playlist support to Disobedience.
  • Wrote a new manual for Disobedience. It's also grown some help buttons which link into the appropriate bits of the manual.

Tags: , ,

(1 comment | Leave a comment)

November 18th, 2009
11:26 am

[Link]

Drag And Drop The Hard Way

Disobedience, DisOrder's GUI client, uses a GtkTreeView to display its current queue of tracks (and for various other purposes). It allows rearrangement of the queue by drag and drop. The high-level support for this in GtkTreeView is rather unsatisfactory for two reasons:

  1. You can only drag one track (row) at a time. It should be possible to drag the whole selection.
  2. You cannot drag between widgets. Playlist editing in particular is likely to make this important.

(Actually the model where it reports the effects of the drag and drop by inserted/deleted signals on the underlying model is also quite inconvenient for me: Disobedience has to translate it back into a move which it communicates to the server.)

Fixing this involves doing rather a lot of the drag-and-drop work yourself, and while the documentation does exist it is not always clear or even complete. There is existing code out there, and I referred to it while working some of this out; but describing it in English online seems worthwhile. In addition, while some of the code is inextricably mixed with Disobedience's internal workings, a couple of independent modules are presented, which should be usable in other C programs.

This articles assumes some familiarity with GTK+. I have tried as far as reasonably possible to remove DisOrder-specific issues from the discussion here, but note that this isn't always possible.

Read on... )

Tags: ,

(Leave a comment)

April 18th, 2009
08:20 pm

[Link]

Build Tools

There are a couple of scripts I've written to help me with development of DisOrder (and of other things).

polybuild

polybuild can build multiple programs on multiple computers; it produces a HTML “scoreboard” showing the results. I've been using it for a while from time to time to ensure that changes made in one place haven't broken something elsewhere. Here's an example while a build is underway:

For each platform, the left column is for the build (./configure and make) and the right column for tests (make check). Grey means hasn't started, yellow means underway, green means success and red means failure. As you can see, VCS is having some trouble on some of the platforms. The various symbols (other than “?”) link to logfiles containing the relevant build output. Here's the final state:

(heceptor, my FreeBSD machine, doesn't show up because it's turned off. Since I know this perfectly well its invisibility doesn't matter to me, but obviously this would be a problem for some users.)

stabilize

stabilize is rather more recent. I use it to maintain a disorder.stable branch that tracks disorder.dev; changes are only pushed from the latter to the former when the branch can pass make check. It also emails me if anything has gone wrong, so if I didn't bother to run the tests myself (they take quite a while) then I still find out within the hour that I made a mistake.

stabilize has no associated pretty pictures l-)

Both are quite optimized for my particular setup, but it should be at least possible to use them more widely. Also both only support Bazaar but they could be adapted to other version control systems.

Both can be acquired by:
bzr clone http://www.greenend.org.uk/rjk/bzr/rjk-buildtools.dev

Tags: , ,

(Leave a comment)

March 22nd, 2009
08:38 pm

[Link]

GTK+ OS X

I tried building the DisOrder GUI, Disobedience, against GTK+ OS X (i.e. native GTK+ support, no X11 required).

Having the menu bar in the window rather than in the normal OS X menu bar is rather weird, but presumably that's fixable. It doesn't produce an application bundle yet either; it might be worth waiting until the GTK+ libraries are more stable before attempting that. Drag and drop is the only thing I've found that doesn't work so far.

Tags: , ,

(1 comment | Leave a comment)

July 19th, 2008
03:50 pm

[Link]

DisOrder playlists

Design for DisOrder playlists, an oft-requested feature that might actually get implemented sometime soon.

In other news, DisOrder 4.2 has been released. Downloads from the usual place.

Tags: ,

(Leave a comment)

June 12th, 2008
02:00 pm

[Link]

Latest Disobedience screenshots

What's new here:

  • The queue and choose tabs now use a GtkTreeView rather than locally implementing everything in a layout. The main effect of this is that everything works in a manner much more consistent with other GTK+ applications, and you can do things like rearrange and resize the columns (although GTK's implementation of column resizing is crazy and broken).
  • GTK+ (or rather Pango) takes care of ellipsizing long track names, which means they are truncated at the column's edge, rather than being truncated to a fixed size and forcing the column width.
  • The choose tab now has the track length visible and a checkbox that not only shows the playing state but also can be used to add the track to the queue. The latter isn't completely new, you could always middle-click to do this and a notes icon appeared by playing tracks, but now it's much clearer that you can do this.

This is all on a branch and there's still more work to do but will be in a future release.

Tags: ,

(2 comments | Leave a comment)

April 20th, 2008
10:40 am

[Link]

Portable integer log2 using floating point primitives

One of the things I needed for the user management window below was to convert from single bit in a bitmap to its bit number. (Rights are represented internally as a bitmap, but you want the bit number to index the array of GtkCheckButton widgets that represented them.)

An unportable answer and a portable one )

Tags: , ,

(23 comments | Leave a comment)

12:14 am

[Link]

New Disobedience window

(Previous iteration.)

Tags: ,

(6 comments | Leave a comment)

March 29th, 2008
06:16 pm

[Link]

DisOrder 3.0
From: Richard Kettlewell <rjk@greenend.org.uk>
To: sgo-software-announce@greenend.org.uk
Subject: DisOrder 3.0
Date: Sat, 29 Mar 2008 18:15:13 +0000

DisOrder 3.0 has been released.  This release adds a number of new
features.

Read more... )

Tags: ,

(3 comments | Leave a comment)

March 9th, 2008
11:13 am

[Link]

I don't think I should have to do this
--- server/play.c       2008-03-03 22:56:22 +0000
+++ server/play.c       2008-03-09 11:10:46 +0000
@@ -389,8 +390,14 @@
       /* np will be the pipe to disorder-normalize */
       if(socketpair(PF_UNIX, SOCK_STREAM, 0, np) < 0)
         fatal(errno, "error calling socketpair");
+      /* Beware of the Leopard!  On OS X 10.5.x, the order of the shutdown
+       * calls here DOES MATTER.  If you do the SHUT_WR first then the SHUT_RD
+       * fails iwth "Socket is not connected".  I think this is a bug but
+       * provided implementors either don't care about the order or all agree
+       * about the order, choosing the reliable order is an adequate
+       * workaround.  */
+      xshutdown(np[1], SHUT_RD);       /* decoder writes to np[1] */
       xshutdown(np[0], SHUT_WR);       /* normalize reads from np[0] */
-      xshutdown(np[1], SHUT_RD);       /* decoder writes to np[1] */
       blocking(np[0]);
       blocking(np[1]);
       /* Start disorder-normalize */

Tags: , , ,

(10 comments | Leave a comment)

March 4th, 2008
10:45 pm

[Link]

Bug #1 (revisited)

Further to this...

So far Alioth is out as it appears to be only for Debian developers (though the front page and project registration form sneakily don't tell you this, implying instead that it's for “Open Source developers” in general) and Savannah is out because the hosting requirements insist on GFDL for manuals, and DisOrder's documentation is GPL'd and are likely to remain that way (the point being that you can copy and modify the documentation exactly when you can do so to the source code).

That leaves Sourceforge, which although it seems to be a bit quicker than I remember it is annoyingly infested with adverts, and Launchpad, which I've had one commenter in favor of and one recommendation against (albeit without an explanation as to why).

Tags: ,

(6 comments | Leave a comment)

January 6th, 2008
01:25 pm

[Link]

Graphical Web Browsers

What web browsers should I test DisOrder against? I've successfully tested with:

  • Firefox 2
  • Konqueror 3
  • Safari 3
  • MSIE 7
  • Opera 9
  • Seamonkey
  • iCab

Are there any other at least reasonably widely used browsers, ideally that I can download for free, that I can test with?

(See comments re IE6, and browsers I've tried that don't work.)

Relevant bits of changelog )

Tags: ,

(41 comments | Leave a comment)

January 5th, 2008
05:32 pm

[Link]

A third DisOrder platform
Read more... )

Tags: ,

(Leave a comment)

January 1st, 2008
08:29 pm

[Link]

Stupid Safari
Bah )

Tags: , ,

(4 comments | Leave a comment)

December 31st, 2007
11:13 am

[Link]

DisOrder user management

I've been rewriting DisOrder's user management code lately. In the next version the web interface will use cookies instead of HTTP basic authentication and there is a flexible system of user rights behind the scenes.

What you get when you initially visit the web interface is now, instead of a blunt demand for a username and password, read-only access. In fact the administrator can open this up a bit, for instance giving guests the ability to scratch randomly chosen tracks but not those specifically requested by someone.

There is also a registration page where you can create yourself a new login automatically. This can be disabled for sites that would rather a human was in the loop for any new logins.

The full design can be found here but if you don't want to read that, have some screenshots instead:

Screenshots )

Tags: ,

(2 comments | Leave a comment)

December 17th, 2007
08:01 pm

[Link]

DisOrder 2.0
Released )

Tags: ,

(Leave a comment)

October 25th, 2007
08:37 pm

[Link]

Bug #1

Since chiarkwiki is now dead, I need something to replace the DisOrder wishlist page. It's now an HTML page that only I can edit, but what I really want is a bug tracking system, both for wishlist items and real bugs.

I'd like to not run a whole BTS just for one project, so one of the development hosting services seems like the obvious answer. The ones I know of are:

Right now I'd only be interested in bug tracking and closely related facilities, rather than somewhere to host source code or whatever. It's not completely impossible that other facilities might be useful in the future though.

So does anyone have either any suggestions beyond the above, or relevant experience of using them either as a developer or for the matter just as a user wanting to report a bug - which one would you choose and on what grounds?

Tags: ,

(10 comments | Leave a comment)

08:25 pm

[Link]

Maybe someone here will know

I posted this to gtk-app-devel-list but nobody replied, not even with the wrong answer.

rc file only works outside gnome )

Tags: ,

(2 comments | Leave a comment)

October 9th, 2007
11:22 pm

[Link]

What I did on my holiday

I spent the last couple of weeks off work, mostly working on DisOrder.

What's new )

Tags: ,

(9 comments | Leave a comment)

September 29th, 2007
07:20 pm

[Link]

DisOrder's internal plumbing
PNG )

Tags: ,

(Leave a comment)

[<< Previous 20 entries]

I deny everything Powered by LiveJournal.com