Gwibber

Ubuntu Opportunistic Developers Week March 2010 - SHOWCASE: Gwibber - Ken Vandine - Mar 2 2010

(02:03:01 PM) kenvandine: anything we have to do to get lernid to show the slides?
(02:04:40 PM) kenvandine: [SLIDE 1]
(02:05:00 PM) kenvandine: ok everyone, welcome to our little showcase on Gwibber
(02:05:14 PM) kenvandine: Gwibber is a social networking desktop service and client
(02:05:52 PM) kenvandine: Gwibber has kind of a fun history, started out as just a playground and has really blossomed
(02:06:01 PM) kenvandine: [SLIDE 2]
(02:06:40 PM) kenvandine: Ryan Paul created Gwibber as a tool to learn about pygtk development while writing an article for Ars Technica
(02:06:45 PM) kenvandine: back in 2007
(02:07:08 PM) kenvandine: and for a while it was really just his little playground for experimenting with new technologies
(02:07:16 PM) kenvandine: research for other articles he wrote
(02:07:17 PM) kenvandine: etc
(02:07:44 PM) kenvandine: i don't think he had any idea it would become quite so popular :)
(02:08:08 PM) kenvandine: Ryan is seg|ars :)
(02:08:25 PM) kenvandine: who is listening in here, so hopefully he can correct me when needed :)
(02:08:38 PM) kenvandine: [SLIDE 3]
(02:08:57 PM) kenvandine: the slides are mostly here as a place to stick some screenshots to show how gwibber has evolved
(02:09:13 PM) kenvandine: which is actually quite from to see, as a long time user
(02:09:21 PM) kenvandine: s/from/fun
(02:09:29 PM) kenvandine: [SLIDE 4]
(02:09:50 PM) kenvandine: this is gwibber in it's first incarnation
(02:09:53 PM) kenvandine: back in 2007
(02:10:04 PM) kenvandine: mostly all pygtk
(02:10:10 PM) kenvandine: quite simplistic
(02:10:26 PM) kenvandine: [SLIDE 5]
(02:10:59 PM) kenvandine: this was when Ryan was experimenting with using cairo directly to render the messages
(02:11:32 PM) kenvandine: [SLIDE 6]
(02:11:41 PM) kenvandine: Gwibber was starting to look a bit nicer here
(02:11:53 PM) kenvandine: Ryan had moved on to using webkit to render the messages pane
(02:11:58 PM) kenvandine: and styling with css
(02:12:17 PM) kenvandine: it was quite slick looking and easily themed at this point
(02:12:22 PM) kenvandine: and he had just added facebook support
(02:12:28 PM) kenvandine: this was 2008ish
(02:13:10 PM) kenvandine: [SLIDE 7]
(02:13:32 PM) kenvandine: this is from about the same time, maybe even the same version
(02:13:36 PM) kenvandine: shows the accounts dialog
(02:13:59 PM) kenvandine: [SLIDE 8]
(02:14:18 PM) kenvandine: this was the 2.0 era, which is what we were working on getting into Karmic
(02:14:32 PM) kenvandine: but i hate to say 2.0 was never really robust enough
(02:14:42 PM) kenvandine: it was the first version that split out the separate service
(02:14:59 PM) kenvandine: and relied heavily on DBus for all of it's message handling
(02:15:13 PM) kenvandine: which actually proved quite problematic
(02:15:31 PM) kenvandine: but you can see it is starting to look a little differnent now
(02:15:49 PM) kenvandine: [SLIDE 9]
(02:15:58 PM) kenvandine: this is what Gwibber looks like today
(02:16:17 PM) kenvandine: it has come a long way
(02:16:27 PM) kenvandine: the desktop service is now working very well
(02:16:36 PM) kenvandine: the python API is proving to be useful
(02:16:41 PM) kenvandine: as is the DBus API
(02:17:01 PM) kenvandine: there have been quite a bit of buzz around about the new look, which is nice
(02:17:08 PM) kenvandine: [SLIDE 10]
(02:17:26 PM) kenvandine: and now it is included in Lucid Lynx by default
(02:17:32 PM) kenvandine: Gwibber has come a long way!
(02:17:38 PM) kenvandine: thanks seg|ars, you rock!
(02:18:07 PM) kenvandine: Gwibber has matured enough that we are including it in Ubuntu, and in an LTS even
(02:18:30 PM) kenvandine: i don't have screenshots of this
(02:18:36 PM) kenvandine: but if you are running Lucid
(02:18:40 PM) kenvandine: you can see it for yourself
(02:18:54 PM) kenvandine: the Me Menu, up to the left of the Session menu in the top panel
(02:19:02 PM) kenvandine: there is a text entry now
(02:19:07 PM) kenvandine: that posts to Gwibber
(02:19:22 PM) kenvandine: so right from the panel you can fire off a quick post
(02:19:41 PM) kenvandine: http://arstechnica.com/open-source/reviews/2010/03/hands-on-ubuntu-goes-social-gains-me-menu-in-1004-alpha-3.ars
(02:19:45 PM) kenvandine: an article from Ryan about it
(02:19:56 PM) kenvandine: http://static.arstechnica.com/ubuntu1004a3/me-menu.png
(02:20:04 PM) kenvandine: there's a screenshot
(02:20:58 PM) kenvandine: lets talk a little about some of the technology used in the current gwibber and talk about how Gwibber has benefited
(02:21:13 PM) kenvandine: [SLIDE 11]
(02:21:24 PM) kenvandine: python, pygtk and webkit
(02:21:34 PM) kenvandine: Gwibber has been using those since nearly the beginngin
(02:21:39 PM) kenvandine: a bit about webkit
(02:22:05 PM) kenvandine: the messages pane is completely rendered in Webkit which makes themes, etc easy
(02:22:11 PM) kenvandine: and it fits the model well
(02:22:18 PM) kenvandine: one thing to note, which is interesting
(02:22:39 PM) kenvandine: the navigation bar on the left side and the bar to the bottom of the text input with the toggle buttons
(02:22:45 PM) kenvandine: that isn't gtk
(02:22:51 PM) kenvandine: those are all rendered in webkit
(02:23:27 PM) kenvandine: Ryan was having a hard time bending pygtk to do what he needed to do, so he moved all that to webkit and made them look like they belong
(02:23:41 PM) kenvandine: quite nice
(02:24:00 PM) kenvandine: so just something you might want to look at the source for if you ever feel restricted and want to break outside the box
(02:24:21 PM) kenvandine: not saying it is good or bad... it would be nice if pygtk was able to do what he wanted
(02:25:07 PM) kenvandine: also in the 2.30 series Gwibber has moved to desktopcouch for data storage
(02:25:22 PM) kenvandine: so preference, accounts and messages are all stored in desktopcouch
(02:25:30 PM) kenvandine: there are many pluses to this
(02:26:01 PM) kenvandine: one is we get syncing for free, if you pair desktopcouch instances on your local network or if you are an ubuntu one user, your gwibber accounts/settings sync automatically
(02:26:10 PM) kenvandine: so you only have to configure it in one place
(02:26:28 PM) kenvandine: but desktopcouch also helped us solve the robustness problems we had with DBus
(02:26:36 PM) kenvandine: we still use DBus for quite a bit of stuff
(02:26:40 PM) kenvandine: but we never pass data around
(02:26:56 PM) kenvandine: the message data is a pretty complex data structure that used to make dbus tip over
(02:27:06 PM) kenvandine: now we access the message data directly from couch
(02:27:41 PM) kenvandine: desktopcouch also gives us events so we could remove code, which is always good
(02:27:45 PM) kenvandine: for example
(02:27:54 PM) kenvandine: notifications and messaging indicator support
(02:28:15 PM) kenvandine: now instead of the service getting a new message and telling a bunch of different moving pieces to go off and do things
(02:28:21 PM) kenvandine: it just writes it out to the database
(02:28:46 PM) kenvandine: we see the event for a new record added to the database, and we show a notification for it
(02:28:58 PM) kenvandine: removed a bunch of the logic we had in place before
(02:29:02 PM) kenvandine: and let couchdb do the work
(02:29:17 PM) kenvandine: same for adding replies/mentions to the messaging menu
(02:29:37 PM) kenvandine: also the client uses those same events to know when to render the messages pane, etc
(02:29:42 PM) kenvandine: it is used all over the place
(02:30:06 PM) kenvandine: so desktopcouch was a huge win for Gwibber imho
(02:30:12 PM) kenvandine: ok, now lets move on to questions
(02:30:26 PM) kenvandine:  QUESTION: Joined later but is there in Lucid with gwibber a daemon that monitors incomming messages (and notifies ofcourse) instead of having Gwibber open all the time?
(02:30:30 PM) kenvandine: yes
(02:30:56 PM) kenvandine: the gwibber-service will run in the background without the client open
(02:31:04 PM) kenvandine: while running, if you have notifications enabled
(02:31:07 PM) kenvandine: it will display them
(02:31:08 PM) kenvandine: etc
(02:31:32 PM) kenvandine: when you launch the client, it will just talk to the existing service that is running
(02:31:48 PM) kenvandine: if you "Quit" the client in the Gwibber menu, it will shutdown the service
(02:31:55 PM) kenvandine: to give users a way to stop it if they like
(02:31:56 PM) kenvandine: but
(02:32:07 PM) kenvandine: if you close the window it doesn't kill the service
(02:32:25 PM) kenvandine: in the next cycle, i would like to make that configurable
(02:32:45 PM) kenvandine: QUESTION: with those bars rendered in webkit, do they look out of place if you change the theme or does it somehow adapt to the colours of your gtk theme?
(02:33:30 PM) kenvandine: they do honor some of the gtk values
(02:33:43 PM) kenvandine: like color and such (i think)
(02:33:50 PM) kenvandine: but for example the icons don't change
(02:34:09 PM) kenvandine: i would like to move to a model where we provide icons that can be over ridden by the theme
(02:34:40 PM) kenvandine: QUESTION: the desktopcouch is restricted but how are the passwords stored in the DB?
(02:35:23 PM) kenvandine: it is stored as a string
(02:35:43 PM) kenvandine: we should move those into the keyring in the next cycle, hopefully
(02:36:16 PM) kenvandine: right now you need keyring access to access couch
(02:36:28 PM) kenvandine: but ideally we shouldn't store them that way anyway
(02:37:19 PM) kenvandine: QUESTION: As many users really don't get along well with microblogging, shouldn't the RSS functionality of gwibber get back and be improved, for them use gwibber, at least, like an rss reader?
(02:38:17 PM) kenvandine: not sure i agree
(02:38:40 PM) kenvandine: i personally don't see RSS reading as social networking, but i know others disagree with me
(02:38:53 PM) kenvandine: i am more keen on growing the use cases
(02:38:58 PM) kenvandine: like photo sharing
(02:39:00 PM) kenvandine: etc
(02:39:15 PM) kenvandine: there are many ways we can utilize gwibber outside of "microblogging"
(02:39:26 PM) kenvandine: i don't really consider Gwibber a microblogging client anymore
(02:39:42 PM) kenvandine: i see it is a social networking aggrigator
(02:40:16 PM) kenvandine: a single mechanism for you and the applications you use more effectively interact with your friends
(02:40:38 PM) kenvandine: like viewing your friend's facebook photo albums, tagging people in photos, commenting on them, etc
(02:40:45 PM) kenvandine: all from inside of f-spot
(02:40:55 PM) kenvandine: instead of through a web interface
(02:41:03 PM) kenvandine: there are many other use cases like that
(02:41:08 PM) kenvandine: which i would like to focus more on
(02:42:26 PM) kenvandine: any more questions?
(02:43:22 PM) kenvandine: ok... so thanks for your time
(02:43:30 PM) kenvandine: i hope everyone enjoys gwibber!

MeetingLogs/OpWeek1003/Gwibber (last edited 2010-03-02 20:04:53 by pool-71-182-100-128)