Skip to content

Blog

GNOME Journal Needs You!

GNOME Journal, the online magazine dedicated to everything surrounding the GNOME Desktop, needs your help!

We haven’t published an edition of the GNOME Journal since December 2007, and work is ramping up to get a new edition published.

What kind of help do we need? I’m glad you asked! It might not be what you think. We need:

  • CSS / HTML hackers – We are migrating GNOME Journal from it’s current CMS to WordPress, and we have some final touches that need to be fixed on our WordPress theme, as well as the look and feel of the archives section.
  • Editors! We have the content, it just needs to be proofed.
  • Writers – We have the content for this edition, but we know how long it can take to write an article, and we want to get back to publishing on a more regular basis.

To sum it up – if you want to help, we probably have a job for you. We are having a meeting Thursday night (tomorrow!) in GimpNet IRC in #gnomejournal at 22:00 p.m. EDT. More information at the links below.

Want to learn more? Here are some links:

Now is a great time to join the GNOME Journal team as we’re just getting active again. All help is welcome – hackers, writers, editors. Join now!

Writing GNOME Docs, Part III (Let's write some code!)

I’ve been chronicling my learning on writing documentation for GNOME. In Part I, I covered getting up to speed on GNOME documentation and the tools available; and in Part II I wrote about picking a project that you want to help, getting involved, and setting up your environment and finding updates that need to be made.

Now it’s time to apply those needed updates to the documentation and write some actual code in Docbook.

As the Tracking Documentation Status page on LGO mentions, there are a few different ways writers can update a doc, including getting the relevant content in, but not updating all of the markup; writing the chapter headings to capture sections that need to be updated, but not adding the content yet; or working through the document step by step updating the content and markup.

I do the latter – I work sequentially through the document updating the markup and content. As I mentioned in Part II, I use Tomboy to capture my research on what updates the document needs, such as new features or bugs filed in Bugzilla.

Let’s start at the beginning of a document and work our way through it. I’m going to assume you’ll pickup the Docbook markup as you go, or have some familiararity with it. When I first started working on the Foresight User Guide a year and a half ago, I had no experience with it either. I would not claim I know it well at this point either – most of my experience comes from doing what we are about to do – just editing existing documentation, or at least using that as a base.

In Part II, you checked out the Tomboy source code out of GNOME Subversion. In your favorite text editor, open the Tomboy help file located in $/home/source/tomboy/help/C/tomboy.xml

Working through tomboy.xml section by section:

Description

<code markup="none">&lt;abstract role="description">&lt;/abstract></code>

Find the above code snippet in tomboy.xml. This is the description of the project. Why is this important you may ask? Did you know that all of GNOME’s help files are also available online at http://library.gnome.org/users/ ?

If you click on that link and scroll down under “Utilities”, you will find Tomboy, and it’s description:

Tomboy Notes Manual

Tomboy is a simple desktop note-taking application, with some powerful built-in features to help you organise your ideas.

As part of Bug 500803, the above description needs to be updated, and this is the section where that change will be applied.

In the xml file, you will see:

<code markup="none">&lt;abstract role="description">
  &lt;para>Tomboy is a simple desktop note-taking application, with some powerful built-in features to help you organise your ideas.

</para> </abstract>

Change the text inside the <para></para> tags to:

<br /> <abstract role="description"> <para>Tomboy is a simple desktop note-taking application, with many features designed to help organize ideas, such as spell checking, highlighting, auto-linking URLs, lists, font stylizing, quick access with a table of contents for notes, and plug-ins to extend Tomboy's capabilities. </para> </abstract><br />

Bug fixed!

Pulse Compatibility

Let’s make the Tomboy docs compatible with Pulse. As mentioned in Part I, familiarize yourself with the Status Tracking. Update the status by adding this block of code, as show in this example. This will add a status to the document, that Pulse can show, that lets other documentation writers know that the document is in the process of being updated, needs a review, or has been finalized.

Copyright & Author Information

Next, take credit for the work you’re doing – add your name to the copyright and author information. This is helpful to other doc writers as well, especially if you don’t have commit access, that other doc writers can reach out to you if they have a question with the last changes made. After the last tag, update with your name and year:

<code markup="none">&lt;copyright>&lt;br />
  &lt;year>2009&lt;/year>&lt;/p>

<p> <holder>Paul Cutler</holder><br /> </copyright>

Same under the <authorgroup> </authorgroup> tag, this time also including your email address:

  <code markup="none">&lt;author>&lt;br />
    &lt;firstname>Paul&lt;/firstname>&lt;/p>

<p> <surname>Cutler</surname></p> <p> <affiliation><br /> <orgname>GNOME Documentation Project</orgname></p> <address><email>pcutler@foresightlinux.org</email></address> <p> </affiliation><br /> </author>

For the GNOME 2.26 cycle, I mostly added documentation to make the Tomoby docs reflect that it now works on both GNOME and Microsoft Windows. (Yes, I had to document an app to run on Windows! Who would have ever thought I’d be saying that…)

I’m not going to detail the markup of the changes I made; hopefully you’ll pickup Docbook’s syntax by editing changes inline in the document. (If you’re really curious, you can see the changes here in Bugzilla – the + denotes lines I added, and the – are lines I removed.) The above changes are changes you almost always want to make each time you update GNOME documentation.

As you document features for the application, think back to Part I, and revisit the GNOME Style Guide. Think about your audience, and focus on tone. Each documentation writer has their own strengths, whether that is tone, spelling, grammar, docbook markup, etc. Focus on your strengths and let the peer review process help you with the other areas.

Next is one of the most important parts – review your changes! Let’s fire up the xml file in Yelp, the GNOME Help Browser. To do this, Yelp has to call the file from the absolute path. For example, yelp tomboy.xml will not work.

yelp /home/yourusername/source/tomboy/help/C/tomboy.xml

And it should start. If Yelp starts, but doesn’t display anything, and an error pops up, close Yelp, and look at your console output. The console will tell you what line the syntax error is occurring that needs to be fixed. When I was first learning Docbook by writing the Foresight User Guide, I would spend twenty to thirty minutes trying to debug where I made an error. It can be frustrating, but you’ll find it.

Check your grammar, your tone, capitalization, and spelling. I will run two instances of Yelp side by side – the version I created / edited, and the actual help file for the application. (Run the application and hit F1 to bring up the help). I will compare the original against the changes I made.

When you’re comfortable with the changes, and Yelp displays everything correctly, it’s time to create a patch to submit those changes. You are probably like me and don’t have commit access to GNOME. Don’t worry though – keep working on GNOME docs and submitting patches and before you know it someone will recommend you be added.

As mentioned in Part II, the GNOME SVN wiki page has the details:

svn diff [filename] > [patch]

For Tomboy, I did:

svn diff tomboy.xml > docs-cross-platform.patch

I then updated Bug 576487 by choosing “Create a New Attachment” in Bugzilla, and filled out the form, noting the changes this patch made to tomboy.xml. I also let Sandy, one of the lead Tomboy developers, know in IRC that the patch was submitted and need a developer review and committed. You may also want to drop an email to the projects list to let them know the patch was submitted.

With that complete, it’s also recommended to have 3 peer reviews done by the GNOME Documentation team. I sent an email to the Docs list with a link to my bugs asking for peer reviews of my documentation changes.

As of this writing, I’m waiting to hear back from both my peers on the Docs team and Sandy on the Tomboy team. I’m sure there will be some changes that need to be made, as I’m nowhere close to knowing everything about how to write documentation, but I’m learning.

Once those changes are made, and the reviews are complete, the status will need to be changed to “candidate”. At that point, the GNOME Doc Team leaders will review it one more time, and with their approval, the document will be updated to “final” and committed! And you have officially helped to give back to the GNOME community and make GNOME better.

As I mentioned earlier, this may not be the best way for everyone, or the official way of doing things, but this is what works for me as I work on updating GNOME documentation. I hope you found this helpful, and feel free to leave me a comment below with your thoughts or questions.

Family D&D

Wil Wheaton is blogging about something I’ve always wanted to do, which is to run a D&D campaign for his son. (Part 1, Part 2, Part 3, Part 4, and Part 5).

I even went so far as a couple of years ago in buying the 3rd edition Players Handbook, DM Guide and Monster Manual, but I never did run a campaign.

Why not?

I suck as a DM.

I’m just not creative or flexible enough that when a player throws me for a curve to react. I’ve also struggled in being descriptive enough in bringing a world to life. Wil Wheaton touches on these and more in Part 5, Lessons Learned:

The more descriptive, the better. But didn’t I just say keep it simple? Yes, but these things aren’t mutually exclusive. While I can keep the story simple, I can still work hard to make the encounters more than moving figures around and rolling dice. For example, Nolan used a power to rip his maul through a pair of minions who were adjacent to him. He hit them both, but instead of just saying that, I told him, “your maul crashes through its head, streaming blood and gore behind it as the power of your swing carries into the other one. Their bodies fall to the ground with a wet thud.”

When the rogue rolled particularly well with a ranged attack, I told him, “your dagger whistles through the air toward your target, and catches it in the throat as it lunges toward you. Its eyes widen and glaze over as it falls down, dead.”

I also added smells, sounds, and anything else I could do to make the tower they were in really feel old and decaying. It helps that I’ve read more fantasy genre fiction than I’d like to admit.

Don’t be afraid to improvise. When it looked like the final encounter, which should have delivered the greatest challenge, was going to be a cakewalk, I just looked at some stat blocks and added a few more creatures to the encounter so it would feel more climactic. I knew I had the cleric back in the cell, and if things got really, really bad, he could figure out a way to race in and save the day (as a general rule, though, I don’t recommend doing things like this too frequently, or your players will figure it out and act accordingly.)

My son is 13 now. It’s time to get off my butt and see if I can’t figure out how to be a decent DM and get a session going.

Writing GNOME Docs, Part II

So you’ve decided you want to contribute to GNOME and write some documentation. In Part I, I wrote about the steps I went through to prepare to write GNOME documentation and picking a project.

In Part II, we will take a look at the final preparation stage, including checking out the project’s source code via GNOME Subversion and finding documentation that needs updating. I am still fairly new to the process myself, but these are some of the steps I take in writing documentation.

Part III will cover updating the Docbook XML file, reviewing your changes and submitting a patch with the updated docs.

Now that you’ve picked a project to work on, I recommend subscribing to the project’s mailing list, and, if they have one, hang out in their IRC channel. A list of all GNOME mailing lists is here, and be aware of the GNOME Code of Conduct when sending an email to a list.

Personally, I recommend letting the project or lead developer(s) know you want to help out. This is helpful for a couple of reasons, including:

  • If you, like me, are new to contributing to GNOME, you probably don’t have SVN access to commit your changes. A developer on the project, or a member of the GDP if you’re working on a project the GDP can commit, will have to submit your changes to the project.
  • You might have a question on how a feature works, and want clarification. If you’ve introduced yourself, other project members will understand why you’re asking.
  • Help is always appreciated! You have nothing to worry about – almost all projects will welcome you with open arms. Especially doc writers, as it sometimes considered unglamorous work.

As I mentioned in Part I, I’ll be working on the Tomboy documentation, and I sent an email to the list letting the developers know, and asking if there were any areas of the docs that also needed changes or updates. (The Tomboy mailing list is generating a 404 error when I try and click on my email which can be found here).

In a terminal, create a directory where you will to checkout the source code of the project too. GNOME uses Subversion, and will be moving to git in the future. The GNOME Wiki has a great page on using Subversion. Move to the directory where you want the source code, and per the GNOME SVN wiki page, checkout the project:

svn co http://svn.gnome.org/svn/[module]/trunk [module]

For Tomboy, I would do:

<br /> svn co http://svn.gnome.org/svn/tomboy/trunk tomboy

The Tomboy source code is now checked out to the “tomboy” directory in the directory I’m currently in. For the purpose of this example, we will assume you checked out the source code to $/home/source/tomboy

Now it’s time to find some documentation that needs updating. Good sources to find documentation updates include:

  • Projects’s Bugzilla
  • Reviewing the projects current documentation
  • Project’s release announcement of new features
  • Mailing list

I recommend starting by doing a query in the project’s Bugzilla (bug tracker) and see if any users have filed bugs or requests against the project’s existing documentation.

Log in to GNOME Bugzilla, and click the “Browse” button in the top menu. On the Browse page, click on the drop down menu next to “Browse:” and click on the project you want to view, and “Show product”. You will be taken to the project’s Bugzilla page, which provides an overview of the number of bugs, type, and severity, among other information.

In the search box towards the top, you will see “project:Tomboy” already entered (or the project you chose), after that type documentation and hit search. The results will show any bugs that have a keyword of documentation, and you can browse through any open bugs to see if there are any changes that need to be added to the project’s documentation.

You will want to keep notes of any bugs you come across, or changes and updates the documentation file needs. Ironically, Tomboy is a great tool for this, and even supports the ability to drag and drop a GNOME Bugzilla link from your browser into Tomboy and converts it to an easy to use link.

I also recommend reviewing the project’s current documentation. Open the application, and hit F1 to bring up the help in the GNOME Help Browser (Yelp). With GNOME being on a 6 month release cycle, it may be possible that new features were added without being documented, which is why it’s also helpful to see if there was a Release announcement that outlines those new features.

Review the sections in the documentation, and compare to the behavior of the application. Do they match? If not, it might be useful to ask the developers in IRC or on the mailing list to double check, and make a note that the documentation needs to be updated to reflect those changes. This process can be time intensive, which is why you may want to start working on documentation with an application you’ve used and are familiar with.

If you introduced yourself on the project’s mailing list, the community members may have pointed out some areas that need updates as well.

Hopefully this has helped in getting you ready to (finally!) update the documentation. In Part III, I’ll cover updating the documentation’s Docboox / XML file and submitting your changes to the project.

Writing GNOME Docs, Part I

It’s been just over a year since I submitted my first patch to GNOME, for updated Tomboy documentation.

In that time, Shaun McCance of the GNOME Documentation team has been doing a lot of work to make it easier to get involved with the GNOME docs team.

Though Shaun is trying to make it easier to see which projects might need help with documentation updates, it’s still kind of overwhelming to try and figure out where to get started, especially as some of the information on the GNOME Docs team is outdated.

The Docs Team page on the GNOME wiki is a great place to start. Let’s take a look at a number of the steps it lays out, and I’ll try out point out where, in my opinion, some of the important steps lay and additional tools available, such as Pulse.

Step 1 & 2: Join the mailing list and IRC, as it refers to.

Step 3 & 4: Choose a project and document to work on. First, you should choose a project that interests you, and that you may know a little about. Here is a quote from Shaun McCance to the GNOME Docs mailing list on 5/8/08:

My general recommendation to new writers is to pick

an application manual for something you use frequently.

It’s easier to write documentation for an application

you’re familiar with. Smaller manuals will allow you

to go through the entire writing process and actually

finish something. Finishing things feels nice.

The good news is that this is one area Shaun is making easier with the Pulse project. Pulse isn’t officially released yet, and is run manually by Shaun. Pulse tracks all of the software in GNOME, including documentation and translations.

In January, Shaun sent an email to the GNOME Docs list that helps understand this process better, especially as it relates the GNOME 2.26 process, and with some updated steps that aren’t covered in the wiki:

When looking for documentation to work on, you can use Pulse to help sort:

Use Pulse to view all GNOME 2.26 documentation: [http://www.gnome.org/~shaunm/pulse/web/set/gnome-2-26-desktop#documents

]5

Pulse can show which docs don’t have a specific individual as a maintainer, and will display GDP (GNOME Documentation Project) if it doesn’t. It’s recommended to start with a document maintained by the GDP to work on. Follow this link: http://www.gnome.org/~shaunm/pulse/web/team/userdocs#documents and click on “Maintainer”. That shows the list of all projects maintained by the GDP. One of the advantages of working on a document maintained by the GDP is once your documentation move to the final state, the GNOME Docs team can commit the changes for you, as they are pre-approved with the maintainers of that project.

For my example though, wanting to update the Tomboy docs that I worked on a year ago, Tomboy is not maintained by the GDP. That’s ok – I’ve worked with one of the lead developers before, and I let him know in IRC that I was going to being working on documentation.

Going back to the Pulse list of documents, and clicking all, I then will choose and click on Tomboy.

Looking at the upper right hand corner of the Tomboy page in pulse, you will see:

Release Info

Status:

None

Familiarize yourself with the Status definitions that Pulse will display: http://live.gnome.org/DocumentationProject/StatusTracking

None – great! This is the document I’ll start working on as no one has started working on it yet.

Step 5: Going back to the GNOME Docs Wiki, step 5 is familiarizing yourself with the GNOME Style Guide.

The sections I found most useful, was Chapter 1, Fundamental Concepts, especially the sections on Tone and the Golden Rules. Chapter 7, Writing for GUIs, is good to cover as well.

When it comes to writing Docbook though, the best advice I can give is to jump in to a document – you’ll quickly learn the syntax with or without prior programming experience. I have zero programming experience outside of some very basic HTML , and by looking at a couple of different pieces of GNOME documentation, was able to write the Foresight User Guide in Docbook.

Steps 6 & 7: Create accounts in GNOME Bugzilla and the GNOME Wiki (aka live.gnome.org).

The only other advice I can give, especially as it relates to IRC and the mailing list, is to drop a note and introduce yourself, and let the community know you want to help out. All of this might sound complicated, but instead of spending hours wading through all of the documentation and webpages available (some of it really out of date), I think if you read the above steps it will start to make sense (at least it did for me!)

In Part 2, I’ll cover my experience in some of the basics around using SVN to check out a project, updating the status and the documentation, and submitting a patch.

Foresight Website

It’s been just over a year since we rolled out the new Foresight website, which is written in HTML.

After some on and off debate, we’ve made the decision to switch to a CMS (which makes it much easier to get volunteers involved), and as of last night we’ve picked Joomla over Drupal.

We’ve set up our appliance on rBuilder, and we’re looking for help in building and maintaining the appliance, and even more important in designing a Joomla template for the look and feel of the new Foresightlinux.org. A big thanks goes out to pscott, Lance Haig and Tomas Forsman for getting us this far.

Join the marketing list and give us a hand today!

ul class=”delicious”li

div class=”delicious-link”a href=”http://live.gnome.org/DocumentationProject/StatusTracking”DocumentationProject/StatusTracking – GNOME Live!/a/div

div class=”delicious-extended”Status information / update information/div

div class=”delicious-tags”(tags: a href=”http://delicious.com/Silwenae/docs”docs/a a href=”http://delicious.com/Silwenae/gnome”gnome/a)/div

/lili

div class=”delicious-link”a href=”http://www.gnome.org/~shaunm/pulse/web/”Pulse/a/div

div class=”delicious-extended”Real time tracking of GNOME documentation/div

div class=”delicious-tags”(tags: a href=”http://delicious.com/Silwenae/docs”docs/a a href=”http://delicious.com/Silwenae/gnome”gnome/a)/div

/li/ul

ul class=”delicious”li

div class=”delicious-link”a href=”http://digital-photography-school.com/the-art-of-panning”The Art Of Panning/a/div

div class=”delicious-tags”(tags: a href=”http://delicious.com/Silwenae/photography”photography/a)/div

/li/ul