Ubuntu

Version Control Web sites

Over the last year I've been running around to various conferences spreading the word that is Bazaar. (Just in case you missed the word, the word is good.) In each of the presentations I've made it very clear that I don't care what version control system (VCS) people use, just so long as they're using something. I was personally drawn to Bazaar because of their incredibly friendly developer community which was confirmed in Lenz Grimmer's Bazaar presentation at DrupalCon Szeged. I've always been encouraged by Bazaar folks to ask as many questions as possible and have only ever been asked to pay back the time by writing up documentation. (Which is a very good trade.)

This week I started on a new adventure: Martin Pool has asked me to help out with the redesign of the Bazaar Web site and I'm thrilled to be working on this project. Version control is important, but not exactly popular or "fun." Fortunately there are lots of people that know how awesome it is to be able to roll back changes and see a log of what you were thinking 18 months ago. While scanning existing version control systems Web sites to prepare this RFC, I realised that root canals look elegant. In other words I am very excited to help make version control more appealing.

In giving the presentations on Bazaar, and evangelizing on the merits of (personal/freelance-friendly) version control within the Drupal community, I've come to realize that version control systems do a really crap job of promoting themselves. If you've seen me scrapping with Sam Boyer or Selena Deckelmann you know that the arguments are mostly fun and full of hot air. This makes the 'discussion' virtually useless in helping you pick a VCS that's right for your needs. Taking a scan through the existing VCS Web sites also makes it very clear that none of the players have gotten it right on the home page. Below is my Request for Comments on how to make the Bazaar home page better--a quest that started with the bzr vs git project.

I would be delighted if you participated in this open call for comments and contributions to the new Bazaar Web site. The best place is to participate is ON THE MAILING LIST. But I've included the RFC as part of this post as well.

Goal
The goal for this first step is to make the Bazaar home page suck less for the 2.0 release. This is an iterative process. There will be many more opportunities for you to comment on the colour of the new bike shed, but for now we're "just" trying to make a home page that's worthy of Bazaar 2.0. :)

Proposed wireframe

Proposed Bazaar site front page

Desired Feedback
1. Does this wireframe have spaces to accommodate all front-page-worthy material?
2. Can anything be omitted from this wireframe because it is not front-page-worthy?
3. If you were to shuffle the components, what would your wireframe look like?

Please feel free to sketch and scan. I want your ideas, and will not judge you based on handwriting or GIMP skillz. My handwriting looks like this. There's no way yours is worse.

Undesirable feedback:
Please don't worry about the technology part of implementation right now. At this time we just need the general "shape" of the front page. It is very likely that a flat HTML page will replace the current wiki home page for the first iteration of the redesign.

Timeline:

  • Sunday August 9, incorporate feedback from this RFC
  • Monday August 10, I give final wireframe to the graphic designers
  • Wednesday August 12, I receive graphical treatment back from the designers
  • Friday August 14, "we" upload new home page for the Bazaar Web site

If you're able to spare a few minutes in the next day or two, it would be most appreciated. This is only the first iteration though, you will have lots of opportunity to give additional feedback later. :)

Rationale
Going through the "competitor" Web sites taught me that people clearly do not pick a VCS based on the project's Web site. In my experience of doing conference presentations about Bazaar for newbies this is definitely true. Most people choose their VCS based on (1) what has already been implemented by work/project or (2) what trusted friends are using. To be a compelling Web site, Bazaar needs to be the VCS of choice for projects, and needs to appear like a trusted friend to people who are looking to start using version control
(or are looking to switch).

I went through the following Web sites:
http://subversion.tigris.org/
http://www.nongnu.org/cvs/
http://www.selenic.com/mercurial/
http://www.bitkeeper.com/
http://git-scm.com/
http://darcs.net/
http://www.mozilla.com/en-US/firefox/upgrade.html (it's not version control, but it is a product)

You can see these sites broken into their components at:
http://www.flickr.com/photos/emmajane/sets/72157621825478417/

Solving the customer's problem
To win a sale, a product must solve a problem. It doesn't matter what the product can do it matters how it makes a person's life easier. The front page focus must be on what the consumer wants, not what the project wants. This means the front page needs to:

  • focus on getting the consumer using the product
  • provide easy access to common questions/adoption hurdles
  • avoid calls for project volunteers (this is what the project needs, not the consumer) 

The following front page elements were found looking through each of the sites listed above (and the Bazaar site):

  • types of users identified (see BitKeeper)
  • short description of the product
  • download now
  • features, release-specific features, links to feature descriptions
  • tour
  • download, install, clients
  • quick start command list
  • projects using this system
  • conversation about the product: IRC, mailing list
  • get help (commercial, IRC, mailing list)
  • link to documentation
  • hosting
  • project sponsor
  • switcher guides
  • contributor information

Each project combines and emphasizes these components in unique ways. Although Git has the prettiest site of the bunch, BitKeeper did the best job of identifying target audience; and Subversion did the best job of categorizing links into four main components (download, help, problems, development).

Working on a four column grid I've divided the front page as follows:
Human information

  • Features/Solutions
  • Getting Help
  • About (including projects using bzr)

Technical information

  • Install (Bazaar and clients)
  • Extend (plugins)
  • Release notes

Although I had originally divided the page in a left-to-right progression (Features, Download, Extend, Participate), but decided this LTR progression was not relevant for RTL languages and potentially made the software look difficult to use because it assumes that the final step in the procedure is to participate in the development of the software.

To accommodate the "extra" stuff that's important for seasoned users, but scary for new adopters, I've introduced a standard footer. This is where links for participation requests (e.g. developers) and reporting bugs should go. Take a look at http://www.mozilla.com/en-US/ to see how they have included a lot of "extra" information on the home page without it being overwhelming or in the way.

Bonus homework
My next step will be to create a site map/mindmap that defines the links out of each of these boxes. If you're playing along at home and you want to create one as well, that'd be fantastic!! It will help us to ensure:

  • appropriate titles are used for each of the regions
  • all front-page-worthy material is identified and placed into the regions
  • faster development of the internal wireframes and site structure/information.

Thanks again for your time. It's much appreciated!

Kontact

I've been using Kontact for a few months now. The excitement of resizing the icons has worn off and now I'm back to feeling slightly underwhelmed by my ability to organize things digitally. I have missed several appointments, my TODO list has gotten unwieldy and it seems as though I'm missing a good chunk of my address book, even though I know I correctly imported all of my addresses when I frst started using Kontact. Let's take a look at some of these things individually. These notes are against Kontact version 1.4.2 in Ubuntu 9.04.

Missed appointments

On the one hand it's probably not entirely fair for blaming Kontact that I can't look at the calendar pane on a more regular basis, on the other hand, I shouldn't have to think about these things. So what are some of the real gotchas?

  1. The calendar remembers the last thing you looked at. If it was "today" and now it's three days from today, it will still show you three days ago. Which means if you're quickly checking to see if you have anything planned for "today" you're actually looking at three days ago. Remedy: I've switched to monthly calendar view to try and avoid this problem.
  2. In monthly view you cannot see what it is you're supposed to be doing because of all the decorations. You have to hover over an item to get the details, or double click to open the editing window, or switch to "day" view (see above re. problems with day view). Remedy: simplify event decorations and remove "type of event" icons.
    Kontact Calendar

TODO

There's hardly any excuse for the stuff that's messed up with TODOs, so let's go straight to the list.

  1. Colour coding is impossible to figure out. If you add a new category it gets the colour green. There is no obvious place to change this colour from the "edit categories" functionality within the TODO screens. Remedy: make colour choices obvious on the "edit categories" screen.
  2. TODO items can be created from emails, but they do not contain the email. Which means you can't create a TODO item and delete the email. Remedy: create a stronger bond between TODO items and emails, OR include the full text of the email in the TODO item (including attachments) for easy reference.
  3. There is also no reference back to the email (which means you can't complete your TODO item and then reply back to the person saying it's done). Remedy: create a stronger bond between the TODO item generated from an email and the email of origin.
  4. Purge completed. Even when I was on paper I could keep sheets of paper around for a week or two if I wanted. First of all I don't like the word "purge" as a concept. I would much rather "hide completed" by default and have an option to bring them back. It's text! It's not like it's taking up a lot of space! What happens to attachments when I purge a TODO? Gone. Remedy: add an intermediate step before "purge" called "hide."
  5. Percentage complete. What is that?! TODO items are things that you should be able to do in one sitting (see GTD). There's also no time tracker to record how long it took me to do a task (and therefore how much I should bill a client). Remedy: add a field to track time spent on the task.
  6. Rich Text Editor. Quite frankly this feels like a waste of space. There's a button to toggle the ability to use the toolbar and then it's all stuff that has keyboard shortcuts. Remedy: get rid of the RTE toolbar by default. Move to a customization panel in the config screen that either has RTE turned off or on.

Summary

It's a great idea, but I can't configure it to include the things I want.

  1. I want ALL mail listed in a given folder, not just new messages. I don't have 90834980345980 things in my inbox. I have two which will shortly be moved to my TODO folder where there are currently 13 items. I feel like I'm being punished for keeping a clean inbox. Remedy: give me a configuration option to list subject line, sender and sortby for the Mail pane in summary.
  2. I don't want a summary of how many unread messages there are, I want to know *what* they are. Same remedy as above.
  3. Upcoming events, Pending TODOs are ugly and hard to read. Remedy: align top for each of the rows and add some kind of barrier between items (e.g. a faint line or zebra striping).

Mail

While we're here I may as well throw in a complaint about mail as well.

  1. In most folders I want to see who the "sender" was. In my outbox, however, I want to see who the Receiver was. All panes display the same colums, which means I cannot make the outbox have unique columns. Although there is a column option for Sender/Receiver, it displays the Sender even in the outbox. Remedy: fix Sender/Receiver so that the outbox displays Receiver and all other "incoming" folders display the Sender.
  2. I wish there was a better way to flag a piece of mail as spam without syncing my spam folder with Google. I'm not sure if it's fair to blame this on KMail, but Thunderbird did have a "spam" button that I miss.

Documentation

I gave up a long time ago. Remedy: make some docs and don't tell me to install new packages when I submit a bug that the links in the docs don't work. Fix the interface so that it tells me what package I need to install.

Those are my main complaints with Kontact. The Offline IMAP syncs my mail beautifully with Google, but "any" mail program should be able to do that...it might be time to split up my tasks again instead of trying to integrate them into a single application. At this point, my productivity tool is just getting in the way.

DocBook Style Sheets

Back in January I talked about some new style sheets that I'd created for DocBook. I had grand plans for making them available and sharing and making open source publishing a lot easier and a lot more elegant. And then I got stuck trying to decide how to make the style sheets available. They should be version controlled and licensed and and and it turns out it's a lot of work to figure out the best way to launch a project. So I've done the most irresponsible thing possible: I've simply uploaded the .zip package that I made back in January and dumped it onto the Writing Open Source project Web site. The style sheets are available as part of a new guide on tools. This isn't their final resting place, but I at least wanted to get SOMETHING out and available for people to take a look at.

If you have suggestions on the best way to share style sheets such as these, please let me know! I'd love to have a whole library where people could pick their style sheet as part of the open source publishing process (and be able to avoid the current headaches from printers like lulu.com or another printer).

Git for Teams

Git For Teams

Best selling title from O'Reilly media. Covers essential skills needed to use Git in a team environment.

Available from O'Reilly media, and better bookstores worldwide.

Collaborating with Git

Collaborating with Git

Practical how-to videos to get you, and your team, up and running with Git. A complementary video series for the book, Git for Teams.

Available from O'Reilly media.

Drupal User's Guide

Drupal User's Guide

Site building for Drupal 7. Includes in-depth information on Drupal's most popular site building modules, SEO and accessibility. Two complete case studies are included in the book along with the tools you'll need to build (almost) any Web site with Drupal.

Available from Amazon.com.

Front End Drupal

Front End Drupal

The industry go-to for learning theming in Drupal 6. A great companion to Lullabot's book, Using Drupal.

Available from Amazon.com.