Renommer un périphérique audio avec PulseAudio

J’ai découvert par hasard qu’on peut faire un clic droit sur le “profil” d’un périphérique dans pavucontrol pour renommer le périphérique. Or, cette fonctionnalité n’est pas disponible par défaut puisqu’il faut un module supplémentaire (sous Fedora, du moins). Pour faire un essai en temps réel:

$ pactl load-module module-device-manager

Continue reading “Renommer un périphérique audio avec PulseAudio”

Taking down my online portfolio

Cleaning up my apartment today, hoping to get rid of a pile of draft papers that has been cluttering my space for six months, I’m taking the opportunity to write about what this particular pile of paper means (yes, my blogging backlog goes that far—I am draining the swamp one post at a time!)

Pictured: my floor, littered with intermediate drafts of my new portfolio, along with a few printer calibration photos (upper-left) and a copy of the new Annual Report sitting around

Continue reading “Taking down my online portfolio”

GSoC 2014 projects for Pitivi: transformation, chroma keying, image sequences

Thanks to GNOME, we will be able to get some reinforcements for Pitivi this summer.

We’re very pleased to have Lubosz Sarnecki making a comeback! In 2011 he implemented the cairo-based clip transformation (zoom/resize/crop) feature in the viewer. Lubosz is quite experienced with OpenGL, Blender and GStreamer, as you can see on his blog  and the variety of projects he contributes to.

lubosz working on the transformation UI in 2011
Lubosz working on Pitivi at the 2011 Desktop Summit

Continue reading “GSoC 2014 projects for Pitivi: transformation, chroma keying, image sequences”

How do you visually represent a project’s timeline?

Here is a fun example to illustrate why software development in general is a complex endeavour:

  1. You think you’re going to fix a tiny problem: “hey, maybe we could make ‘s welcome dialog look a bit nicer“.
  2. Eventually, someone proposes a design or idea that looks interesting, and you realize that to truly realize it, you should also implement an audacious new feature: a way to visually represent an entire timeline as a thumbnail (that one is an open question, by the way; if you have some clever ideas, feel free to share them)
  3. …and to display new feature B properly, you should also consider—ideally—being a good citizen and implementing feature C upstream, in the toolkit you use instead of doing your own thing in your corner.

This kind of serendipity and interdependence happens regularly in FLOSS applications like Pitivi where we prioritize quality over “meeting shareholders’ deadlines and objectives”, which is why we sometimes take more time to flesh out a solution to a problem: we aim for the best user experience possible, all while negotiating and working with the greater software ecosystem we live in, instead of silently piling up hacks in our application… and we depend on the involvement of everyone for things to progress.

Pitivi status update for Q1 2014, fundraiser launch

Since my previous technical update in January, I haven’t had time to touch Pitivi’s code. Thankfully though, Alexandru Băluț has been filling the gap with a ton of refactoring work: around 150 commits! That took a fair amount of time to review and merge, believe me. Besides code cleanup, he also finished the port of the viewer to a cluttersink, fixed fonts and theme colors detection for the timeline (so it looks fine even if you’re not using the Adwaita GNOME theme).

Alexandru took the opportunity to not only fix some bugs, but also do some visual refinements on the timeline ruler: it now shows hours and miliseconds only when needed (depending on the zoom level) and subtly grays out units that did not change from one “tick” to another, so your eyes can focus on what actually changed:

Continue reading “Pitivi status update for Q1 2014, fundraiser launch”

Fix it thrice

Some of you may be familiar with the good old “fix it twice” adage: fix the problem and then ensure it never happens again.

Last year, when I made Pitivi’s automatic backup feature work, I requested someone to write extensive automated tests for it (with Dogtail), so that I could feel confident about this feature never being broken again, even if it underwent massive refactoring or if everything else changed around it.

Continue reading “Fix it thrice”

No more stuck rendering dialogs!

If you’ve tried rendering projects with Pitivi 0.15 or older, chances are you’ve encountered one of these dreadful situations where the rendering process would get stuck:

  • …at the beginning, with the progressbar saying it’s currently “estimating” — which was a lie that I corrected a little while ago.
  • …at the very end. Extra trolling points for having made you waste a huge amount of time to get a 0 bytes output file (if we’re lucky, that bug is gone).
  • …somewhere in the middle, because caps negotiation failed, some elements were not linked, GStreamer thinks you ran out of available RAM, or because you’ve been very naughty.

Continue reading “No more stuck rendering dialogs!”

A program’s obsolescence

In 2005, I had a crazy idea upon which I started the Specto project. Initially, I thought I’d call my revolutionary piece of software WhileYouWereOut (continuing the world’s tradition of ill-chosen project names), because it really was about solving a core “want” in my life: to leave my computer alone and catch up with events when I’d come back in front of it.

The core feature was to watch webpages for updates: back then, I did not know about syndication feeds, and I was sick of refreshing every single day hoping for a release of the peer-to-peer version of iFolder (for which we still have no equivalent today).

Continue reading “A program’s obsolescence”

Persistent tab states, render UX polish and other things

With some help from luisbg, I finally reworked and merged a 2-years-old patch of mine. It turned out to be less trivial than expected, because we had to change the settings backend to allow loading/reading configuration files at runtime for our dynamically-generated tab components. So, what the heck does this mean to you? Automatically saving and restoring the state of our dynamic detachable tabs/components. This is a nice improvement for those of you who want to spread the PiTiVi UI across multiple displays:

In this screenshot, I used a gray gradient as a my desktop wallpaper (for simplicity)

Continue reading “Persistent tab states, render UX polish and other things”

How do you visualize grouping?

Here’s a tricky usability question: how would you represent the actions of grouping and ungrouping clips on a timeline? (Un)grouping is used for changing the way selections affect a set of clips. It allows you, among other things, to separate and remove the audio from the video of a clip.

It is very hard to find any relevant prior art that could guide me for this metaphor (most applications don’t have icons for these, they are only available through menu items). Inkscape can get away with icons that show “drag handles”, but we don’t have those in Pitivi. (un)grouping is quite an abstract concept, given that it does not visually change the clips in any way, it just changes the way they react to selections.

Continue reading “How do you visualize grouping?”

Restoring from backups

I’m currently in Málaga for the GStreamer hackfest. Hopefully, many bugs will perish. In the meantime, here’s a quick status update of stuff I’ve been doing in recent times in Pitivi.

  • Cleanup the code for gtk actions so that the code is more readable and robust, fixing 629208 in the process.
  • Cleanup the menus (again).
  • Avoid having the viewer eating the CPU while idle.
  • Fix various problems such as “Select unused clips” not working in treeview mode or reimplement removing all timeline instances of a clip when removing it from the media library.
  • With the help of Brian Grohe, merge and delete spam user accounts on the wiki. I only have to fix image uploads and the https certificate issue now.
  • Start fixing 629855; see below for details.

Continue reading “Restoring from backups”

Naming schemes

A question has been bugging me for some time: what’s the reasoning behind the dconf hierarchy/naming scheme as can be seen in dconf-editor?

org.gnome.*, org.gtk.*, ca.desrt.*, org.freedesktop.* … okay, I get that those are meant to look like reversed URLs, that part makes sense… but not as much when you have desktop.gnome.*, desktop.gstreamer.*, apps.*, a11y.*

Continue reading “Naming schemes”

Pitivi’s startup time

So, since it seems everybody’s been talking about startup time these days, I’ll admit I tend to secretly obsess over that too. Well, it’s not so secret given that I’ve blogged about profiling work on Specto and PiTiVi before… anyway.

I believe you should provide your developers with the fastest computers to do the development, and five years old computers to do the testing. I therefore do my benchmarks on three computers: Continue reading “Pitivi’s startup time”

Improving GNOME PackageKit on big screens

In the same vein as my don’t make me scroll post, I sent a couple of patches Richardwards to, among other things, solve one of the biggest itches I had with gpk: the fact that I had to care about sizing it up constantly on my 1920×1200 24″ monitor. Before, if you started gpk-application (or the update manager, or various other windows), it showed up like this:

Continue reading “Improving GNOME PackageKit on big screens”

Various performance and usability improvements in PiTiVi

I have been attending the Desktop Summit since the opening on Saturday, and it’s been a great experience reconnecting with familiar faces and meeting new ones. Tomorrow, the PiTiVi and GES hackfest officially begins, in room “1.308/2” (the building is at 24 Dorotheen Straße). Come join us at any time of the day (and since we’re slightly insane, we might also end up continuing hacking during the evenings too). This lasts until Friday.

Although the hackfest officially starts tomorrow, we obviously could not resist the temptation to get started in the past two days.

Continue reading “Various performance and usability improvements in PiTiVi”

Evolution’s calendar: looking for love

It just occured to me that since I’m on Planet GNOME, I can shamelessly bribe people into fixing bugs in exchange for beer and cheese and whatnot. Wanna get drunk at the Desktop Summit this year? Then please fix these trivial-yet-infuriating usability issues that have been preventing me from using Evolution‘s calendar for years:

Continue reading “Evolution’s calendar: looking for love”