1 |
It already accounted for one this year's major surprises, when Google |
It already accounted for one this year's major surprises, when |
2 |
announced that it will spend US$4500 for 400 developer students to |
"Google":http://www.google.com announced that it would spend US$4500 |
3 |
work on open source projects. |
for 400 developer students to work on open source projects. |
4 |
|
|
5 |
Google worked with around fourty OpenSource organizations (among them, |
Google worked with around forty OpenSource organizations (among them, |
6 |
The Perl Foundation, KDE, Samba, etc.) to set up a list of available |
"The Perl Foundation":http://www.perlfoundation.org/ , |
7 |
projects. Some were focused on implementing a particular new feature |
"KDE":http://www.kde.org/, "Samba":http://www.samba.org/ and others) |
8 |
that would make the project shine even more, some were a lot more |
to set up a list of available projects. Some were focused on |
9 |
research-oriented. |
implementing a particular new feature that would make the project |
10 |
|
shine even more, some were more research-oriented. |
11 |
|
|
12 |
Then, Students submitted applications to Google. By the middle of |
Then, students submitted applications to Google. By the middle of |
13 |
June, mentors and projects were assigned to the ones that were judged |
June, mentors and projects were assigned to the ones that were judged |
14 |
to have the best potential. |
to have the best potential. |
15 |
|
|
16 |
Summer of code is over, it's now time for us to unveil the GNOME |
Summer of code is over, it's now time for us to unveil the GNOME |
17 |
goodies that came out from it. |
goodies that came out of it. |
18 |
|
|
19 |
Of course, GNOME fans and mentors had some ideas for students to work |
Of course, GNOME fans and mentors had some ideas for students to work |
20 |
on. The GNOME Foundation has mentored eleven students. They all worked |
on. The "GNOME Foundation":http://foundation.gnome.org/ has mentored |
21 |
on new features that, for the most part, have not been worked on |
eleven students. They all worked on new features and most of them have |
22 |
before. By now, most of them have a working implementation of their |
a working implementation of their initial plan. The projects' topics |
23 |
initial plan. The projects' topics range from music sharing |
range from music "sharing integrated to the |
24 |
integrated to the desktop to live edition and version control of |
desktop":http://ishamael.tunkeymicket.com/software/daap.html to a "Firefox |
25 |
developer documentation. There's even a Firefox extension that will |
extension":http://live.gnome.org/SearchParty that will help you to |
26 |
help you to share tips for mastering Google searches. |
share tips for mastering Google searches. |
27 |
|
|
28 |
In this article, you'll also learn about streaming and sharing some |
In this article, you'll also learn about "streaming music to your GAIM |
29 |
music with your GAIM buddies, hiding your personal data from others by |
buddies":http://raphael.slinckx.net/gshrooms.php, "encrypting folders |
30 |
encrypting folders in one click from nautilus o using your web cam and |
in one click with nautilus":http://www.ids.org.au/~jam6/?m=200508 or |
31 |
your head as an input device. |
"using your web cam and your head as keyboard and |
32 |
|
mice":http://live.gnome.org/CamTrack. |
33 |
|
|
34 |
h3. Music integration |
h3. Music integration |
35 |
|
|
36 |
Two projects were dedicated to music integration into the GNOME desktop : |
Two projects were dedicated to music integration into the GNOME |
37 |
shared music spaces in Gaim and play lists sharing with RhythmBox. |
desktop : "music rooms in |
38 |
|
Gaim":http://raphael.slinckx.net/gshrooms.php and "playlist sharing |
39 |
|
with Rhythmbox":http://ishamael.tunkeymicket.com/software/daap.html . |
40 |
|
|
41 |
|
The first one, called |
42 |
|
"gShrooms":http://raphael.slinckx.net/gshrooms.php, was carried out by |
43 |
|
Raphael Slinckx. His initial plan was to allow people to stream music |
44 |
|
from and to their Gaim buddies in one click. But, "the project is a |
45 |
|
bit different from the submitted application proposal, especially |
46 |
|
concerning Rhythmbox integration which was not planned initially.", |
47 |
|
says Raphael. As for now, "The application has reached a point where |
48 |
|
it works when the situation is perfect." |
49 |
|
|
50 |
The first one, called gShrooms, was carried on by Raphael Slinckx. His |
FIXME add references to gshrooms_thumb_{1,2}.png |
|
initial plan was to allow people to stream music from and to their |
|
|
GAIM buddies in one click. But, "the project is a bit different from |
|
|
the submitted application proposal, especially concerning RhythmBox |
|
|
integration which was not planned initially.", says Raphael. |
|
|
As for now, "The application has reached a point where it works when |
|
|
the situation is perfect." |
|
|
|
|
|
FIXME add screenshots that Raphael might send me later. |
|
51 |
|
|
52 |
gShrooms is not finished yet. Raphael "plans to move to a better |
gShrooms is not finished yet. Raphael "plans to move to a better |
53 |
streaming protocol when Gstreamer will be ready, and [to] improve |
streaming protocol when Gstreamer will be ready, and improve aspects |
54 |
aspects such as firewall/nat bypassing.". For the moment, the feature |
such as firewall/nat bypassing.". For the moment, the feature will |
55 |
will only work "if you have a PC directly connected to Internet or a |
only work "if you have a PC directly connected to Internet or a UPNP |
56 |
UPNP capable router, and no firewall.". One of the biggest problems he |
capable router, and no firewall.". One of the biggest problems he |
57 |
faced was "lacking, or even missing documentation", but he has been |
faced was "lacking, or even missing documentation", but he has been |
58 |
"astonished by the GNOME community." |
"astonished by the GNOME community." |
59 |
|
|
60 |
Charles Schmidt applied to the summer of code with the idea to go on |
Charles Schmidt applied to the summer of code with the idea to |
61 |
an existing project he started on October 2004. As he says, "It's not just RhythmBox being able to share playlists |
continue an existing project he started on October 2004. As he says, |
62 |
with iTunes, but also RB sharing its music to other RB clients on the |
"It's not just "Rhythmbox":http://www.gnome.org/projects/rhythmbox/ |
63 |
network". |
being able to share playlists with |
64 |
|
"iTunes":http://www.apple.com/itunes/ , but also Rhythmbox sharing its |
65 |
FIXME: add one representative screenshot of the app running. |
music to other Rhythmbox clients on the network". |
66 |
|
|
67 |
At first, he "had suggested doing this using a DAAP module |
FIXME: add reference to "daap_shot_thumb.png" |
68 |
for GNOME VFS. So that you could hand GnomeVFS a URI like |
|
69 |
"daap://Lyndsey's music" and it would return a directory full of |
At first, he "had suggested doing this using a |
70 |
music.". But quickly enough, he "was convinced by others that the DAAP |
"DAAP":http://daap.sourceforge.net/ module for GNOME VFS. So that you |
71 |
code should live inside RhythmBox, not in a GnomeVFS module.". Indeed, |
could hand GnomeVFS a URI like "daap://Lyndsey's music" and it would |
72 |
he "imagined that one [benefit] would be able to browse DAAP hosts in |
return a directory full of music.". But soon enough, he "was convinced |
73 |
Nautilus.", but over time, he wondered why a user would want |
by others that the DAAP code should live inside Rhythmbox, not in a |
74 |
to. Moreover, "several Rhythmbox developers suggested that core |
GnomeVFS module.". Indeed, he "imagined that one [benefit] would be |
75 |
changes to Rhythmbox were not out of the question." and finally, he |
able to browse DAAP hosts in Nautilus.", but over time, he wondered |
76 |
points out that "GnomeVFS is a pain in the ass to program". |
why a user would want to. Moreover, "several Rhythmbox developers |
77 |
|
suggested that core changes to Rhythmbox were not out of the |
78 |
|
question." and, finally, he points out that "the GNOME VFS API is not |
79 |
|
easy to grasp". |
80 |
|
|
81 |
So far, this move "has definitely paid off", and he was able to "push |
So far, this move "has definitely paid off", and he was able to "push |
82 |
out a patch last night that other people were able to get |
out a patch last night that other people were able to get |
83 |
working". Charles doesn't want to stop here, he "definitely see |
working". Charles doesn't want to stop here, he "definitely see |
84 |
himself continuing to work with the RhythmBox community to improve |
himself continuing to work with the Rhythmbox community to improve |
85 |
DAAP" and he's "thinking to tackle equalizer support next". Even if |
DAAP" and he's "thinking to tackle equalizer support next". Even if |
86 |
he says that "Time management is a skill [he is] still lacking", great |
he says that "Time management is a skill [he is] still lacking", great |
87 |
things should be coming from him in the next weeks. |
things should be coming from him in the next weeks. |
89 |
h3. GNOME core projects |
h3. GNOME core projects |
90 |
|
|
91 |
The core of the GNOME desktop has received a lot of attention |
The core of the GNOME desktop has received a lot of attention |
92 |
too. Three students pushed it to places where it hasn't been |
too. |
93 |
before. |
|
94 |
FIXME |
Every GNOME user has applets on his desktop. Mentored by Havoc |
95 |
|
Pennington, Travis Vachon worked on a easy way to setup and publish |
96 |
Every GNOME user uses applets. Mentored by Havoc Pennington, Travis |
panel applets : the so called panel bundles. "Eliminating the need to |
97 |
Vachon worked on a easy way to setup and publish panel applets : the |
build tools and package maintainers was one of the main goals behind |
98 |
so called panel bundles. "Eliminating the need to build tools and |
this project", says Travis. |
99 |
package maintainers was one of the main goals behind this project", |
|
100 |
says Travis. |
Even if he had "originally thought of the extensions as written in |
101 |
|
either C or Python. The major problem [with C] is that this would make |
102 |
Even if he had "originally thought of the extensions |
it necessary to have build tools installed". Luckily, |
103 |
as written in either C or Python. The major problem [with C] is that |
""Python":http://www.python.org/ is a whole lot more fun to write, and |
104 |
this would make it necessary to have build tools installed". Luckily, |
allows a developer to really focus on the neat stuff", says Travis. |
|
"Python is a whole lot more fun to write, and allows a developer to |
|
|
really focus on the neat stuff", says Travis. |
|
105 |
|
|
106 |
At first, he "thought [he] would be creating a system to bundle up |
At first, he "thought [he] would be creating a system to bundle up |
107 |
current panel applets for distribution.". However "while many aspects |
current panel applets for distribution.". However "while many aspects |
110 |
Python-coded applet to an extension is pretty simple, and will |
Python-coded applet to an extension is pretty simple, and will |
111 |
actually simplify the code". |
actually simplify the code". |
112 |
|
|
113 |
Bundles can already be used without any addition to the GNOME desktop |
Bundles can already be used without any modification to the GNOME desktop |
114 |
because they "are currently being implemented through a container |
because they "are currently being implemented through a container |
115 |
applet". However, proper integration into the panel is, according to |
applet". However, proper integration into the panel is, according to |
116 |
him, "a decent distance away". |
him, "a decent distance away". |
117 |
|
|
118 |
Travis has been "particularly impressed by PyGTK, and all of the |
Travis has been "particularly impressed by |
119 |
related GNOME Python bindings". On the opposite, he says that "it |
"PyGTK":http://www.pygtk.org/, and all of the related GNOME Python |
120 |
would be nice to see [the panel] improved". Indeed, "one original idea |
bindings". On the opposite, he says that "it would be nice to see [the |
121 |
for the project was to be able to click on a link to a bundle on the |
panel] improved". Indeed, "one original idea for the project was to be |
122 |
web site and have it appear somewhere on the panel immediately.". |
able to click on a link to a bundle on the web site and have it appear |
123 |
When he tried to accomplish this, "it turned out this wouldn't be |
somewhere on the panel immediately.". When he tried to accomplish |
124 |
possible with the current implementation of the panel". |
this, "it turned out this wouldn't be possible with the current |
125 |
|
implementation of the panel". |
126 |
|
|
127 |
From now on, "there's a ton of work still to be done, from improving |
From now on, "there's a ton of work still to be done, from improving |
128 |
the panel_extension Python module to integrating things into the panel |
the panel_extension Python module to integrating things into the panel |
129 |
and translating things from Python to C to make them faster!". In the |
and translating things from Python to C to make them faster!". In the |
130 |
meantime, Travis offers a tutorial about bundles. |
meantime, Travis "offers a tutorial about |
131 |
http://www.gnome.org/~tvachon/ . |
bundles":http://www.gnome.org/~tvachon/ . . |
132 |
|
|
133 |
Lorenzo Colitti, mentored by Owen Taylor, worked on improving the |
Lorenzo Colitti, mentored by Owen Taylor, worked on improving the |
134 |
GNOME desktop's startup time. The project's focus has a bit shifted |
GNOME desktop's startup time. The project's focus has a bit shifted |
135 |
from the initial proposal, since Lorenzo's mentor was more interested |
from the initial proposal, since Lorenzo's mentor was more interested |
136 |
in "producing solid methodology and results than getting patches in". |
in "producing solid methodology and results than getting patches in". |
137 |
|
|
138 |
Lorenzo thinks "Owen has been a great mentor". They were able able to |
Lorenzo says that "Owen has been a great mentor". They were able to |
139 |
meet : "he even put me up at his place, and we hacked together a couple |
meet : "he even put me up at his place, and we hacked together a |
140 |
of days !", says Lorenzo. He learned that "Performance monitoring is |
couple of days !", says Lorenzo. He learned that "Performance |
141 |
hard" and that "performance and flexibility can be conflicting goals". |
monitoring is hard" and that "performance and flexibility can be |
142 |
|
conflicting goals". |
143 |
"most of the ideas put forward in [his] proposal and in [his] first |
|
144 |
couple of discussions with [his] mentor actually happened." However, the |
Using measurement tools such as "bootchart":http://www.bootchart.org/ |
145 |
|
and custom kernel modules, Lorenzo has been able find bottlenecks and |
146 |
|
modify the GNOME desktop so it starts almost 50% faster. However, he |
147 |
|
says that "some of these changes are hacks and it will take time to |
148 |
|
integrate them properly into the main code base". However, the |
149 |
project is not done yet "because it's so broad", and Lorenzo |
project is not done yet "because it's so broad", and Lorenzo |
150 |
"definitely hope to continue hacking on it in the future.". |
"definitely hope to continue hacking on it in the future.". |
151 |
|
|
152 |
|
Mentored by Christian Kellner, Jon Manning hacked the GNOME VFS layer |
153 |
|
to bring it "encrypted folder support out of the |
154 |
|
box":http://www.ids.org.au/~jam6/?m=200508 . His original plan changed |
155 |
|
significantly, since "loopback-mounting an encrypted filesystem" |
156 |
|
supposed "mucking around a bit too much with permissions" and "there |
157 |
|
wasn't any way to access the data over a network as easily as you |
158 |
|
could locally". So they decided to encrypt the files individually with |
159 |
|
"OpenSSL":http://www.openssl.org/. This "new archive format means that |
160 |
|
we can get Nautilus to detect its type with more ease than we could if |
161 |
|
it was a filesystem", says Jon. |
162 |
|
|
163 |
|
He "was pretty impressed with both how thorough the GObject system |
164 |
|
[is] and how easy it was to get going". He also found that "the |
165 |
|
interfaces nautils provides made developing [his] plugin nice and |
166 |
|
simple". |
167 |
|
|
168 |
|
One can see that although the UI changes might be quite small, the |
169 |
|
feature provided is exciting. "There's a bunch of things we want to |
170 |
|
implement, including integrating with with GNOME-VFS, allowing |
171 |
|
on-the-fly browsing and decryption, and making the archives appear as |
172 |
|
regular folders.", says Jon. For sure, "there are good times ahead for |
173 |
|
this project!" |
174 |
|
|
175 |
FIXME. |
#FIXME insert references to encrypted_folder_thumb{1,2,3,4}.png |
176 |
|
|
177 |
h3. Sharing of Google searches |
h3. Sharing of Google searches |
178 |
|
|
179 |
People often get stuck into unsuccessful Google searches. Sanford is |
People often get stuck into unsuccessful Google searches. Sanford is |
180 |
now able to offer a way to overcome this situation. His Search Party |
now able to offer a way to overcome this situation. Not only his |
181 |
Firefox extension allows you to share search tips with people from all |
"Search Party Firefox extension":http://live.gnome.org/SearchParty |
182 |
over the world. Type your search on the Google web site, click on the |
allows you to share search tips with people from all over the world, |
183 |
"Join Search Party" toolbar button, and you are connected to an |
it also create communities around similar interests. Type your search |
184 |
IRC-like server, being notified of other people's successful attempts |
on the Google web site, click on the "Join Search Party" toolbar |
185 |
at searching similar information. |
button, and you are connected to a chat room, being notified of other |
186 |
|
people's successful attempts at searching similar information. |
187 |
|
|
188 |
FIXME: add reference to search_party_thumb_0.png and search_party_thumb_1.png. |
FIXME: add reference to search_party_thumb_0.png and search_party_thumb_1.png. |
189 |
|
|
190 |
The project takes the form of a Firefox extension on the client |
Client side, the project takes the form of a Firefox extension. As for |
191 |
side. On the server side, Sanford had "initially intended to write the |
the server, Sanford had "initially intended to write the Search Party |
192 |
Search Party Protocol directly over TCP, and have a Java server |
Protocol directly over TCP, and have a Java server somewhere that took |
193 |
somewhere that took care of matching up users with the proper chat |
care of matching up users with the proper chat room, ". However, he |
194 |
room, ". However, he changed his plans when Seth Nickell "pointed out |
changed his plans when Seth Nickell "pointed out early on that this |
195 |
early on that this might make the extension unusable for those behind |
might make the extension unusable for those behind various |
196 |
various firewalls". He then chose XML-RPC, which uses the firewall-compliant HTTP |
firewalls". He then chose "XML-RPC":http://www.xmlrpc.com/, which uses |
197 |
protocol as a transport medium. |
the firewall-compliant HTTP protocol as a transport medium. |
198 |
|
|
199 |
One of the main difficulty was to "teach the extension to speak |
One of the main difficulty was to "teach the extension to speak |
200 |
XML-RPC", because "Firefox's included implementation is broken". As a |
XML-RPC", because "Firefox's included implementation is broken". As a |
205 |
He plans to "continue working on it for quite awhile" and thinks that |
He plans to "continue working on it for quite awhile" and thinks that |
206 |
"the server will go through a lot of performance tuning and other |
"the server will go through a lot of performance tuning and other |
207 |
re-factoring" apart from "the work he would like to do on the query |
re-factoring" apart from "the work he would like to do on the query |
208 |
matching algorithms.". He can't wait "for people to download it from |
matching algorithms.". He can't wait "for people to download it from |
209 |
the wiki, try it out, and tell [him] what they think!". |
the wiki, try it out, and tell [him] what they think!". |
210 |
|
|
211 |
Finally Adam McCullough and his mentor Johnathan Blanford worked |
Finally Adam McCullough and his mentor Johnathan Blanford worked |
212 |
together to make GNOME more accessible. Their work was aimed at |
together to make GNOME more accessible. |
213 |
allowing any GNOME user to use a web cam and her facial motions as an |
|
214 |
input device. |
"The system":http://live.gnome.org/CamTrack, named "CamTrack", has |
215 |
|
been divided in two components : the tracker and the input method. The |
216 |
The system has been divided in two components : the tracker and the |
tracker tries to recognize and match facial motions with events |
217 |
input method. The tracker tries to recognize and match facial motions |
(maximizing a window for example). The input device is in charge of |
218 |
with events (maximizing a window for example). The input |
forwarding the events to the X Window system and GNOME. |
|
device is in charge of forwarding the events to the X Window system |
|
|
and GNOME. |
|
219 |
|
|
220 |
Though his "original proposal was mainly concerned with the details |
Though his "original proposal was mainly concerned with the details |
221 |
and capabilities of the tracker itself", Adam needed to create a |
and capabilities of the tracker itself", Adam needed to create a |
225 |
In his opinion, "the attention paid to accessibility in GNOME is more |
In his opinion, "the attention paid to accessibility in GNOME is more |
226 |
noticeable than in any other environment". He goes on saying that |
noticeable than in any other environment". He goes on saying that |
227 |
"It's been surprisingly simple to add a completely new interface to |
"It's been surprisingly simple to add a completely new interface to |
228 |
the GUI". Overall, he has been very impressed by GOK. |
the GUI". Overall, he has been very impressed by |
229 |
|
"GOK":http://www.gok.ca/. |
230 |
|
|
231 |
Adam likes to think that he's "contributing to technology and widening |
Adam likes to think that he's "contributing to widening access" and |
232 |
access" and "intend to keep developing it for some time". Adam points |
"intend to keep developing [CamTrack] for some time". He points out |
233 |
out that "the system is usable", but he would like to make "a long |
that "the system is usable", but would like to make "a long list of |
234 |
list of improvements, as well as a lot of tidying up needed and |
improvements, as well as a lot of tidying up needed and probably some |
235 |
probably some bug squashing". |
bug squashing". |
|
|
|
|
FIXME. |
|
236 |
|
|
237 |
Unfortunately, some students haven't had the time to respond our |
Unfortunately, some students haven't had the time to respond our |
238 |
questions yet. However, it doesn't make their work less valuable in |
questions early enough for us to write about their project. Danilo |
239 |
any way. |
Segan tried to find a way to "provide live editing to the GNOME |
240 |
|
documentation":http://live.gnome.org/LiveDocumentationEditing and |
241 |
Mentored by Christian Kellner, John Manning hacked the GNOME |
David Morrison worked on "implementing GMail-style conversation view |
242 |
VFS layer to bring it encrypted folder support out of the box. |
for evolution":http://blogs.gnome.org/dmorr. |
|
He has posted the mockups below to his weblog on |
|
|
July the 13th. |
|
|
|
|
|
FIXME : add references to "mockup_encrypted_folder_thumb_0.png" and |
|
|
"mockup_encrypted_folder2.png". |
|
|
|
|
|
One can see that although the UI changes might be quite |
|
|
small, the feature provided is exciting. It also leaves many |
|
|
unanswered questions regarding its integration into the GNOME |
|
|
desktop. Among them we might be able to know, in the near future, how |
|
|
it will use the GNOME keyring and if it will be able to decrypt |
|
|
folders on the fly. |
|
|
|
|
|
We didn't find any more information to tell you about |
|
|
this project. |
|
|
|
|
|
Something that GNOME developers and users should appreciate, Danilo |
|
|
Segan tried to find a way to provide live editing to the GNOME |
|
|
documentation. For instance, it would be possible to read the |
|
|
evolution manual, find some content that is not up to date, and modify |
|
|
it on the fly. It wouldn't be necessary to go |
|
|
through the tedious process of editing the documentation source code |
|
|
stored on the GNOME CVS server. |
|
|
|
|
|
By reading the wiki page dedicated to his project (see |
|
|
http://live.gnome.org/LiveDocumentationEditing), we know that Danilo has chosen to |
|
|
use the Python programming language. He has also already set up a list |
|
|
of the steps necessary to accomplish his work. |
|
|
|
|
|
This list mentions some exciting features, such as "support |
|
|
authentication and user privilege management", "establishing direct |
|
|
relations with documents managed in CVS, SVN, arch and other source |
|
|
version control systems" or "integrating Conglomerate with it". |
|
|
|
|
|
Unfortunately, one can't say what has been done so far and can only |
|
|
hope for the best. |
|
243 |
|
|
244 |
h3. Conclusion |
h3. Conclusion |
245 |
|
|
253 |
pleasent experience: "Everyone has been very helpful, friendly, and |
pleasent experience: "Everyone has been very helpful, friendly, and |
254 |
enthusiastic", says Travis. As Raphael puts it: "GNOME rocks!" |
enthusiastic", says Travis. As Raphael puts it: "GNOME rocks!" |
255 |
|
|
256 |
|
Resources : |
257 |
|
|
258 |
|
Google Summer of Code : http://code.google.com/summerofcode.html |
259 |
|
GNOME summer of code : http://live.gnome.org/SummerOfCode |
260 |
|
gShrooms : http://raphael.slinckx.net/gshrooms.php |
261 |
|
Search Party : http://live.gnome.org/SearchParty |
262 |
|
Live Documentation Editing : http://live.gnome.org/LiveDocumentationEditing |
263 |
|
CamTrack : http://live.gnome.org/CamTrack |
264 |
|
Conglomerate : http://www.conglomerate.org/ |
265 |
|
bootchart : http://www.bootchart.org/ |
266 |
|
Rhythmbox playlist sharing : http://ishamael.tunkeymicket.com/software/daap.html |
267 |
|
GMail style view for Evolution : http://blogs.gnome.org/dmorr |