Older blog entries for pbor (starting at number 72)

3.8… clocks, gedit, more…

gnome 3.8 will be out later today, on time as usual, it’s a great incremental release with improvements all over the place, but I’ll let the release notes speak.

For my own part, I put my fingers here and there either making patches or trying to help (annoy?) people doing the real hard work with reviews and suggestions.

Clocks has matured from a prototype to a real app and in this cycle. It turns out that while from the code point of view a clocks app is really a small application (some even think trivial and a waste of resources better spent improving other aspect of gnome) it is actually quite challanging to design and decide how all the small details should work, since the user expectations for such a familiar object are very high. It has also been a good way to experiment with the new design patterns and the new widgets (like the ones in libgd). There are surely many things to improve in the next iteration, a particularly sore point that I am a bit ashamed to not have fixed yet it is the persistence of alarms when the app is not running (or even when the system is suspended), but today’s bug is tomorrows chance to get involved!

clocks-3-8

 The application went through a full rewrite to address many of the issues found in the first implementation. I opted for a rewrite in vala because it is probably the more mature technology if you want to write a GObject based app today and  you are a bit sick of writing C boilerplate, but at the same time you need to pull some tricks to call some C code and libraries without proper introspection support. However I think the choice of the language is a secondary aspect of the rewrite compared to the use of some good practices I tried to adopt in the new code (use of many of the new prototype widgets in libgd, use of .ui files, use of GLib resources, use of GLib based library calls for everything, etc). Clocks is small enough I do not exclude to try a JS rewrite even if just as an exercise to see how the platform is maturing. In this regard I am really excited to see Giovanni’s work on defining a good platform for JS apps… I have some opinions in that regard (also due to the fact that I am back doing quite a bit of JS at work), but that’s probably best saved for another post.

 Gedit has been ported to GtkApplication: from the user point of view this mostly means that when run within gnome-shell you will see an appmenu (while you will get the usual menu when running on a WM that does not support that). However under the hood this meant quite a lot of code to rework: gedit makes use of many exotic features of GtkApplication, like handling stdin (you have now to use cat file.txt | gedit – , note the dash at the end) and support for blocking the terminal in order to be able to use EDITOR=gedit for git commits etc).

We also ported gedit plugin system to use Python 3, in compliance to a gnome wide goal. This has the unfortunate side effect of breaking third party plugins once again, but I think it is a step worth taking in the long term and the sooner the better: if you have to port your plugin you just need to specify “loader=python3″ in the .plugin file and make sure the code is valid python 3, gedit’s API did not change.

gedit-3-8

GtkSourceView has seen lots of work on the completion framework thanks to the Sebastien Wilmet, his blog has all the interesting details.

Baobab saw a few of incremental improvements after the major rework of 3.6, including a classy animation from the summary to the results page thanks to the wonders of libgd. With regard to baobab, if you are looking for a challenging, but relatively small and fun project, it would be great to see someone step up and implement animated charts (Stefano had a prototype) and rework the treemap to use the squarified algorithm… It would probably make for a good GSOC project, though you would have to find a mentor since I do not think to have time to do that this year (unless a really strong and independent candidate shows up).

 

Syndicated 2013-03-20 11:20:45 from Club Silencio

Summer

Summer is almost over, or rather, my summer vacation is almost over. In the last weeks I have been actively working on GNOME like I hadn’t in a long time… Monday I will go back to work, but even if I will not have as much time, I will try to keep my level of involvement as high as possible. This renewed enthusiasm comes largely from one decision: attending GUADEC.

I have been working on GNOME for more or less ten years now, but I attended GUADEC just once before (Stuttgart 2005) and I figured it was time to go again and see if a visit to the self-congratulating echo chamber could renew my interest and motivations… and guess what: it did!

GUADEC was fantastic, the location, the organization, the people, the talks, the food, but you probably heard this many times now…

Discussing implementation details (courtesy of xjuan)

Between a talk and the other I also came to the realization that I needed to work on something fresh and fun, so while in A Coruna I finished the redesign and rewrite of Baobab, GNOME’s disk usage analyzer, that Ryan started last winter.

I am really happy with the result both in terms of the new UI and in the underlying code, which is now written in vala, it is small and clean and makes use of many of the latest GNOME technologies.

Baobab location list

Baobab scan view

Developing small applications is so much fun and so rewarding that it is addictive, so after A Coruna (and after a couple of days getting sunburned enjoying nacho‘s hospitality in the south of Galicia) I decided to help getting gnome-clocks ready: this was even more fun because the work was shared with other current developers and designers, but also with some new contributors.
I just uploaded the first release of Clocks, in time for GNOME 3.5.91.

Mind you, this is a preview release so do not rely on it to wake up for work or to bake your cakes! It has a few know bugs and probably many unknown ones, but it starts to be feature complete and should provide a good starting point to iterate the design process and evolve into a beautiful and enjoyable clock application (well, unless you use the alarm to wake up at 6 AM, not much we can do to make it enjoyable in that case…)

World Clocks

Selecting Alarms

Ringing Alarm

Timer

Does this all mean I am abandoning gedit? No, I still use it daily more than any other application, but it is stable and does what I need it to do… on the other hand I am sure Jesse will come up with some incredible feature and Gustavo has a long secret todo list we reviewed together at GUADEC, so I can relax and just keep complaining about coding style errors while pretending to review patches…

Syndicated 2012-09-01 23:41:16 from Club Silencio

Third time’s the charm

While I was in flight over the Atlantic to come back to the old Europe, the awesome gnome release team finally put out GNOME 3. Not only that, www.gnome.org now sports a fresh new look, but most importantly some great new content.

I am GNOME

I am of the opinion that the primary measure of success of an open source project is its ability to attract and keep contributors and I think in this regard GNOME 3 is already a success. The changes in the UI – even the controversial ones – managed to revitalize a project that was slowly falling in a drowsy routine, refocusing efforts of long-standing contributors and attracting new forces. At the same time the great efforts spent cleaning up the programming platform provide a future-proof foundation which makes contributing easier and more fun. Time to make patches, GNOME 3.2 is right ’round the corner!

Syndicated 2011-04-07 20:51:01 from Club Silencio

gnome3 / cincinnati

Lots of blogs/flames/opinions about gnome3 on the web lately… but as they say, there is no such things as bad publicity.

I’ll keep my opinions for myself for now, first of all because I have not yet used gnome-shell enough to make an informed evaluation, but most importantly because if I write them down here, 3 years from now people will be able to point out how wrong I was ;) [maybe I should link some of the blog posts explaining why the spatial nautilus - which is gone in 3.0 - was such a good idea]

With regard to gedit, I am really happy to see how things are coming along… up to a couple of weeks ago I was a bit worried about the stability of the upcoming release, but thanks to the great work of nacho, nud, jesse, gregier, j1mc (thanks for working on the docs!) and to the prompt support of gtk+ and pygobject developers in fixing reported bugs, I am now back to using the devel version of gedit for day to day work and I am confident that it will be a good release. Besides, now that even the dependency on GConf is gone, gedit will fit perfectly in your XFCE, LXDE or EXDE desktop :-)

Coming to more important matters, this blog post after almost an year was mostly an excuse to say that I should be in Cincinnati for about a week starting from the 25th of March… if there is any gnomer who would like to meet for a beer just let me know!

Syndicated 2011-03-09 21:34:39 from Club Silencio

New logo

New logo, courtesy of Henry Peters.

New gedit logo

As announced by nacho, we have been looking for a new logo for a while. We had many interesting submissions and iterated through a couple of designs, borrowing ideas here and there. Thanks to all those who sent us their work!

Not only the new logo is already committed, but you can even wear it :)

Syndicated 2010-04-07 20:17:36 from Club Silencio

gedit 2.29.5

I just rolled the tarball for the next development release of gedit. This release marks an important milestone, since we completed all the goals we had on our roadmap for 2.30.

In particular this release overhauls the internals of I/O handling in gedit by always using gio for file loading and saving (we only used gio for saving remote files) and by taking advantage of the new data conversion api added by Alex.

For the casual gedit user these changes should be pretty much transparent, since they do not introduce new features except for the ability of forcing different line endings (Window’s CRLF, old MacOS CR and the usual UNIX CR). However since they are affecting one of the most important parts of the gedit codebase we would like to ask anyone running the development version and in particular who uses files with encodings different from UTF-8, to heavily test file loading and saving  and report any problem or regression.

Syndicated 2010-01-25 20:57:18 from Club Silencio

JavaScript in gnome

Being away from home, bored and yet too tired to do something productive, I skimmed through the gnome-shell proposal mail thread on d-d-l and spotted the inevitable debate on the choice of javascript as a scripting language for the shell.

Personally I am not a big fan of js, quite the contrary, but lately I had to use it extensively (though not in gnome related context) and at the end of the day it is a language as any other. I am not saying it would be the one I would have chosen, but once you use it a bit and get to know its idiosyncrasies, you get what you need done and move on with life. After all any programming language sucks, each one in its own special way and some more than others, but they all suck.

Reading in the aforementioned thread the reasons why js was picked I would have been totally satisfied with valid answers like:

  • “It’s my project I and pick whatever language I please”
  • “Some of the more talented and experienced gnome hackers chose it. Trust them”
  • “It is not C++ or perl, so do not complain”

Beside given that javascript

  • has good free implementations
  • is widely used (not only in general, but at this point also by various big gnome projects)

I do not have any major problems with it. After all we have clean and consistent code bases written using GObject C conventions, I do not see why we should not be able to tame js as well.

That said, some of the rationales provided for choosing it in the above mentioned d-d-l thread really really trouble me.

js has no platform libraries, so we can use our own

What kind of reason is that? First of all when you embed another scripting language you are not forced in any way to use its standard libarary as well. Second, having a good standard library (or a large set of third party libraries) is a good thing: I thought we were focusing on implementing good applications instead of reimplementing and maintaining a “gwhatever” library for every problem in the world.

using js will attract web developers

That is plainly naive. First of all I have never hacked on something because it was written in a language, at most I have learned a language because something I wanted to hack on was written in it. Second learning the syntax of a language is nothing compared to learning library API, tools, workflows etc and even if I have not used js in gnome yet, I am pretty sure they differ a lot from what web developers are used to. Last but not least, I’d prefer to attract a single good developer than a hundred people not willing to invest an afternoon in learning a language/api/tool.

Syndicated 2009-11-05 22:33:49 from Club Silencio

London & gedit news

I just got back from a short trip to London, where beside work I also managed to sneak in some sightseeing and enjoy a dinner with Emmanuele and his wife.

In the mean time Jesse - who despite having opened a blogs.gnome.org account, is still slacking when it comes to actually blogging - has been rocking as usual. In the last days he decided to give some much needed attention to the External Tools plugin. As a result all bugs in bugzilla about that plugin are now resolved and new features have been implemented. In particular the plugin now supports language specific tools, which also means that we can ship a larger selection of default tools since they will not clutter your menu as the will appear only when editing a specific kind of files: if you have any good scripts for your favourite language that you think should be included upstream feel free to send them our way.

Beside the work on external tools, we also started to make some other changes that will be part of the next release. We decided to remove the ancient “Open Location” dialog that allowed you to enter an URI: these days you can enter an URI just fine from the standard file chooser and the common opinion among gedit developers was that nobody ever used that dialog. We instead included a Quick Open plugin that allows to quickly open files (or even switch tabs) with very few keypresses:  while you type it looks into different “providers” (currently open files, recent files, current directory, etc) to suggest you the file you are looking for. Since a video is worth thousands words, see for yourself:

gedit quick open

Syndicated 2009-05-24 10:04:20 from Club Silencio

guitar playing on linux

For a change, a post not related to gedit. During the holidays I decided to dust off my electric guitar and have some fun playing. However when I gave up playing some years ago I sold my amplifier, effects and so on and I just kept my Hamer guitar. Since I just want to have some fun playing from time to time, instead of spending lots of money buying all the equipement I just bought a behringer UCG102, a nice small USB device to connect the guitar to the PC.

The device is detected correctly under linux and works great. However when it comes to the software available on linux the situation is not so great… surely not Plug&Play, especially for normal musicians that do not hack the kernel for a living.

First of all there seems to be a total disconnection between the people doing audio on the “desktop” (Pulseaudio, GStreamer, etc) and the applications for musicians, which seems to be mostly tied to the world of Jack. I understand that playing a dvd and professional digital audio recording have different requirements and design tradeoffs, but still, the user experience as of today is pretty bad and it involves manually launching sound daemons and so on. For instance when I try to run pulseadio and jack at the same time as described here, jack hangs.

At the moment, the working setup I have when I want to play, is to kill pulseadio and run jack with qjackctl manually.

Furthermore Jack on its own has its share of problems: leaving alone the UI of qjackctl (read below for even uglier ui issues), my biggest gripe with jack is that it seems to be able to deal with just one device at a time, so I cannot “route” the sound from the usb device to the pc soundcard/speakers/headphones.

Then we get to the applications. What I need the most is some kind of “guitar amplifier emulator” with effects and so on in order to get a nice set of heavy distorsions to play metal, some screaming overdrive to play rock, some elegant chorus to play fusion etc. Ideally this software would expose an “easy” ui where I just can reorder the effects by drag and drop and turn a few knobs to tune my sound.

What I found and which works pretty well is called rakarrack, which is pretty nice and includes some very good preset sounds… however the UI is… how can I say… maybe it’s easier to describe if I show a picture

Rackarrack Main Window

Rakarrack Main Window

I understand that musicians are creative people and that the usual gray UI is boring for them, but isn’t that a bit too much? Also why use fltk when there are nice, widely available, portable and even fancy toolkits that do not look like 1992 and actually take my dpi into account?

Next kind of app I tried are recorders, so far I gave a quick try to jokosher and ardour. Both look really promising. Unfortunately the first at the moment crashes on my system, but the guys in #jokosher have been really helpful and I’ll shortly try it further and report bugs etc; the latter is tad too complicated for me but it looks really professional and advanced. However even if it uses gtk, it suffers from the we-are-too-cool-to-use-the-default-theme sindrome… at least their built in colors are not as bad as rackarrack :)

I know there are a lot guitarists and musicians in gnome and I have been looking at this things just in the last days. Did I miss something obvious?  Are there any beautiful apps I have not yet seen? What do you use daily? Suggestions are more than welcome

Syndicated 2009-01-01 22:35:35 from Club Silencio

gedit on osx

When blogging about the Windows port, I should also have mentioned the thanks to Jesse, gedit trunk also compiles and runs on OSX. Help with the creation of an installable bundle would be warmly appreciated!

gedit on OSX

gedit on OSX

Syndicated 2008-12-28 13:06:40 from Club Silencio

63 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!