Interview with Daniel G. Siegel



Hi all,
Apologies for the long delay - here's the interview that I had promised.
I'm not sure about the formatting guidelines and conventions - my
apologies if I've messed something up badly.
Warm regards,
Sayamindu

-- 
Sayamindu Dasgupta
http://sayamindu.randomink.org/ramblings
An interview with Daniel G. Siegel
==================================

Daniel G. Siegel has been behind one of the most visible GNOME projects for 
Google Summer of Code 2007 - Cheese. From it's page on the GNOME Wiki, Cheese 
is a Photobooth-inspired GNOME application for taking pictures and videos 
from a webcam. It also includes fancy graphical effects based on the 
gstreamer-backend. 

I had the opportunity of meeting him (and having him as my room mate) during 
GUADEC this year, and recorded a small interview with him on his project. The 
interview below is something like an extension of the recording that I made at 
Birmingham, with a number of updates and corrections made to reflect the current 
state of Cheese (and its author).
 

Sayamindu Dasgupta: Tell me a bit about yourself

Daniel G. Siegel: I'm Daniel, hi! <laughs>


SDG: How did you first hear about GNOME ?

DGS: My first Linux distro was packaged in a journal, and it had KDE, and I
thought it was awesome. I was playing around with it, but however, after a
while, I was looking for a new challenge, and so I watched out for
alternatives, and obviously, there was GNOME. 


SDG: Before the summer of code project, were you involved in GNOME ?

DGS: Not really. I did some basic GTK+ things, like gpomme (hotkey manager for 
Macbooks), if you know that.
Just basic things, so not much actually, just a bit.


SDG: What interested you in your particular project, Cheese ?

DGS: I wanted to work on an enjoyable project. I didn't want to do something
that is already there and I wanted to do something that was cool. So I just
thought, ok here is my macbook, what is not possible with that hardware and
Linux at the moment, eg: hotkey manager (which I had already been working
on)...


SDG: So, in a way, you were scratching your own itch ?

DGS: Yes! I thought something like Cheese would be great, and some days after
that notion I found Raphaël Slinckx, who had written a basic application in
Python. I contacted him, and...


SDG: When you started out, what were the most difficult things that you had to handle ?

DGS: Most Difficult? <laughs>. I think getting my hardware working.


SDG: So there were driver issues ?

DGS: Well, on the one hand, there were driver issues, but on the other, there
were issues created due to my own crappy code. In the first two weeks, I had
real problems to get a picture of my pretty face on the screen. It was quite
hard to get used to and understand new libraries, but it became easier and
easier with time. Now for example, if I want to write a new feature, I know
where to look, what to take and so on and of course it takes me less time.



SDG: As a new developer, or rather, comparatively new developer, looking at the GNOME development platform, which part did you like the most ? 

DGS: <laughs> Good one. I don't have a favourite. Or wait, maybe
library.gnome.org.


SDG: In that case, which part of the platform did you disliked the most ?

DGS: auto-<laughs>. Ah, and then there was GObject, which provides a lot of
advanced stuff, but it takes some time to understand such a thing. Especially
if you are used to plain C and your application is not really big. In that case
you will have a lot of boilerplate code.


SDG: So you are wondering if it's worth the effort for a comparatively small application ?

DGS: Yeah. Like it's awesome to have object oriented capabilities in C code,
things like properties and so on, but i don't think it's worth the time to use
it on really small projects. Of course Cheese is now big enough, and uses
GObject almost everywhere. And we really enjoy that, as the code gets much more
readable.


SDG: In the GNOME Development Platform, which areas do you think should be worked on, to attract new developers ?

DGS: If you ask me, it's pretty hard to get started. I mean, if you are in, once
you know what your required API is, your workflow and the exact functions you
want to look for, it's a quite easy ride. But if you are new, you don't know
what to do. So the only way to get "in" is to download some source code and
reading that. That's not a really good way to attract new developers. There
are quite a few tutorials on the net, but I missed the one and only good one
<laughs>.  


SDG: Going back to the question about the part you liked the most, kind of rephrasing it, what are the things you think, work well within the existing system ? What do you like about the GNOME development platform ? What made your work easier ?

DGS: I feel GTK(+) is really great. Creating your UI, that's pretty
straightforward. Gstreamer is also a very cool platform, Glib too, i mean,
those guys did really an awesome job quite everywhere on the GNOME development
platform!


SDG: Any advice for a new GNOME developer, someone who wants to get started in GNOME development ?

DGS: I think one of the most important thing is find someone like Raphaël, who
is online day and night, so that you can bug him whenever you like. 3am was a
really great time, but quite often either he or me was drunk <laughs>.
You can always ask in the IRC channels or on a mailing list, but if you want to
ask something like 'How to create a big, fat, blue, shiny button, which blinks
when you put your mouse pointer over it', they will be laughing at you. So it's
nice to have someone to ask such basic questions, like how to begin. 


SDG: Moving on to a slightly different area, what are the latest updates to Cheese ?

DGS: Oh, there are many: we refactored Cheese, implemented Drag'n'Drop, added
HAL-webcam recognition, GtkUimanager, some accelerators, a GConf backend, fixed
a few million problems (however problems, not bugs, as Cheese is bug-free of
course), GObjectified quite everything and we will implement a conduit backend
too, so we did pretty much <laughs>


SDG: You mentioned that the original prototype that Raphaël developed, it was written in Python. Many developers today (including myself) prefer to code in Python, it usually makes life easier. What led you to write Cheese in C ?

DGS: <laughs> Pretty easy - I don't know Python. Of course C is a bit more work,
but in the end I prefer C because it's a more plain, it has got its own
advantages. 


SDG: What tools do you normally use to debug ?

DGS: printf <laughs>. Yeah, that's probably the best debug tool. But sometimes I
use the GNU debugger or my programmer slaves for that. 


SDG: How is the response to Cheese ?

DGS: Awesome! My mailbox was full of emails. People would contact me on mail,
IRC or IM, providing suggestions, tips, bug reports, enhancement requests,
translations, and that was really cool. After all, it was one of the first
times, that so many people would contact me, without wanting me to pay their
bill.


SDG: How did you go about designing the interface - the UI design ?

DGS: I had Raphaël's work to begin with in the first place, but I didn't like
the effects widget, so I (re)wrote it. I know it's not very good, but at the
moment we are fancying it a bit up and in a while we will get a live preview.
All in all, the whole UI became better over time and even now, we enhance it
every week.


SDG: Now that SoC is over what would you advice someone, who is thinking of applying for the programme in 2008 ?

DGS: Oh... Apply to GNOME, it's just damn cool! Ah, and do some work before you
are applying, like designing the interface or planning the program. It looks
better if there is already something you have achieved yourself when applying.


SDG:  Well, that's about it, thanks a lot for your time.

DGS: Great, I'm already hungry - thank you.



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]