Book review: The Artist's Guide To GIMP (2nd Ed.)

The kind folks over at No Starch Press sent me a review copy of The Artist's Guide to GIMP a while back (see here for my Amazon review). The GIMP, in case you're not aware, is a popular open-source image editor, pretty comparable to Photoshop in terms of features. I've been a relatively frequent user of the GIMP for some years now, often using it to touch up and edit photos (a couple of friends and I have a habit of photoshopping one another into unlikely situations; as one does). It's a godsend in situations when I have to quickly edit graphs for publication or retouch screenshots too. But, while I'm hardly a stranger to the software, I can't really say that I'm an expert in any sense. Still, it's fully-featured, pretty easy to use once you've gained a little familiarity with it, and has the definite advantage of being free and cross-platform.
The Artist's Guide to GIMP (book cover)
The book covers "creative techniques for photographers, artists, and designers", with a definite slant towards designers of the web variety, I would say. It starts off with a solid 60-page section on using the basic set of tools available in the GIMP, such as paintbrushes, drawing tools, selection masks and layers. For anyone who's used Photoshop or a comparable editor, this is the very necessary bread and butter stuff, explained at an "overview" level. The subtleties of the various tools are developed later on in the book, scattered about the numerous example projects that make up the bulk of the guide.

And boy, are they numerous. There's a shade over 200 pages worth of projects, most of them taking up about 4 pages each. The projects are very tightly written, with the minimum of chatter - just no-nonsense, straight-to-the-point instructions, prefixed by a bit of background and motivation for each of them, and a handy example of the end result you can expect for a given technique. Each project has a number of useful screenshots of intermediate steps so the reader can make sure that their results (and on-screen tool set-up) are tracking what the instructions say, which makes it particularly easy to follow along. The author, Michael Hammel, is a long-time GIMP user and contributor, who has written a couple of books on the GIMP in the past. His experience shows!

The instructions tend to be detailed, but not over-prescriptive. You'll get instructions on exactly which mask tool to use for the job, for example, but it's left up to you to make sure you're selecting the right bits of the image! For photo editing in particular, the results can be somewhat sensitive to the detailed choices that you make while you're editing, so you shouldn't expect this book to tell you how to get perfect results right away - some practise will be needed. It'll help you climb GIMP's learning curve very efficiently, though.

The projects are grouped into a handful of chapters, starting off with photographic techniques, then going on to web design, advertising, and typographical effects, before finishing on computer-generated art. For the web designer in particular, the choice of techniques covered in the projects is excellent - you'll get a very good introduction to creating high-quality results for website logos, banners, and product presentation, for example. The computer art projects look good too, although I feel there's not enough depth in here to allow the newbie to create truly stunning results. There are a few places where the results aren't very convincing as well (for example, adding waves to a reflection in water).

The section on photography is OK, but there are notable omissions that will prove restrictive for the more serious photographers out there. Exposure blending, RAW image handling and so forth, now staples for many photographers even at the amateur level, are not covered. Instead, projects about adding light effects to photos have been chosen instead. Although there are projects on adjusting colours with curves and touching up photos, these subjects are of sufficient importance that a little extra coverage wouldn't have gone amiss, especially for more advanced applications of the techniques. On the whole, I would have welcomed fewer computer art-type projects and more on common photography techniques.

Overall, it's a good book, with decent instructions and engaging projects that any competent computer user should be able to handle, whether or not they have previous experience with an image editing package. Photoshop experts will find this to be a pretty efficient conversion course into the GIMP, although they probably won't learn much techniques-wise. Budding web designers should pay attention to this book as a way of unlocking the GIMP's serious potential as design software. Photographers will gain a lot from it, but should be prepared for a couple of disappointing omissions. Those who are simply looking for a way of getting into image manipulation and learning a whole bunch of neat techniques will find the book pretty much ideal as a (substantial) first step. Recommended!

It's raining Raspberry Pi

I ordered a Raspberry Pi board a few months back when they first went on sale. Mine finally arrived in the post last Friday, courtesy of RS Components. Only... it didn't arrive alone.

In fact, they managed to send me two. Knowing that these things are still like gold dust due to the high demand and limited size of the batches being produced, I tried calling them and emailing them to see if they wanted it back. To no avail. I'll probably send the other one to a local school, along with some bits and bobs for them to play with, but that might have to wait until next academic year (it's pretty close to the end of the school year here in the UK). So, in the mean time, I have two Raspberry Pi boards, and too few ideas on what to do with them. Oh, what a terrible, terrible position I find myself in.

The boards themselves are rather neat. They're tiny - credit card sized - and stuffed full of connectors. I'm not a massive fan of the graphics connector options (I'm still a D-SUB man myself), but I can understand the reasoning behind putting HDMI and component video on there. It's a bare board, with little to protect it from my grubby fingers, so I'm planning to invest in a box some time in the near future, in the vain hope of avoiding any of my patented clumsy accidents.

I decided to flash one of the special Debian ARM images for the Pi onto one of my own memory cards, rather than buying one of the pre-installed ones from RS. A few attempts later (I'm an idiot, it turns out), I had the thing booting to a terminal. So much fun! It also appears to have LXDE installed, and some interesting educational/programming tools. There's so much scope for innovation, though, that it's ridiculous. We (I refer to the open source community at large) really need to whip up some awesome stuff to put on there and get kids excited about hacking/electronics/science (I have a few ideas, but nothing too special yet).

So, what was causing my boot problems? Well, the board doesn't really give any feedback if it's having difficulty booting; all you get is a constant red "PWR" light when you connect it to the mains. In order to boot, it needs the SD card to be firmly plugged in to the slot on the underside of the board before you switch it on. It also requires you to follow all of the instructions on how to put the image onto the SD card. The first time, I didn't run sudo sync before unplugging the card from my computer. The second time, I realised I'd accidentally written the image to a partition on the card (in my case, /dev/sdb1), rather than the card itself (/dev/sdb). Duh. So, with both of those faults connected, it works.

GNOME Docs hackfest in Brno

A couple of weeks ago, I attended the GNOME doc sprint in Brno, which ran in parallel with the Red Hat Developer Conference. My flight came into Vienna, where I was met by Shaun McCance and Florian Nadge. After a rather bizarre lunch at a Greek restaurant (Free wine! Free dessert! Expensive meal!), Shaun and I took the train to Brno, narrowly avoiding a trip to Hungary in the process. The Czech Republic is seven shades of awesome. The countryside that we passed through on the train was beautiful (even more beautiful on the way back, when the snow had melted and the Sun was out), and Brno seems like a pretty cool place to be. Food and drink are super, super cheap, at least when you're used to Oxford/London prices, and pretty much all the meals I had were excellent. Maybe we were only eating in nice places? I don't know. I only wish the concept of vegetarianism had made its way over there in a bigger way - I'm on a bit of a pescatarian kick at the moment, so I could eat fish at most places, but vegetarian options were few and far between. (Amusingly, one restaurant managed to stuff a fish with parma ham, while omitting to mention this fact on the menu. Ho hum.)

We spent a few days at the Masaryk University while the developer conference was on, and had a couple of decent topic brainstorming sessions. It was really good to see so many familiar faces - the Docs team has been growing at a steady pace over the past couple of years, and we now have a good number of people interested in both developer and user docs. We found some of the new changes for GNOME 3.4 quite challenging to write about - a lot of the new UI's were incomplete and buggy while we were working on them. It was useful to be able to bug the devs in person, though. That's why hackfests are so great - you can drag the maintainer of some app into the docs room and review the UI with them, pointing out what users will struggle with, while finding out directly what will have changed by release time. Repeatedly reviewing UI changes is a gigantic pain for docs people, since we have so many topics to review - one string change, and a whole bunch of help topics can be rendered useless. It's useful to be given a thorough "heads up" about stuff like that, and that's what we got.

GNOME Platform Overview (1)
The hackfest went extremely smoothly this time around, partially because we didn't have to fight with the facilities at all (the wireless held out!), and partially because Jim is a genius, and got everyone to arrive with a recent, working version of GNOME 3.x. Jim wins. We spent the first few days either brainstorming topics, or reviewing the desktop help for correctness. We have almost 300 topics in that document, so it's a big job. That was a good warm-up exercise for everyone, I think. We then moved on from the university to Red Hat's Brno offices, where people started to work on separate projects. I spent some time restructuring the platform overview, which has been a thorn in our side for quite some time.

The idea was to make it so that new developers could find their way around the platform, understanding what capabilities are available, where they can be found, and how to use them. One particular hurdle to new developers is getting a toolchain set up to do even basic things, so I added some "conceptual overview" topics, and "getting started" guides. It's also important to make people realise that GNOME isn't really like any other platform - there's no SDK, no one, blessed, distribution channel, no one company responsible for technical support. We need to prepare people to handle this, so that they don't get confused and put off from using the platform. I then broadly categorised the various libraries in the platform by function, and wrote "marketing" overviews for some of them. Each overview explains some of the cool things you can do with the libraries, has links to different types of resource for the individual libraries, including conceptual material, guides/manuals and, importantly, example code, and also points at existing GNOME apps that use those technologies.

I think that building a library of example code snippets is a very valuable exercise - you can learn a lot from seeing one, simple feature implemented in a few lines of code, completely separate from any boilerplate or other stuff. It's important to allow people to get something working quickly, by gluing together little chunks of code here and there. Otherwise they lose interest. Once they have something that just about works, they can then go on to refine it, and "do it properly". That's how a lot of developers learn, I'll wager. Pointing at existing apps that make use of the various parts of the platform is also important. We should milk our open-source credentials more when we talk to developers - people have solved all sorts of problems using GNOME technologies, and so we should make it easier for outside developers to inspect the relevant bits of code so they can see the solution without having to figure it out for themselves. Tiffany and Susanna did a lot of work on the developer tutorials too, which are very useful for brand new developers. Those will be merged into the platform overview too, alongside the shorter example snippets. Much of the overview is in stub form at the moment, but we plan to develop it over the next release cycle or so.

GNOME Platform Overview (2)
People were working on a lot of other stuff besides, but this is already a long blog post, so I'll leave it up to them to explain what they did on their own blogs. Everyone worked really hard, and it was an absolute pleasure to spend the week with a group of such fun, dedicated folks. It was even good to see Ryan Lortie. So, well done Shaun, Jim, Tiffany, Mike, Andre, Kat, Dave, Baptiste, Tomeu, Julita, and Susanna, you rock!

And that's not to mention our hosts. I need to say a massive thank you to Florian, and Petr, for being so great. They helped us with travel arrangements, showed us around town, gave us somewhere to work, translated for us, ordered food in for us... The whole nine yards. It was amazing. The language issue was especially difficult for me - I can get by in most places where they speak either Germanic or Romance languages (at least some of the words look familiar), but I was completely lost with Czech (which is Slavic). I think we would have had a pretty confusing time without them. Andre Klapper was also magnificent, putting up many of the docs people at his apartment before their early flights the next day. So thanks, guys, you are awesome! And thanks to Red Hat, and especially to the GNOME Foundation, for sponsoring the whole thing, and making it possible to bring all of us together to work on GNOME.

Sponsored by the GNOME Foundation

Open Help 2011 - Cincinnati

We live in strange times. I woke up on Saturday morning to find that I'd been magically transported to Cincinnati by a benevolent spirit. And American Airlines. Bleary-eyed and somewhat confused, I was accosted by a passing documentation team and forced into attending the inaugural Open Help conference, where a gaggle of tech writing luminaries pummelled me with their insight. Only hours later, I was being exposed to questionable meat products by the Godzilla fan club. Standard.

The conference went pretty well. There were some good talks on user-centred information design and converting technical support queries into valuable documentation, lots of interesting documentation technology from Red Hat and Mozilla and tips on designing certification programmes from BSD. This was followed-up on Sunday by a day of discussion, where we shared experience and converted one of the speakers to Ubuntu. Open source FTW. Now we're up to the GNOME hackfest which, unfortunately, has been marred by the availability of peanut M&M's. I'm spending the rest of the afternoon converting my sugar high into a bunch of commits. More on the conference later, and hopefully Shaun will have videos from the talks.

GNOME Foundation sponsorship

GNOME 3; User Help hackfest

GNOME 3.0 released

Well done everyone!

User Help 2011 hackfest

Well, the User Help hackfest in Toronto went swimmingly! Blip tells the story. Muchas tortugas to the GNOME Foundation for their usual level of super-generosity, and muchos Horton's muffins to CDOT at the University of York at Seneca for hosting the hackfest. (By the way, they're doing some seriously cool stuff over at CDOT - check it out.)

As a result of the hackfest, the GNOME docs are lookin' gooood. If you have an up-to-date build of GNOME 3.0 you can see for yourself (in Yelp, as The Fearless Leader intended). There's an HTML build on Library too, but it's not quite as pretty.

Sponsored by the GNOME Foundation

GNOME Women: Work on docs!

It's time for another round of the GNOME Outreach Programme for Women!

I recently got back from spending a week in Toronto at the GNOME docs hackfest. Tiffany and Natalia, our current women's outreach interns, were so completely and utterly made of awesome that I couldn't resist mentoring for the docs team this year! We're looking for people to work on some of the following:
  • Writing, editing and testing help topics for end users
  • Writing guides for developers
  • Integrating help into user interfaces
  • Performing help usability tests
  • Making high-quality instructional videos to be integrated into the help
  • Helping distros to use the GNOME docs as a basis for their own specific documentation
  • Something awesome of your own invention
I'm pretty excited about this stuff. We're well on track to building a help system that even beats the (excellent) offerings from Microsoft and Apple. Get in touch ASAP, there's loads of stuff to be done right now!