Older blog entries for lucasr (starting at number 228)

The Board in the Summer

As you probably know by now, GNOME has been accepted as a mentoring organization in Google’s Summer of Code 2011. Student applications period started yesterday! If you’re a student excited about GNOME, have a look at our wiki page for more information and project ideas! Application period ends on April 8.

This year I decided to mentor one project related to The Board. The idea is to implement a Tracker storage for the app. Using Tracker will allow us to implement smart searches in the app itself and expose The Board’s data to other desktop components.

So, if you’re a student looking for an interesting project to hack on as part of the Summer of Code this year, this is an exciting opportunity to work on a cool app using bleeding edge GNOME technologies (Clutter, GTK+ 3, Gjs, Tracker, etc).

Syndicated 2011-03-29 16:59:24 from lucasr.at.mundo

The Board 0.1.2

It turns out that The Board‘s distro packages were a great success! The PPA package alone has been downloaded more then 330 times in just a week. Not bad for package only available for an unreleased version of Ubuntu. And I’m not even counting the implicit testers using the GNOME 3 live image. I’ve got some useful feedback from early testers and I expect get even more from now on.

I was planning to finish some new major features before releasing 0.1.2, but a serious crash has been reported and I felt I had to respond to it quickly to avoid losing early testers. So, I give you The Board 0.1.2!

Besides the crash fix, this release contains a few nice improvements and bug fixes such as the addition of keyboard shortcuts for aligning and distributing elements on the page, more subtle window dimming when an element is activated, and proper saving when multiple elements are dragged. Major features such as Cheese integration are probably coming as part of the next release.

I’ve already pushed the updates to The Board’s PPA. If you already have it in your sources list, you should get it soon. I expect openSUSE and Fedora packages to be updated soon. If you haven’t tried The Board yet, what are you waiting for? Follow the instructions from my last blog post and start testing a few minutes!

Syndicated 2011-03-28 22:40:04 from lucasr.at.mundo

The Board in Distros

The Board in GNOME 3

So far, testing The Board has been a complicated matter because it involved messing with jhbuild, build dependencies, compilation of a dozen of modules, etc. Those are fine for developers but not really for the people who just want to try the app. Here’s a summary of the progress made on the creation of distro packages for The Board.

Ubuntu. Robert Ancell initially created a PPA for The Board under the GNOME 3 team in Launchpad. Thanks Robert! I then fixed a few remaining build issues on the package and created a separate PPA for The Board. It contains packages for Natty. To install The Board, open a terminal and run:

$ sudo add-apt-repository ppa:the-board-team/dev-snapshots
$ sudo apt-get install the-board

You have to enable Ubuntu’s Universe repository. There are still a few issues with running The Board in Unity—blurred icon on panel, no status icon, etc. I’ll have to talk with the Unity team to know how The Board can be better integrated with Ubuntu’s new UX.

GNOME 3 Live CD. Thanks to the work of Andrew Wafaa, The Board packages are available for openSUSE. Frederic Crozat then integrated Andrew’s packages into the GNOME 3 Live CD. So it’s now easy to try The Board while having a sneak peak on GNOME Shell and other GNOME 3 goodies. As I said before, I’m still unsure on how to nicely integrate the app with GNOME Shell. The use of GTK+ status icon doesn’t really fit GNOME Shell’s UI design.

Fedora. Cosimo Cecchi has created Fedora Rawhide packages which still need to be updated for the latest release and reviewed. It should be available soon, I guess…

All in all, my hope is that those packages will allow more people to try The Board with minimum hassle. Keep in mind that The Board is still under heavy development and is not ready for end-users. For now, I’m looking forward to getting feedback, bug reports, and patches from insightful early testers and developers! For instance, Luc’s 15 minute review is an excellent example of the kind of feedback I’m looking for.

Syndicated 2011-03-22 10:14:59 from lucasr.at.mundo

Selling my cameras

Exposure by Eugene Yurevich (CC-BY-NC-ND)

After some consideration I decided to simplify my photographer life and sell both my DSLR and compact cameras to get one of those simpler yet fancy micro four-thirds cameras. I haven’t decided yet if I’ll get a GF-2 or a E-PL2.

The reason is very simple: even though I have a pretty good DSLR camera, I rarely use it because it’s just too inconvenient to carry it around. It just doesn’t work well for casual photography—at least for me. The reason I bought a compact was simply to have a decent HD video recorder. Anyway, here’s what I’m selling.

Canon 50D with 2 lenses. This is a just over 1-year old body that came with a Canon 17-85mm kit lens. I’m also including my 3-year old 50mm 1.8 lens and a 4GB compact flash. I guess I don’t have to say that this is an excellent DSLR camera, right? Price: £830

Panasonic Lumix TZ7. This is a point-and-shoot camera with an impressive 12x zoom. Definitely one of the best compacts I’ve ever used. Records 720p HD video with fairly good quality. I bought it less than a year ago. Price: £100

Both cameras are in very good shape. No scratches or anything. If you’re interested in buying one of the cameras, please contact me. I’ll give preference to buyers living in UK for practical reasons.

Syndicated 2011-03-19 01:29:59 from lucasr.at.mundo

New Planet Editor

I’ve taken the post of editor of GNOME Planet with Vincent in 2009. Since then, the approval process for new feeds received a couple of important improvements. First, we made the process more transparent by publicly processing all requests in GNOME’s Bugzilla. Secondly, we added clarity to the process by writing down a set of guidelines detailing how requests are processed.

But it’s been some time that I haven’t been dedicating enough time to process new requests. It’s time to pass the ball to someone who will be able to process the requests more promptly while still ensuring the high quality of the aggregated content. So, I hereby announce that Alberto Ruiz is now replacing me as co-editor of Planet GNOME. He has already done a great job in processing existing requests and I am confident that he’ll continue to do so. Welcome Alberto!

Syndicated 2011-03-03 13:37:41 from lucasr.at.mundo

Horizontal Space

Bastien’s latest post about the new GNOME screen panel—which looks generally nice by the way—reminded me of something that bugs me a bit on certain user interfaces with abundance of horizontal space.

In the new screen panel case, the brightness slider widget fills most of the window width. My first impression was “Wow, I’ll have to drag the pointer quite a long distance to adjust brightness”. But this kind of misuse of horizontal space is not so rare in other contexts. You can also see it on MeeGo’s status panel with too wide buttons on top. Or in some Maemo 5 apps, with weird menu buttons filling the whole screen width.

This kind of issue usually happens when the UI has to conform with some broader constraints from the design. For example, the screen panel runs inside GNOME’s System Settings which requires all settings panels to have the same dimensions. MeeGo’s status panel could definitely be less wide but the design seems to require all panels to fill the screen width. All that for good consistency reasons. But you might end up giving more space then the UI actually needs—in which case you probably want to ensure nothing looks odd.

Bad use of horizontal space can be avoided by spending a bit more time getting your UI layout right for the available horizontal space. Adding inconsistency to better cover special cases might be acceptable—if the resulting UI doesn’t have a major negative impact on the user experience.

The examples I gave here are not the end of the world or anything. But they definitely add some unwanted awkwardness to the UI. And, you know, little details matter.

Syndicated 2011-02-16 17:59:00 from lucasr.at.mundo

Animate Wisely

Motion Blur by Patrick Brosset (CC-BY-NC)

I’ve been hacking on rich UIs with animations for a few years—both in the litl OS and in my pet project. There was a time, not too long ago, that doing animations in your web, mobile or desktop app was not so common or convenient to do. You had to mess with weird lower-level APIs or write a lot of cryptic ad hoc code. We just didn’t have nice high-level APIs for animations.

Nowadays fluid UIs with animations are relatively easy to do on pretty much all major platforms out there—jQuery, Clutter, Core Animation, WPF, QML, Tweener, etc. Things like fading, sliding, zooming, rotating, scaling are all just a few of lines of code away. So it’s very easy to fall on the trap of overusing animations just for the sake of eye-candiness. But animations can have a very negative impact on the user experience if not done properly.

Delayed interaction. Using UI animations often means that you’re making your app take more time to go from state A to B. For example, by using this ribbon-like effect on modal dialogs—motion mockup by Jakub Steiner—instead of just popping them up immediately, you’re adding a delay between the user request and the dialog being ready for interaction. The animation in this case is not a bad idea as it helps the user understand the UI and it’s fast enough. But if you consistently delay interaction with animations for no good reason, the UI quickly gets very annoying to use. So, getting the timing of your animations right is very important.

Distraction. When animations are not subtle enough, they cause users to move their attention from the current task to the animation itself. It’s like the UI is saying “Look! I’m animating now!”. Google’s particle similator logo is an extreme example of a distracting animation. Every time you add an animation just because you can or because it’s “cool”, you’re probably just distracting your users.

Confusion. Animations might actually confuse users. One recent example is the Twitter for Mac’s continuous slide out transitions that create a strange sensation of infinite “stacking”. Confusing animations might seed wrong assumptions and uncertainty about how the UI works: “Why does it slide to right again when I click on the previous tab? Am I doing something wrong?”.

Repetition. Certain animations look cool on the first few times you see them but become quite annoying later on. The repetition problem is aggravated when the repetitive animation is also confusing, distracting or delays interaction. For example, the tooltips animation in MeeGo’s Netbook UX is both repetitive and distracting—Intel guys are aware of this issue. Commonly used UI elements should have very subtle or no animations at all.

And I guess there are many other ways animations are just done wrong. Bottom line is: with all the simple ways of filling your UI with all types of animations these days, it’s quite easy to end up overusing them. Resist the temptation! Animations work best when they highlight the underlying mental model of your software and improve UX. Animate wisely.

Syndicated 2011-02-04 23:42:56 from lucasr.at.mundo

The Board 0.1.1

The Board 0.1.1

Here we go again. About a month ago, I made the first-ever release of The Board. Now it’s time to roll a new release with some pretty nice features and bug fixes. So, what’s new in The Board 0.1.1?

It also has a couple of important bug fixes such as 637703 and 637484. Just like 0.1.0, this is not a release for end-users. The Board is currently unstable, buggy, and often loses data. Early testers are more than welcome though—to provide general feedback and report bugs. Distro packages for 3 popular distros (Ubuntu, Fedora, and openSUSE) are coming soon—I will announce them in my blog, don’t worry. That should help early testers get started easily.

Versioning. I decided to use the classic odd-unstable/even-stable style of versioning. This is a common practice in GNOME and should be natural for most contributors in the community. In terms of milestones, this means that you’ll see a bunch of 0.1.x development releases from now on and 0.2.0 will be the first release for end-users. I honestly have no final answer as to when 0.2.0 is going to happen yet.

What’s next. I will be rolling a new development release (0.1.2) in the next few weeks—depends on the amount of spare I end up having. I’ll focus on two things: toolbars and element stacking. I’ll do a second design iteration on the toolbars with focus on scalability. In practice, this means fixing bugs like 636637 and 636634. Element stacking is the final major feature for multiple elements which I ended up moving to 0.1.2. You’ll be able to create stacks of elements in the page. I’m quite excited about this one!

Syndicated 2011-02-01 17:33:51 from lucasr.at.mundo

Micro Commits

Branches by Andrew Storms (CC-BY-SA)

It’s been a few years since I became a full-time git user both at work and in the FLOSS projects I contribute to. I guess there’s no need to argue in favour of git at this point as it has become a sort of given on any sane software project—along with some other DVCS. I can’t really remember anymore how my life with Subversion was. Sad, I guess…

One of my favourite cultural shifts in software development brought by DVCS is the use of micro commits. JP has just blogged about it. Here are what I consider the most useful benefits of micro commits.

Tell a story. When you send one huge patch implementing a feature or fixing a bug, you’re completely hiding the incremental process through which you reached your final solution. On the other hand, a well written series of micro commits tell the reviewers the whole story of your code changes, step by step.

Discipline. If you want to tell a coherent story with your commits, you obviously need to organize them properly. Each commit should be a self-contained step towards the new feature or bug fix. Writing good patch series requires quite a bit of practice. It’s a very good exercise in terms of splitting a complex solution into a well-defined sequence of code changes—leading to more disciplined development practices.

Better code reviews. Because micro commits are, well, small, they are much easier to review because they do only one thing at a time. You get better code reviews as a consequence because the patches tend to contain no unrelated code changes.

Bisect and cherry-pick. Huge commits makes bisect and cherry-pick close to useless. And you don’t want that! Micro commits make it much easier to spot what caused a regression. Plus, they make it very easy to cherry-pick commits from one branch to another.

Git makes it utterly simple to move, split, squash, reorder, and remove commits providing the best ways to write good series of micro commits. It allows you to look like the perfect developer to the outside world by incrementally fixing your commits before submitting your patches for review. If you’re not micro-committing yet, you should.

Syndicated 2011-01-29 02:47:34 from lucasr.at.mundo

Selection in The Board

Selected Elements

Since I started dogfooding The Board on a daily basis, it became clear to me that not having a simple way to arrange multiple elements in the page is quite annoying. If you wanted to arrange multiple elements in a specific area of the page, you’d end up having to move each element separately, one by one. Argh! This is why I decided to focus on an initial set of features targeting this specific issue for the upcoming release.

You can now select, move, align, distribute, and remove multiple elements in a page. Click on the image above to see a video demonstrating the new features. Selection can done in three ways: the usual dragging from background to start selecting a region of the page, Ctrl+clicking on elements, or using Ctrl+A to select all elements in the page.

Once more than one element is selected, a context toolbar slides in presenting all available operations for the selection. I’m following the same obviousness, clarity, and consistency principles I’ve discussed before. The available operations for any app state are always visible and easily accessible. No need to dig around to find out what to do.

As usual, feedback on the design decisions are more than welcome. So, what’s next? I’ll be fixing a few critical bugs and then roll a new release. I’ve been pestering distro guys to create packages for The Board. I’ll hopefully be announcing the next release with links to distro packages.

Syndicated 2011-01-26 02:30:23 from lucasr.at.mundo

219 older entries...

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!