Log in

No account? Create an account
Previous Entry Share Next Entry
GNOME Developer Demos; Terminology; HIG 3.0 in Mallard; Cheesy sounds?
I've had a great time at the GNOME DevDocTools hackfest in Berlin this past week. Thanks to Openismus for hosting us, the GNOME Foundation for sponsoring my travel, Kat and Dave for putting me up, and everyone who attended for contributing to a really great atmosphere! There's going to be lots of fallout from the hackfest, which is the mark of a successful meet-up. Details follow; see Johannes' post for more.

Developer Demos

As part of our aim to improve the experience for new/prospective GNOME developers, we decided to produce a set of high-quality introductory tutorials. The brief was to have the reader write a small but interesting program which demonstrates several key GNOME technologies, and to have them do it in a short time (perhaps over lunch?) if possible. Each tutorial would be written in five of GNOME's key languages (C, C++, JavaScript, Python and Vala), and each tutorial would be enough to launch a newbie into programming with GNOME 3.0.

Here's how the set of tutorials looks so far (X denotes either completed code or a completed guide):

NameC (code)C (doc)C++ (code)C++ (doc)JS (code)JS (doc)Py (code)Py (doc)Vala (code)Vala (doc)
Audio Player        X 
Guitar TunerXX        
Image ViewerX~  XX    
Magic Mirror        XX
Message Board~X        
Photo WallXX        
Record Collection    XX    

The C version of the Guitar Tuner has been fully edited, so that's probably the best-looking guide right now. The JavaScript Image Viewer is hot on its tail, and most of the others are close behind in at least one language. It's looking good, thanks to all the great work by the guys who attended the hackfest. We're not doing too well on C++ and Python though; no-one at the hackfest attempted a C++ version, and there were problems with the Python GObject Introspection stuff.

This is all in git right now; you can check it out with git clone git://git.gnome.org/gnome-devel-docs (the files are in demos/C). If you're interested in helping out, please get in touch with the GNOME Doc Team! Converting the existing demos to a different language isn't hard, and some of the material in the guides can be shared between languages. We'd love to have as many of these completed as possible before 3.0; they're going to look awesome as the centrepiece of the shiny new developer.gnome.org. More tutorials are planned (a D-Bus client, for example), and we could really use a hand with a simple Telepathy example too. Are you up to the task?

(For the git-impaired: Nightly builds here.)


Shaun and I worked on fleshing-out some new terminology guidelines - it works so much better in person than through IRC or a mailing list. These will be folded into the HIG and what may or may not materialise as a new documentation style guide.

HIG 3.0 in Mallard

I ported some of the new HIG material on live.gnome.org to Mallard - you can find it in the hig3/ directory of gnome-devel-docs in git. I gather that HIG development is in a state of flux at the moment, but I'm hoping that providing some infrastructure for it will make things easier for the usability guys who're tackling the rewrite. There's a template for UI patterns in there too - working on a pattern could be a good way to start contributing to the HIG (hint, hint).

Cheesy sounds?

You know how Cheese can apply fun filters to your webcam feed? It might be cool to do something similar for your microphone input. I mean, really, who doesn't want to sound like Darth Vader from time to time? Is it possible to build something in GStreamer perhaps? It could make for a nice project for someone over the Christmas holiday season. Just sayin'...

  • 1

Python Demos

I just filed a bug with the code for the python guitar tuner demo app


I would like to know what issues you guys ran into with introspection so that we can fix them for you. I'm running through the other demos to see what I can whip up.

I have an early demo of the audio player in javascript for both gjs and seed. Which one are you guys using ? I will submit it in bugzilla
Also it would be nice to add some perl and C# demos.

Awesome, thanks Luis! We're using gjs.

We've decided to focus on the "core" GNOME languages for now. It's a little bit arbitrary, but there was broad agreement between people at the hackfest that the five we chose were sensible. C# is a bit difficult because I don't know what's going on with GTK 3 support in Mono, and Mono seems to stand aside from the rest of GNOME in many ways too (different IDE etc). Is Perl something we'd recommend people use to create GUI apps any more?

Well both languages are very important (even Perl) because we need also to motivate programmers to use GTK+ and not Qt or ncurses.
The problem here is that the tutorial is very GTK3 oriented and none of this languages have yet support for this version.

Also i think that a good gobject tutorial would be awesome for new users. This is by far one of the most asked questions about GTK development and the current tutorial isn't good enough for newbies.

I agree that a gobject tutorial would be a good idea, and we do have plans for something like that. It's just a matter of finding someone to write it.

We wanted to be forward-looking with the tutorials, hence the focus on GTK3. Why push people onto a platform that will soon be replaced? It would be nice to have tutorials for every language you can possibly use, but we needed to prioritise. Again, volunteers could fix that situation...

  • 1