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):
| Name | C (code) | C (doc) | C++ (code) | C++ (doc) | JS (code) | JS (doc) | Py (code) | Py (doc) | Vala (code) | Vala (doc) |
| Audio Player | X | |||||||||
| Guitar Tuner | X | X | ||||||||
| Image Viewer | X | ~ | X | X | ||||||
| Magic Mirror | X | X | ||||||||
| Message Board | ~ | X | ||||||||
| Photo Wall | X | X | ||||||||
| Record Collection | X | X |
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-do
(For the git-impaired: Nightly builds here.)
Terminology
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'...
Python Demos
https://bugzilla.gnome.org/show_bug.cgi?id=636641
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.
Demos
Also it would be nice to add some perl and C# demos.
Re: Demos
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?
Re: Demos
The problem here is that the tutorial is very GTK3 oriented and none of this languages have yet support for this version.
Re: Demos
Re: Demos
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...