It’s been more than 6 months that I do not write in this space. Honestly, that’s the longest period of silence I’ve ever had.
There are various factors that, combined, ended up causing this period of seclusion. Learning about new, massive projects (GNOME Shell, Mutter and GNOME Settings) is one of them. Moving to a new home and marriage is another.
After finishing Masters last year, I have spent the time working with Endless full-time, and dedicating myself to parallel projects, such as Japanese language, music, gardening, and martial arts. It’s being wonderful, but that somehow distracted me from communicating changes to the community.
And for that, my apologies.
I’ll publish a series of blog posts talking about various GNOME-related activities that I’ve been involved since the last update. Hopefully they will be interesting enough.
Nesse sábado, dia 15 / abril, teremos uma festinha de lançamento do GNOME 3.24! Sei que está um pouco atrasado, mas é melhor ter uma festa do que nenhuma 🙂
O local:Taverna Medieval, na Vila Mariana. Além de ser um lugar muito divertido (poucos lugares tem hamburgeres chamados e.g. Elfo da Floresta, ou Skyrim) , lá tem opções vegetarianas e veganas – ninguém fica de fora da celebração!
Se você quiser participar: comente aqui e me mande um email (georges.stavracas at gmail.com) com seu nome, para que possamos reservar a mesa com antecedência. Teremos um limite de até 20 pessoas, dado que o lugar não é muito grande.
Se você não puder participar, mas conhecer alguém que possa se interessar, compartilhe a informação 🙂
This Saturday, April 15th, we’re having a GNOME 3.24 Release Party in São Paulo! I know, I know, we’re late, but better late then never 🙂
The place: Medieval Tavern, at Vila Mariana. Not only it’s very funny and cool (few places have burgers called e.g. Elf of the Woods, or Skyrim in Brazil) but it also has strict and ovolacto vegetarian options – nobody will miss the celebration!
If you’re attending: drop a comment here and send me an email (georges.stavracas at gmail.com) with your name, so we can book a table in advance. There is a 20-person limit, since the place isn’t that big.
If you can’t attend, but know someone who might be interested in, share the news 🙂
These days, an online magazine I follow wrote about a topic I love researching. I saw some fallacious, poisonous comments and inadvertedly tried to reason with the individual that wrote those things.
Worst thing I could possibly have done.
Of course it didn’t work out. Of course the individual tried to use every single mean she or he had to make me feel bad, to make me think I’m worthless, my arguments are a piece of crap, I’m a stupid teenager trying to reason with a god-like creature that she or he is.
That made me think about how we usually run conversations through internet. Because I work with GNOME, a thick skin naturally grew. I eventually have people yelling me “y u keep breaking stuff?” or “stop making this piece of crap” or even “ur product is bad, u offend me by releasing it” (and yes, they’re all real comments). After some time, this kind of thing becomes just background noise which we have to work with every day. I can only think that other contributors faced the same kind of top-notch treatment.
It makes me wonder how did we get in this rotten state where people try to push you down for nothing but a few seconds of selfish, ego-driven pleasure.
Is there anything I can do, right here and right now, to improve this situation? How can I encourage people to have non-violent conversations? How can I create meaningful dialogs in this chaotic place where people exchange bad words as part of their routines?
Extending this to the GNOME community, what can I do individually to make our community an even warmer place where people can develop themselves and find use for their skills? What can I do to make our community the role model of how a tech community should be?
A few minutes before finishing my sponsorship email, I received a very annoying and sad news: my University appearently decided – without even asking my schedule – that I’ll make a presentation between August 14-18, otherwise they’ll kick me out.
I was already looking for paçocas (if you’re not aware, they may be the best brazilian popular sweet ever made) and gathering some money to pay out my beer debts with all the great people out there.
One of the most intuitive ways to interact with an application is reproducing what we do in real life. Applications try to shorten the learning curve by using metaphores of real world objects.
We all know what GNOME Calendar is: a virtual calendar application. As such, using real-life calendars as a reference for it’s UI is mostly a good thing, except that we’d probably have an annoying time moving events around. In this regard, technology can improve what we do.
And that’s why GNOME Calendar now supports dragging and dropping events around.
Aaand… our traditional video:
Oh, did you noticed? Year view is much improved thanks to the awsome work of Isaque, who proved himself an amazing contributor and a good friend. And don’t forget, this summer we have an intern, Vamsi, working on the long wanted Week View.Calendar, just like Nautilus, is in it’s best moment.
I’m starting a small series of posts describing a general how-to on writing plugins for GNOME To Do. The good news: GNOME To Do has a very small API and it’s very easy to build plugins.
Note: I’ll show examples in Python 3, since this might lower the barrier for contributors and it’s a language that I know (and LibPeas supports). If you don’t know what LibPeas is, click here.
A Brief Explanation
Before jumping into code, let’s talk about the internals. GNOME To Do allows developers to extend it in 3 ways: adding UI elements, adding new panels and implementing new data sources.
A data source is pretty much anything that can feed GNOME To Do with data. For example, Evolution-Data-Server is a data source (the default and omnipresent one). A panel is a view displayed by the main window. See below:
Every plugin has a single entry point: GtdActivatable. Plugins must provide an implementation of this interface. I’ll write more about this interface below.
As explained, the entry point of the plugin is GtdActivatable, which will provide the data sources and UI widgets. The definition of this interface can be found here. The following methods should be implemented:
activate: called after the plugin is loaded and everything is set up.
deactivate: called after the plugins is unloaded and all the registered data sources and UI elements are removed.
get_header_widgets: retrieves a list of widgets, usually buttons, to be added to the headerbar. This can be the hook point for your functionality, for example.
get_preferences_panel: if your plugin needs further configuration, you can pass the preferences panel through this method.
get_panels: retrieve the list of panels of the plugin. A dedicated blog post will be written about it in the near future.
get_providers: retrieves the list of data sources your plugin may provide. GtdProvider is the interface a data source should implement. A dedicated blog post will be written about it in the nearby future.
The next posts will be about the various ways to add functionalities to GNOME To Do. Also, the next posts will demonstrate plugins through examples of various kinds. Stay tuned!
Aye, folks! Some time ago, we had some movement regarding the News app. It was so. freaking. cool! Finally a good alternative of the now-dead Google Reader. Time has passed and, with my heart bleeding in sadness, we saw no further development of it.
Following my bad habit of necromancy, I managed to dedicate my whole weekend to work on it. All the work is pushed to a branch – since I’m not the maintainer, I obviously didn’t do it on master branch. The results are exciting.
GNOME News had an implementation of search in it’s engine, but exposed no UI to do that. Well, not anymore:
Following the mockups, GNOME News had a non-working implementation of Starred News. It works now:
Like all GNOME apps, News now has improved feedback when no feeds/starred news/search results are displayed. Check this out:
Now it’s at least in a usable state (well, usable for my needs). Tracker is the data backend for News, takes care of automagically update the feeds. I hope this work is good enought to be merged on master, so everyone can easily test 🙂
Do you have any ideas or suggestions? Don’t hesitate to comment!
Aye folks! This was a very productive cycle for GNOME Calendar, and this release is the result of a hardworked cycle. First of all, the bad news: no DnD support, no Week View, no, no, no!
But why, Mr. Feaneron?
The reason is simple. Sanity.
Behind the scenes
GNOME Calendar is build on top of Evolution-Data-Server, so we don’t need to write an entirely new backend and to guarantee system integration (GNOME Shell uses it to fetch events, for example).
The problem is that EDS is an “[…] unholy mess“, and it reflects on Calendar. No matter how skilled are the engineers behind it, Calendar was reaching a point of messy code. No one likes messy code – it makes newcomers run away, maintainers avoid improvements out of fear of breaking the app, the app dies, no one’s happy.
The good thing is that we’ll be able to avoid commits like this and this, and after reworking the internals, fixing long-term, hard bugs was a piece of cake. From now on, Calendar is going the right way (IMHO) and we’ll avoid messy code and obscure paths.
Now, let’s go to the cool things.
An Improved Quick Add Popover
Following the recent trend of “Popovers Everywhere! TM”, the quick add popover just got better. Now, the user can select in which calendar the event will be added without having exit the popover. Long-term plans include adding natural language support, so we’ll be able to extract the location, start & end dates from the event summary.
Implementing this popover was a delight after the new rework.
Year View, Restyled
Thanks to the new contributor IsaqueGaldino, the year view receive some improvements that made it look so much better! And appearently, he won’t stop soon. Check this out:
Thanks, Isaque! I hope you keep up with your really good work.
Keyboard Shortcuts Window
Last but not least, the brand new shortcuts window:
And, as the tradition dictates, a cool video of the new version:
A Public Request
Since Calendar received such a major overhaul in it’s gears, I need to make sure it is stable and good enought. So I hereby request that, whoever has the chance, please test Calendar. Thanks!
Any ideas, comments or suggestions? Leave a comment below!
Some of you may have asked why I’m so silent for the last 3 weeks. Well, the titles pretty much explain things: between university duties, moving to a new house and conducting my research, I’m also joining Endless!
I’m ridiculously happy with this opportunity, and Endless folks were extremely respectful of my schedule – I’m working remotely, and only as a part-time intern. This is a great chance for me to work with FOSS on something that directly changes people’s lives!
So, wait for 2 more weeks so I can settle again, and I’ll start sending patches and crafting new features on rampage – like the good ol’ times.