Tuesday, 19 June 2007

Flickr + Clutter = Fluttr

Hey, I did say your gonna get sick of me :-).

So, what this post about? Well, a little while ago, Matthew and I were talking about what could we do with Clutter which would be quite different and cool, and he had the idea of something involving the internet. So with a little help from our resident flickr master, I embarked on a mission to bring Clutter and Flickr together, in a great union of animations and pixels.

Fluttr

Fluttr is a Clutter based Flickr photo viewer. Once you have authorized with Flickr, you can browse and view your photo sets, together with viewing your photos individually.

A video makes much more sense than I ever could, so:


As you can see, it has cool things like the sets will show the photos within them, photos are downloaded as necessary (and cached locally). It also has a fullscreen option, so it works quite nicely when you want to show off your pictures on your laptop/TV.

You can grab Fluttr from svn by running:

svn co http://svn.o-hand.com/repos/clutter/trunk/toys/fluttr fluttr

Be sure to read the README, as it contains valuable info on how to authorise with Flickr. There are some things that still need to be added, but it works really well, and I hope you guys like it!

34 comments:

Anonymous said...

Awesome looking! As usually... But now you show us that, you are making us ask about the media center, and affinity :) We always want more.

I will test Fluttr immediately. Blinging applications like this are very useful to attract new users to Linux. Congrats Neil, keep up the good work!

Anonymous said...

For your information, the svn command is not working here, I get a 400 error. It's ok with https though.

Anonymous said...

ok me again.

How do I submit bugs? :)


Clutter-CRITICAL **: clutter_texture_set_pixbuf: assertion `pixbuf != NULL' failed

Matteo said...

Good job man.
From now i had to pay more atention to your blog...

Anonymous said...

./configure: line 1264: syntax error near unexpected token `AM_CONFIG_HEADER'
./configure: line 1264: `AM_CONFIG_HEADER(config.h)'

What am I missing?

Neil J. Patel said...

@anon0: hehe, its happening, one by one :)

@anon1: Weird, it works for me :-/

@anon2: Just mail them to me for now njp_AT_o-hand_DOT_com.
'
@anon3: Please run ./autogen.sh, instead of ./configure (it will run ./configure for you)

Leon said...

Again looks very cool!

I have a problem in Ubuntu Feisty.

When I run Fluttr I get this:


(fluttr:17919): Clutter-CRITICAL **: Clutter needs at least version 1.2 of OpenGL
Loaded Credentials:
blabla

#########-########
########@A##
Parsing photosets...
(fluttr:17919): GLib-GObject-CRITICAL **: g_object_ref: assertion `G_IS_OBJECT (object)' failed
Parsing photos without set...

Photos without a set (6) : 6 loaded
6 Photo(s) in 1 set(s)


Another question I have is about why you have chosen for flickr and not started with normal folders. I want to use this for my local pictures as well...

Anonymous said...

very nice, should inform the f-spot devs of this. would be awesome to see some integration with their work.

delfick said...

awsome :D

great to finally see this blog up and going again :D

JonRob said...

I'm probably doing something very stupid here, but I can't get it to compile!

autoreconf: Entering directory `.'
autoreconf: configure.ac: not using Gettext
autoreconf: running: aclocal
autoreconf: configure.ac: tracing
autoreconf: configure.ac: not using Libtool
autoreconf: running: /usr/bin/autoconf
configure.ac:11: error: possibly undefined macro: AC_PROG_LIBTOOL
If this token and others are legitimate, please use m4_pattern_allow.
See the Autoconf documentation.
autoreconf: /usr/bin/autoconf failed with exit status: 1

Looks awesome though and I can't wait to have a play with it :D And would love some news about your media center ideas!

Great work!

Neil J. Patel said...

:leon: (fluttr:17919): Clutter-CRITICAL **: Clutter needs at least version 1.2 of OpenGL

Is the problem :). You require a newer version of OpenGL.

@jonrob: Hmm, I'm not sure, but can you try and make sure you have all devel libraries to do with libtool installed.

Leon said...

Hi Neil thanks for your fast response, but I already had some kind of idea about that being the problem, but I ran glxinfo which came up with this info.



name of display: :0.0
display: :0 screen: 0
direct rendering: Yes
server glx vendor string: NVIDIA Corporation
server glx version string: 1.4
server glx extensions:
GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_SGIX_fbconfig,
GLX_SGIX_pbuffer, GLX_SGI_video_sync, GLX_SGI_swap_control,
GLX_EXT_texture_from_pixmap, GLX_ARB_multisample, GLX_NV_float_buffer,
GLX_ARB_fbconfig_float
client glx vendor string: NVIDIA Corporation
client glx version string: 1.4
client glx extensions:
GLX_ARB_get_proc_address, GLX_ARB_multisample, GLX_EXT_visual_info,
GLX_EXT_visual_rating, GLX_EXT_import_context, GLX_SGI_video_sync,
GLX_NV_swap_group, GLX_NV_video_out, GLX_SGIX_fbconfig, GLX_SGIX_pbuffer,
GLX_SGI_swap_control, GLX_NV_float_buffer, GLX_ARB_fbconfig_float,
GLX_EXT_fbconfig_packed_float, GLX_EXT_texture_from_pixmap
GLX version: 1.3
GLX extensions:
GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_SGIX_fbconfig,
GLX_SGIX_pbuffer, GLX_SGI_video_sync, GLX_SGI_swap_control,
GLX_EXT_texture_from_pixmap, GLX_ARB_multisample, GLX_NV_float_buffer,
GLX_ARB_fbconfig_float, GLX_ARB_get_proc_address
OpenGL vendor string: NVIDIA Corporation
OpenGL renderer string: GeForce 7600 GS/PCI/SSE2
OpenGL version string: 2.1.0 NVIDIA 96.31
OpenGL extensions:
...etc...



looks to me like I've got a new enough opengl version, definately above 1.2

Beryl/AWN/Affinity/"C&C Tiberium Wars under wine" all run fine, so I wonder what goes wrong. Am I missing a library or maybe a conflicting library, how can I tell.

dmcom said...
This comment has been removed by the author.
dmcom said...

I have a similar problem than leon

desktop:/usr/local/bin$ ./fluttr XXX-XXX-XXX

(fluttr:15731): Clutter-CRITICAL **: Clutter needs at least version 1.2 of OpenGL
Authenticating : XXX-XXX-XXX

(fluttr:15731): GLib-GObject-CRITICAL **: g_object_ref: assertion `G_IS_OBJECT (object)' failed
Authorizing token...
** (fluttr:15731): CRITICAL **: Auth Unsuccessful : Mini-token not found

----------------------------------------------------

name of display: :0.0
display: :0 screen: 0
direct rendering: Yes
server glx vendor string: NVIDIA Corporation
server glx version string: 1.4
server glx extensions:
GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_SGIX_fbconfig,
GLX_SGIX_pbuffer, GLX_SGI_video_sync, GLX_SGI_swap_control,
GLX_EXT_texture_from_pixmap, GLX_ARB_multisample, GLX_NV_float_buffer
client glx vendor string: NVIDIA Corporation
client glx version string: 1.4
client glx extensions:
GLX_ARB_get_proc_address, GLX_ARB_multisample, GLX_EXT_visual_info,
GLX_EXT_visual_rating, GLX_EXT_import_context, GLX_SGI_video_sync,
GLX_NV_swap_group, GLX_NV_video_out, GLX_SGIX_fbconfig, GLX_SGIX_pbuffer,
GLX_SGI_swap_control, GLX_NV_float_buffer, GLX_ARB_fbconfig_float,
GLX_EXT_fbconfig_packed_float, GLX_EXT_texture_from_pixmap,
GLX_EXT_framebuffer_sRGB
GLX version: 1.3
GLX extensions:
GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_SGIX_fbconfig,
GLX_SGIX_pbuffer, GLX_SGI_video_sync, GLX_SGI_swap_control,
GLX_EXT_texture_from_pixmap, GLX_ARB_multisample, GLX_NV_float_buffer,
GLX_ARB_get_proc_address
OpenGL vendor string: NVIDIA Corporation
OpenGL renderer string: GeForce FX 5700/AGP/SSE2/3DNOW!
OpenGL version string: 2.1.0 NVIDIA 97.46
OpenGL extensions:
...

PD: Great job!

Neil J. Patel said...

@leon: I just asked Matthew, and he said that can you make sure your using OpenGl which is at least 0.2.3 (use your package manager, as nVidia gives a totally different output :).

Garoth said...

Hey, nice to see you make a post after so long. (You may remember me)

Nice work on this. I don't think its useful as a standalone though, except in rare situations where you want to show off a nice slideshow from the web. Some things I'd like to see are...

1) Have this be an optional main window of f-spot. That would be awesome! :D Its a perfect fit for it, actually (with a bit of work).

2) Support for picasaweb.google.com. Nice to broaden the horizons a bit :)

3) Use Git, ya git!

Anyways, do as you like -- and that looks sweet.

Leon said...

OPEN-GL SOLUTION?!

I did some testing and found 'A' solution... (note A, probably not THE solution)

I once installed my nvidia drivers by saying OK I want proprietary nvidia drivers to Ubuntu, which made Ubuntu install the nvidia-glx driver, as expected.

Apprarantly there also is a nvidia-glx-new package, and after I installed this (which replaced the normal nvidia-glx package), Fluttr now works!

The thing is, I didn't restart my desktop manager (gdm) and so didn't reload my nvidia driver either.... That's probably why I now get the extra first part in the message about the API mismatch. But even stranger is that I also still have the Clutter OpenGL version message, while it now does work.


Error: API mismatch: the NVIDIA kernel module has the version 1.0-9631, but
this client has the version 1.0-9755. Please make sure that the kernel
module and all NVIDIA driver components have the same version.
NVIDIA: Direct rendering failed; attempting indirect rendering.

(fluttr:23767): Clutter-CRITICAL **: Clutter needs at least version 1.2 of OpenGL
Loaded Credentials:
blabla

#########-########
########@A##
Parsing photosets...
(fluttr:23767): GLib-GObject-CRITICAL **: g_object_ref: assertion `G_IS_OBJECT (object)' failed
Parsing photos without set...

Photos without a set (6) : 6 loaded
6 Photo(s) in 1 set(s)



I will restart my desktop manager and reload the new nVidia driver, after I am done playing with fluttr ;) and tell you if anything has changed...

Leon said...

WARNING

installing nvidia-glx-new didn't turn out to be the solution, so save you some trouble and leave nvidia-glx installed...

I only got the album overview, than it again hang... after restarting my entire system fluttr again didn't show up.

JonRob said...

hmm still no luck...Maybe I'll try again in the future :)

Thanks for the work!

Jon

Anonymous said...

+1 for f-spot!

(It would make all of the clock icons which uglify your interface go away... *grin*)

Mirco said...

Hi Neil!

Got to try that again. Took a brief look at fluttr some weeks ago. But didn't have much time then. I'll stress my gcc with it now.

Best regards...

MacSlow

mike jones said...

fluttr is very resource intensive. It will not start while i use compcomm well it opens but none of the pictures ever load.

I f i switch to xcompmgr then futtr pictures load pretty mcuh...

Davim said...

This locks very nice but I think you should add a way of doing the same but with a local folder! I think it would be much more useful :)

Anonymous said...

maybe you and macslow should team up and make clutter and lowfat play together

Anonymous said...

Maybe this could be included at some point with the media center you started a while back? Reading from local files would also be awesome.

The application looks great however.

Nils Martin said...

Neil you are the MAN! :-D

Found your work an blog a couple weeks ago and now constantly check the feed if you updated your blog with new exiting news.
Your work feels like an fresh breeze through the "old gnome community" that sadly don't have any ambition to evolve.

Love your work, ideas and ambition to see new paths in tow to handle gui:s

Anonymous said...

Awesome stuff! I just wish there was something like this for OSX ... not just for flickr, but for pictures in general. I suppose something similar exists for newer versions of iPhoto, or newer versions of OSX (Leopard).

As for F-spot ... I think it is easy enough to extend it

http://f-spot.org/Extend_F-Spot

so that it should be a minor task to adapt Fluttr to browse F-spot pictures.

motumboe said...

Great :-) That's awesome :-)))) Adding myself to the 'local pictures' crowd :-)

Abbas said...

DESI POWER!!!

You are the man...

Anonymous said...

Great but.. why flickr ?
I have no account there and i would like to have those awesome effect on a simple pictures folder :)

Daniel Maclean said...

I agree maybe this would be more useful if maybe integrated with nautilus as another way of viewing files. I do have a flickr account and i tried out fluttr. I liked it however had to shutdown xgl for it to work and login in a normal session. Maybe this would be more suited to arena. Your a smart guy, you've probably already thought of this :-) Keep up the good work neil, your software will hopefully open up the eyes of the gnome developers and let them see the full 'arena' through all the 'clutter'... :-)

MDK said...

So, about the "Mini-token not found" problem. I think fluttr uses the original flickr API bindings I wrote for my nflick application. I'm seeing the same problem with nflick. It looks like something changed in the Flickr API, hard to say what.

The actual message given by nflick is... well... "Mini-token not found".

Leif said...

Re: Clutter-CRITICAL **: clutter_texture_set_pixbuf: assertion `pixbuf != NULL' failed

I had that problem too. I think the problem stems from running fluttr from the src dir. If you do a 'make install' it should be ok. However I wanted to run it from the src dir so I fixed it by adjusting the fluttr/src/Makefile.am

I changed

PKGDATADIR = $(datadir)/fluttr

to

PKGDATADIR = $(top_srcdir)/data

Leif said...

I'm having a problem getting the thumbnail sized image previews to load. They currently just show up as dark empty boxes. When I press enter on one it shows the actual image from flickr in full size though.