My group is rebuilding one of our websites, and the UI is getting some serious attention. The business and technical groups came to an early decision that we would not be using multi-select listboxes. They alway require special instruction to use, and they are difficult to use for many users. I don’t know how long that MacOS has supported this feature. Windows has had the feature for more than 15 years. GTK has a similar behavior in the treeview. But Why, oh why, are we perpetuating such a bad solution.

We use radio button for mutually exclusive options, and checkboxes for inclusive options. I have no issue with the listbox to restrict the view of a large list, but why change the rules of the exclusive/inclusive operation? The problem is the size of the list, not how the user interacts with it. The listbox could, maybe should, display exclusive items as radio buttons, and inclusive items as checkboxes. The user should know by the presentation of the items in the list how the listbox will behave.

Using GTK’s treeview to implement the behavior doesn’t take a lot of work–just add use a radio button or a checkbox instead of text, and ignore the SELECTION_MULTIPLE property. Putting the checkboxes/radio buttons in a scrollpane is even easier to implement. regardless of the implementation, all listboxes in my GNOME/GTK desktop should behave consistently.

GTK  exclusive and inclusive listbox examples

Until I thought about this matter I had not noticed that Gecko/gtkmozembed is forging a listbox control for GTK. Since the listbox was removed from GTK few years ago, Gecko must be using a its own widget to imitate the missing behavior. Still, this behavior, while consistent with other OSes, it is not consistent within each OS. I’m considering using a div with fixed dimensions and overflow to fix the behavior. I’m somewhat uncomfortable introducing non-standard UI behavior, particularly to a Web browser. But I feel that things are so broken, that it would be negligent of myself and my group not to take some action.

To anyone who has any influence of the Mac/Windows interface, please help end the control-click to select madness.

I'm making a repository and publisher tool that will replace the aging and crippled GNOME software map. Edd Dumbill is working on DOAP that will allow projects to publish their vital information so that it can be aggregated by sites like GNOME and Freshmeat. By registering a public DOAP file/feed with the relevant sites, the project maintainer will only need to update the feed to send updates to all the sites.

After the initial registration with the GNOME DOAP repository (redland), the tool will check for periodic updates from the project's public DOAP file. When an update is found, the tool will use XSLT to regenerate the GNOME directory of apps, as well as the application summary pages. This will give the Web site a consistent presentation for the GNOME apps that should be easier for users to explore. We could consider adding search capabilities to the Web site in the future.

But what to name the tool? It's difficult to stay politically correct when dealing with DOAP: 'Dealer', 'Stash', 'Junkie' the bad allusions go on and on. I like 'Dealer', no DOAP, because its job is to server the project data to the users.

Last week I was struck down my allergies. I started making mistakes converting developer.gnome.org to UTF-8 and XHTML. Nor could I focus in my day job.

I spent a lot of time in Bugzilla reviewing patches. By Sunday morning, we had gone from 1703 to 978 unreviewed patches. I don't think there are many obsolete or incomplete patches in the db now. On Friday I started using jhbuild to list the modules I should patch review, and by Saturday night I started going through my own menus.

I came across this remark while doing the patch review:

OK, perhaps you've proved that short-circuiting that improves performance is possible, but you've done much violence to the Pango code base in the process.
–Owen Taylor 2003-02-28 10:26

I brought most of www.gnome.org up to XHTML compliance last weekend. There is some PHP changes to do, but we may just pull PHP from the site all together. The GST and GNOME-Network projects may want to start making plans to switch from PHP to flat HTML.

Last night I was looking at the strange markup the News Summaries on developer.gnome.org. HTML <hr> elements were appearing instead of XHTML <hr /> elements. Unable to locate the source of the phantom elements I went to bed. I awoke 60 minutes later at 12:30 AM with the Monkey God whispering answers in my ear. Beware the Monkey God's code; it is a zen-like language that is often undecipherable the morning after. This morning I had indeed fixed the <hr> problem by changing the xsltproc HTML option to XML plus a few rule refinements, but created wacky empty anchors in the process. The News Summaries were valid, but would not display correctly in the browser. I couldn't figure what I was doing last night, but I was vaguely aware that the Monkey God made no mention in the technical requirements that the pages would actually work.

Thanks to jamesh who provide a patch to fix the problem. No doubt he can decipher the Monkey God's code.

I've been converting the encoding and markup of the GNOME Web sites in an effort to avoid doing some real work. We are moving the GNOME sites to UTF-8 and XHTML to catch up with standards. The Foundation and GUADEC sites are complete. The main portion of www.gnome.org is complete, the PHP portions of the w.g.o and the projects are my next tasks. If you maintain the pages for a project on w.g.o and you don't want me touching your content, send me an email. I'm fixing the developer Web site last because it has the most content, and the content is in a very unpredictable state.

We have a number of ways to generate Web content, some special to the Web, other common like DocBook and gtk-doc. We need to regenerate some of the content as XHTML. Older content that that isn't worth regenerating can be updated by hand, or we can label it as deprecated (or even historical).

Converting the character encoding isn't too difficult, but there are some inconveniences. Source code is stored in CVS in the encoding of the last developer or tool; some code in GNOME CVS is not UTF-8 and will not display right on cvs.g.o. This is a brief sample of invalid UTF-8:

./gnome-vfs/libgnomevfs/gnome-vfs-job-queue.c ./esound/esdplay.c ./libgnome/libgnome/gnome-config.h ./libgnomecanvas/libgnomecanvas/gnome-canvas-text.c ./libbonoboui/samples/compound-doc/container/container-io.h ./libgnomeui/libgnomeui/gnome-scores.c ./gnome-themes/gtk-themes/Mist/src/mist-style.c ./gnome-applets/battstat/acpi-linux.c
./gtkhtml2/libgtkhtml/gtkhtml.h 

I set the month of December aside for Web hacking, but I did nothing. I took every opportunity I had and played with Medusa, and planned my Storage changes for 2004. So I'm making my negligence public. There are dozens of quick fixes to make. The store application must be built over the next few days. The reorganization of the site and general cleaning simple must be done in January. I really don't have the time to do all of this, but there are people willing to help if I make the time to do some organization of it.

Murray, I think you are partially right about Anjuta promoting Glade code. Without a comprehensive primer about the GNOME development process that provides best practices and a checklist, we will continue to see such mistakes. I lurked on the gnome lists for years, and learned a lot about good and bad practices. When It came time for me to contribute code, I was very frustrated trying to locate good information. In the case of glade, there are dozens of tutorials available, most for Python, and most use glade-generate code. I knew this was wrong, but there is not a good document about what is right. In the case of my recently created msearch-gui, I wanted to reuse code from gnome-search-tool, but I found glade-generated code. I was savvy enough to realize that just because I found glade-generated code in the base GNOME packages, that does not mean I should use it.

There are lots of articles and tutorials about GNOME development, many are wrong, and many are on the developer.gnome.org site. We are reorganizing developer.gnome.org, and we will take the opportunity to remove old documents or label them obsolete. The Web site needs to do a better job at integrating the information into a cohesive set of documents that clearly define how to develop without developers needing to hunt for the answers to their questions.

I would like to create an outline of the GNOME development process, and commit it as a project. It would be good to capture the experience of the seasoned developers, and update project as the development process evolves. Providing a checklist will really help developers avoid making revisions to get their code in shape for a public release. Tools like Anjuta and Scaffold should reinforce the GNOME development process by providing features that reinforce the process, and make it difficult to deviate from the best path.

I've scraped a lot of addresses, lists, and channels off the gnome.org sites. Too much for the contact page. I need to better define it's scope to limit the content so I can settle on how best to present it. We may want to break the contact page into one for users and another for developers. I think we should also include http://www.gnomesupport.org/ since it has a lot of feature users need that are not provided by gnome.org.

I added Guile-gtk/Guile-gobject to the GNOME language bindings page. The project decided to develop GNOME2 as a subproject instead of refactoring Guile-gtk. Scheme really hurts my head. Reading it is such a pain. I cannot forgive Gerald Sussman for creating it, though I can forgive Guy Steele since he made contributions to the Java language, and published the Hackers Dictionary (the Jargon File). As for Guile's ambition to be the default scripting language for applications, it shouldn't be. It's might be simple, but it isn't comprehensible to the average programmer, let alone user.

I started revising a.g.o's FAQ. It old for starters, referring to GNOME 1.4 designs and bits that aren't relevant. Alex has simplified the language of the site, but it doesn't match the language in GNOME settings, or the code, so the FAQ can be confusing.

Next Page »