Posts Tagged ‘screenshots’

(on Technorati , Del.icio.us)

Rhythmbox Jump-to-playing Plugin

This plugin will display the View : Jump to Playing Song link as a button in the toolbar and as link in the Browser’s context menu. This is about as simple as a plugin could be (which is partly why I wrote it), but I’ve actually found it quite useful. Maybe you will too.

jump-to-playing-0.1

Download

jump-to-playing-0.1.tar.gz (Update: Newer version is available.)

Installation

  1. Extract the jump-to-playing folder into your ~/.gnome2/rhythmbox/plugins/ directory.
  2. (Re)Start Rhythmbox and enable the plugin in Edit : Plugins.

Todo

  • Add Configure dialog with checkboxes for toolbar and browser context menu, defaulting to toolbar only (both is a little redundant). Currently, both are added automatically.
    [x] Add button to toolbar
    [_]Add link to browser context menu
  • Force “Properties” to bottom of browser context menu (may depend on placeholder being added to the context menu)
  • Hide toolbar button in Small Display mode.

New Theme Update

I’ve removed a lot of the noise from the theme. This includes all of the gradients and many of those nasty, sharp lines. Put Categories and Time at the top of each post, with Tags and Comments at the bottom. Made both smaller. Put everything on search results page. Added links to Technorati and del.icio.us from Tags and Categories pages. Changed the gradient images for header and footer (reminds me of rust).

Screenshots of some of the changes:

Original and loud:
Original and loud

Removed gradients:
Removed gradients

Added solids:
Added solids

Changed colours:
Changed colours

Some more touch-ups:
some more touchups

What you should be seeing now:
what you should be seeing now

Comments / suggestions?

GNOME Panel / Ubuntu UI Musings

Reading Ubuntu 7.10 Pragmatic Visual Presentation Critique got me thinking about a better way to position applets and launchers on the panels in GNOME.

Imagine if you have locked all your applets and you’re trying to move a new applet to a specific location, you have to first unlock every applet which involves a right click, left click check-box, and repeating this for all locked applets. Once the applets have been unlocked and you have placed your new applet at the desired location, guess what? Time to lock them all again! Right click, left click check-box, right click, left click check-box, you get the idea. A method of locking/unlocking all the applets at the same time seems like a much welcomed option at this time.

I totally agree here. The panel should have a mode, (“layout mode”?) that darkens the rest of the screen so it’s obvious that you’re operating on the panels. Clicking off the Panel will exit this mode. I’m not sure what the best method would be for entering this mode. (An option on the context menu of every item on the panel?) Once in this mode, applets and launchers can be dragged around with the left mouse button. Moving the mouse cursor over an applet or launcher will highlight it with a red outline or something, so it’s obvious what will be moved. There should be a small lock icon below each. Clicking this will toggle the position lock. Speaking from experience, you usually want to do multiple unlock/move/lock actions at once, and with the current interface, it’s rather painful, as the author points out.

A quick mockup (I found an anchor before I found a lock, but an anchor makes sense):

Layout mode mockup

The author also touches on many other things that I don’t really see as big issues. Blurry icons? And he complains about icons not scaling properly with a resized panel. (See here.) For individual launchers, and the volume applet, the icons will scale fine. I’m not convinced scaling the Notification Area icons up would be desirable, as they would take up a lot of extra space and they can appear and disappear frequently, but that might be the user’s desired effect. Maybe an option for the user to say if they want them to scale, wrap, or neither… but all the icons in the notification area should definitely be consistent in behaviour, just as the launcher icons are on the panel.

notification area

Desktop Effects. He says they feel like a hack. I would agree that the defaults are truly terrible (wobbly windows? seriously?) and they certainly aren’t without their problems. As one would expect, they even introduce new defects. But after installing CCSM, and playing around with what’s available, I must confess I like them and I think they add a valuable layer of communication to the user: windows that aren’t responding fading to dark (see pic), new windows sizing and fading into existence, minimized windows flying to their position on the Window List applet (taskbar), desktop panning, zooming anywhere, live thumbnails for every application, etc. I do wish I could enable the one feature of wobbly windows to act as the system bell, and have the window wobble as a visible bell. I really liked that. But I can’t enable that single wobbly windows option without disabling something else I’m currently using. Also, the workspace switcher seems to be broken. I can’t drag windows from workspace to workspace within it.

not responding

Certainly, I agree the preferences menu could be more sensibly organized, but I think the Appearance capplet is great. A reference to the Appearance capplet within the mouse capplet is all that’s needed to improve the discoverability of the mouse cursor icons.

Two About menu items under the main System menu (one for GNOME and one for Ubuntu): they don’t bother me. There’s only four other items on that menu, and these are both important when users are reporting bugs for checking which versions of software they are running. The “Help” launchers are something I never use, and the first things I remove. But for novice users, maybe they’re helpful. I really wonder how often people read the included documentation, though….

Certain types of behavior should be unacceptable where user experience is concerned. It is unacceptable in my opinion for a Linux Distribution to knowingly ship broken Artwork with the distribution.

He’s clearly never used windows. 🙂 In all seriousness, if usable features had to wait on perfect aesthetics before mass deployment, Apple might be the only company releasing anything. In the Open Source world, users are depended upon for everything, including the aesthetics. If the software never gets out, it doesn’t get the attention it needs, bug reports aren’t filed as soon, and relatively stable (and usable) software is dis-serviced by not being allowed to gather the feedback it should. The article itself is a case in point. It’s also worth mentioning that Ubuntu Gutsy is not an LTS release. The Hardy Heron release will be, and that makes it especially important for Gutsy to get as many new features into users’ hands as possible. Linux distributions depend on the community and can’t evolve as effectively behind closed doors.

Hmmm… I suppose this post turned into more of a response to the post on Architect Fantasy (not my original intention), which I found interesting but didn’t agree with everything (which is totally fine).

Getting Tabs Closed

You know you’re trying to do too many things at once when…

ZOMG that’s a lot of tabs!

Managing browser tabs needs its own methodology, like GTD: Every week, go through your open tabs and close as many as you can. I don’t actually need to read that article. Not interested in this, any more. etc.

A bit better…  :-/

Clearly, I fail. >.< Restoring this session of 20 tabs brings Firefox up to 80MB, right away. Most of my current tabs are about different programming things: various references, tutorials, articles… as well as a tab to feedburner – for some reason, I’m addicted to looking at my blog’s meagre statistics. It’s fun!

Side Note: One thing that’s pretty cool, that can help minimize the tabs open for Python reference, is the Python sidebar. If there was only a pyGTK section in the sidebar….

When I’ve had tabs sitting open with no activity… I copy the link into a “would-be-nice” Tomboy note and close the tab. This helps a little… but I still have generally too many tabs open to help with the task at hand – and I prefer tabs to new windows (opening new windows is painfully slow on my setup, not sure why). If you have a similar problem of many tabs open at one time, I highly recommend the Tab Groups Firefox extension. Take a look:

Tab Groups Firefox Extension

Wow. The extension is still super early (I think it’s already caused FF to crash once), it takes a little while to sort the tabs when restoring a session, and you can’t move the Tab Groups around… but I’m definitely going to continue using it. It allows for much easier navigation of your current session, rather than scroll-click-is-this-what-i’m-looking-for-if-not-repeat. And for some reason, it even feels snappier! 😮 So this helps you Get Tabs Organized, which helps GTC, which helps GTD. Yay. 🙂

Blogging with images and WordPress

One things that WordPress is sorely missing is basic image handling. Blogging with images should be fast. Previously, I had gone as far as writing a script that would take all images in a directory, resize them, create thumbnails, and output the required html that I would then paste into the editor. Before that, I used a plugin that would would automatically generate thumbs, and it was great for a while. Until I upgraded, and didn’t enable the plugin… if you go see those old pages, you’ll notice they’re broken. So WP either needs a plugin that doesn’t break when you don’t have it installed, or a default will-always-be-supported image plugin. Since the latter doesn’t exist, I looked for the former. I’ve been using Flexible Upload for a while now, and it’s made posting pictures WAY less painful. Un-installing the plugin won’t affect any pages, because it just generates static content. So that’s what I use and recommend for uploading a couple pictures to a personal WordPress blog. Any other suggestions?

Screenshots follow:

This plugin sits in the Upload area….

This plugin sits in the Upload area….
After uploading an image…

After uploading an image…
Clicking Send to editor

Clicking Send to editor

PhotoFile

Screenshot update! Still no version… as it’s still just a husk of a UI… mostly.

PhotoFile pre versioning

I’ve changed the GUI quite a bit. Actually, what it is now took a surprisingly long time to arrive at. I spent time going through some ideas on paper, and I even did a huge amount of refactoring to make coding easier. It’s at the point where a GUI in another API could easily be thrown in…. it just requires me separating the PhotoFile class into PhotoFile and PhotoFileGTK… but I’m not going to bother, at this point, because I don’t think there’s much point in offering it in another kit. GUI and no-GUI could be useful, though. Anyway, there’s still quite a few problems remaining, including:

  1. Supported File Types: I need a list of file types (extensions) that are common in Cameras and that people would be interested in transferring. So far, I’ve got what my camera supports: JPG, THM, AVI, and WAV. Some cameras allow for sound recordings to be created (WAVs on mine) but I’m not sure what I should do with these… rename to have the same name as the image, I guess (if it’s a memo). Post your camera’s formats and how they’re used in the comments! Example of my Camera: WAV files with a filename the same as an image are a sound memo for that image. AVIs are movies and have and accompanying THM file (same filename) which is a small Jpeg containing a thumbnail of the movie.
  2. Empty Source Directories: When moving files from the source, should I automatically remove any empty source directories? Maybe add an advanced property for this? I certainly don’t want to add it to the main dialog. KISS.
  3. Separate Operations: I’m not sure if each file should save it’s own set of operations for the session. For example, user selects manual rotation for two files, and auto-rotation for the rest. Should Process All Files remember those two files’ manual rotation, or should it apply the visible operations to ALL files. If I should save settings for each file, then I feel like I’d need another button, Process All Files Using These Operations, just to be clear… maybe a “Reset to defaults” somewhere… sounds like too much clutter, but it could be useful for people whose camera’s don’t store EXIF. Suggestions?
  4. Manual Rotation: Need a dropdown or something for Manual rotation! Probably: {Left, Right, 180} or… a button Rotate 90 CW that when clicking, rotates the preview 90 degrees, clockwise. I kind of like that idea… super simple. To rotate “left”, the user would quickly learn that 3 quick clicks is quite fast.
  5. White Space: I think I need a little more white-space between the different sections.
  6. Functionality!
  7. Camera’s dying? Oh noes! I love my Canon IXY 400, but I’ve recently been getting a very ominous Memory Card Error message, more frequently. It worries me.

Aside from these things, I think I’m pretty satisfied with the current UI.

Still a tiny app, and still lots of things to do! 😀


$ cat photofile.py | wc -l
792
$ cat photofile.py | grep FIXME | wc -l
25

GThumb has mangled my photos

For quite a long time, I’ve primarily been using GThumb to manage my photos. It’s fast, did approximately what I needed it to do and had this great “Apply physical transformation” checkbox on the Rotate tool.

GThumb’s Rotate Images Tool

GThumb’s Rotate Images Tool

What this did, was look at the Orientation information in the photo (as recorded by some cameras) and try to automatically rotate the photo correctly. For the most part it seemed to work great. Sometimes, they didn’t display correctly in other software, and I thought that was the other software’s fault – worked fine in GThumb.

However, as I’m now writing a tool that does similar things, I’m discovering that the fault was actually GThumb’s. After rotating the photo, GThumb did not update the photo’s orientation information. This caused all other applications (Eye of Gnome, Nautilus – website out of date!, etc) that correctly read this information, to display the image rotated incorrectly. In subsequent versions, a feature was added to counter this: Tools->Reset Exif Information. Applying this tool to the affected photos would solve the problem, but seeing which photos are affected is NOT intuitive. Hopefully, PhotoFile will make this easier with a clear UI.

The Rotate tool in GThumb now correctly adjusts the photo’s orientation information after rotating it. Some of the discussion regarding the bug is … amusing.

touch PhotoFile

So I’m going with the name PhotoFile for my new project. Clever, I know. Actually, not sure what exists out there already, like this or with a similar name. A quick google search didn’t reveal much. Either way, I’m sure nothing exists that is quite so perfect for ME (I’m incredibly selfish), and I think this will be a good learning experience, so I plan on getting it to a reasonably usable state, at least.

PhotoFile - so early it doesn’t have version numbers yet!

I liked the original left-to-rightness, as it visually led the user through the workflow; and that’s how I originally envisioned it. But the whole thing was getting too wide. So I’ve updated the GUI a bit (not final by any means) and I think this is looking better, for now. Open to ideas/suggestions, of course.

Since last upate, I’ve done some (much needed) code refactoring and cleaning up, added minimal Exif support using EXIF.py, and some GUI modifications (file list frame is resizable, added the filename below the thumbnails, moved the Original thumb above the Preview thumb). Most of it is still just GUI stuff and it’s not functional, but it’s getting to a point where I will easily be able to make a few things functional.


$ cat photofile.py | wc -l
470
$ cat photofile.py | grep FIXME | wc -l
24

It’s still just a wee little program. 🙂

Pidgin 2.1 UI Ideas

Quite a lot of UI modifications have been made to Pidgin since 2.0, in a relatively short time. I’m happy to say, it’s gradually getting better. The window has a minimum size which prevents UI elements from being cut off, the text formatting has been collected into a drop-down menu, and it generally looks much cleaner.

I’ve been lurking on the pidgin-devel list keen on UI discussion, as I think it’s an area where pidgin can improve greatly. I spent an admittedly long time in The Gimp illustrating a couple UI ideas in the form of mockups.

First, this is the target conversation window mockup, done by Hylke Bons.

Now, this is what the conversation window currently looks like (minus the comments, of course).

I’ve basically modified the target UI slightly.

Full-size user avatar

default

It’s nice to see the avatar how it’s meant to be seen. It makes the conversation more unique for each individual. I think the vertical space will eventually be needed as pidgin implements more protocol features, anyway. Some people complain that too much space is occupied by such an infopane, but a button which toggles full-display and no-display (or small-display) could easily be implemented. I was thinking you could just double-click a tab, but when I tried it to see if that did anything, it let me give my contact an alias within the tab! Feature discovery! heh.

Selectable text

Something that has always irritated me with nearly every modal window: why not make text selectable? I can’t think of any reason why not to do it. It doesn’t change the UI at all, and will make it more useful to those copy-paste users – there’s a lot of them. (Get user info – which is terribly delayed, and fails often – should only be needed when the user wants to select information that is not displayed right in front of them.)

selectable text

Clickable links

Any email links should behave like a mailto: link, displaying a menu with the options of writing an email to that address or simply copying the email address. The same should be done for links inside the chat window, “open in browser” and “copy link location.”

clickable email links!

Protocols

Pidgin handles many different protocols: MSN, Yahoo!, ICQ, IRC, etc. The idea is that you can use a single IM client to communicate to all of your friends. Many people use multiple protocols for whatever reason (some of my friends are on MSN, the rest on gChat, a couple on ICQ). But really, having a bunch of accounts for the same person cluttering your contact list does more harm than good. A good way to overcome this is to use the “Expand” item in the contact list context menu: right click on a contact, and select Expand in the context menu, then drag all this person’s different accounts into this expanded contact. When in a conversation window, you can change the active protocol used to chat with your friend by using the Send to menu item. But the problem is, you have to go up and check the menu to see what the active protocol is.

super-useful protocol button!

The entire Send to menu can be replaced by a protocol button in the infopane that acts as both the protocol indicator and selector. The space to the right of the protocol button can be used for protocol specific functionality, as they become available (video, voice, whiteboard, etc). Using the button to change the active protocol could change the available actions to the right of it.

Tab size

A lot of discussion/debate/flame is going on with the purpose of reducing tab-size (removing the status, and close icons). Personally, I think the status icon in the tab is very useful for seeing the status of the people you have open conversations with and should not be removed. If you have 10+ conversations open, you can always right-click on a tab and get a nice list. Sean Egan (the lead developer) jokingly put forward the idea of having the conversation tabs on the side, which actually doesn’t look bad. Maybe the format-bar and info pane would have to go on the right of the chat window… not sure how that would work.

Update Aug 5th

  • First of all, if you want the developers to hear your thoughts on this issue, you should discuss it on the pidgin-devel mailing list. If you just want to follow any discussion from the list, you can browse the archives.
  • I noticed this post has been dugg.
  • After a little feedback on the mailing-list, I’ve got another mockup. I’ve added a dropdown indicator to the button when the active conversation-buddy has more than one contact, and put example contact lists for clarity.

    Further illustrating the protocol button next to the contact list.

Update Aug 14th

It’s true. Pidgin doesn’t have a Send button. I had no idea this bothered some people, but I guess it could be made more obvious.

Greyed out text telling the user how to send a message.

Import Photos Script

I used to use a script to copy my files from my digital camera memory card to my computer. Since recent Ubuntu releases use gnome-volume-manager to automatically prompt you with a Photo Import dialog when you insert your memory card, I never bothered using my script.

Photo Card Detected

If it was just a memory card over USB (as opposed to a digital camera over USB), then all this would do is open the memory card’s DCIM folder in gthumb and you would have to manually copy the files over. This has irritated me for a while, because I wanted the process to be as automated as possible. So… I spent most of the night battling Bash and playing with Zenity to create a new script. Behold!

Once installed, after you click Import Photos, you should get this screen to select the destination forlder.

Select Destination

Once you’ve done that, it should jump straight to copying the files.

Copying Files...

When it’s finished, it will ask you if you want to browse the fresh files with your favourite photo program, which you set in the script.

Browse new photos?

Clicking OK will open the destination directory in your program of choice (gthumb, by default). Clicking Cancel will put a notification in the notification area with a bubble saying where the photos were copied to.

That’s it!

My old script also used jhead to rename the files according to date in the EXIF data, but I didn’t want to create a dependency on jhead. Maybe I’ll add that later, as an option.

Installation…

…couldn’t be simpler.

  1. Download the script to a sensible place. (I use ~/bin)
  2. Make sure you have executable permissions on it.
    chmod +x import-photos

  3. Go to gnome-volume-properties and change the command for Digital Camera from
    gnome-volume-manager-gthumb %h
    to the path to the import-photos script with the same parameter
    ~/bin/import-photos %h
    gnome-volume-properties

    In Ubuntu, you can access this window with:
    System > Preferences > Removable Drives and Media
    :
    uh oh.  I notice a typo!

  4. You should be done. 🙂

Guess I’d better study for my math midterm, now. 🙁

Update (2006/06/06):

Looks like this issue (lack of USB mass storage support in gphoto2) can be resolved simply by using bleeding-edge libgphoto2 package in Dapper. *gasp!* Davyd has built some packages and reports success. (Too bad I read his entry after writing the script….) Actually, I’m not sure I won’t continue using this script; it has some advantages. Maybe.

The first thing I want to do with pictures on my memory card is get them off of the memory card! I don’t need to see them, I’ll browse and edit them locally – it’s faster. The script currently copies all .jpg, .avi, .mov, and .mpg files found in the DCIM folder (and subfolders). As soon as the script has finished, I can unmount my memory card and plug it back into my camera, where it belongs. I don’t have to copy movie files in a seperate step. I will definitely try out the packages when I get a bit of time, though, because I honestly don’t know what I’m missing. Does it gphoto2 copy .avi files?

Regardless, it was a good experience writing it. 🙂