All posts by Bastian Ilso Hougaard

GNOME’s newcomer guide is improving

Me, Carlos and others has been working on improving the newcomer experience. GNOME is a 15 years old project. Our community conventions and infrastructure which newcomers have to learn all bear signs of this. Over time such project in the size of GNOME build up vast amount of information, historial baggage and complex navigation structure. To me this is all a natural healthy sign of a large project swiftly advancing the Linux desktop.

However, this creates a high barrier of entry for outsiders and ultimately new contributors are necessary to keep GNOME sustainable. The newcomer experience effort aims to simplify the complex navigation, concentrate the information and remove historical baggage. Ideally this effort should spread to every type of contributor, but for now I am focusing on developers.

frontpage

Introducing Newcomers Guide

In the spirit of simplification, the GNOME Love effort have been renamed to the Newcomers effort. The effort does what it says on the tin. All documentation has been moved from /GnomeLove/ to /Newcomers/ on the GNOME wiki and the IRC channel for newcomers is #newcomers. It is also planned that the “gnome-love” tag should change “newcomers”.

Furthermore the GnomeLove documentation has been restructured. Getting started contributing has been divided into 4 steps: Choose a project, Build the project, Solve a task, Send a patch. The simplicity here is very necessary. Human attention space is small and simplicity makes a large project like GNOME less intimidating.

newcomer-friendly-projects

The first step, Choose a project is a revamped page of the previous project/mentor list. This section presents a small list of projects that newcomers can get involved with. It is important to realize that not all GNOME projects are newcomer-friendly, which is very natural. Ideally a project should only be listed here if it is actively maintained. Concretely by “actively maintained” I mean:

  • The project has at least one mentor who help newcomers in #newcomers and the project chatroom.
  • The project’s wiki page is welcoming and presents the information you need.
  • The project’s bug tracker contains newcomer bugs, so newcomers can find tasks easily.
  • The project can is easily buildable.

Currently the section lists 10 projects. The plan is to review the infrastructure of each of these projects and ensure the list is kept concise.

solving-task

After choosing the page, the newcomers are led onto the second step: Building the project. This is our newcomer JHbuild guide. Then the third Step, Solve a task, is a completely new page aiming to describe a general workflow when solving bugs in a GNOME project. The page also introduces the developer tools we use in GNOME.

solving-task

Finally the 4th step, Submit the patch, introduces GNOME’s use of Git and how to submit patches to a bug on GNOME’s bugzilla.

What’s up next

With the 4 described steps above, the core of /Newcomers/ is now in place for the new developer experience. The plan is to actively maintain this core and continue to concentrate its contents.

The next immediate step is to look at external links which the Newcomers guide link to. GNOME Developer Center in particular needs a serious refresh. For now, instead of designing the ideal, I started making practical mockups for revamping GNOME Developer Center, reusing as much existing infrastructure as much as possible.

revampthumb

This seemed plausible to me, but they might not be as easily achievable as I hoped. However Frederic Peters is looking into making library-web which GNOME Developer Center is generated from, Django based.

Another item on my wishlist is the ability to build and develop applications without all the dependency mess. Most newcomers get stuck at step 2, Build the project. My own hope is that XDG-app, an SDK and Builder can help us on the way here. It would also be great if we could spread the effort to cover Documentation, Design, etc but for now I’ll be focusing my own efforts into the developer experience.

Feel free to join the efforts, fx by coordinating with me or csoriano at #newcomers. There’s always newcomers visiting and there’s plenty of external documentation we need to revise. By participating you’re ensuring GNOME’s future.

Polari 3.18.1

Polari 3.18.1 also commonly known as “It’s Yoghurt. It’s French” was released recently and I wanted in that relation to cover the latest whereabouts in Polari.

image-of-polari.-3.18.1

To ensure that we can use a paste service which is distro-agnostic, GNOME’s sysadmin team has launch paste.gnome.org which is based on Sticky Notes. Polari will paste to this service if you attempt to paste more than 5 lines of text into the chat entry.

gnome-pastebin

We have had awesome help from new contributors: Cody Welsh, Kunaal Jain and Jurijs KolomijecS have in total fixed 5 bugs. It’s really awesome to see some new nicks in #polari!

It would please Allan and Andrea to hear that it is no longer possible to ping them when writing words like “nowadays” or “average”. Polari tries to be more strict when to ping you and will avoid such situations now. Other bugfixes include:

  • Private messaging people with capital lettes in their name no longer creates duplicate entries in the sidebar.
  • The roomlist header now higlights on hover if it is sensitive.
  • When a connection is renamed the roomlist is resorted.
  • The join dialog now assumes you wish to join a room on the currently active server of the room in the chatview.

We will soon enter GNOME 3.19 territory and I do plan to get as much of my useful GSoC work landed as possible. At the moment I’m entertaining myself more with some design work which hopefully can make some interesting projects in the future.

The release video of Gothenburg

GNOME 3.18 is out, it’s so exciting! Let’s have a look at the release video:

YouTube Preview Image

It has been an interesting process and a tad more difficult this cycle. Initial thoughts were laid into the video back in July but I have been doing the bulk of the work in September as can be seen from the rough activity schedule below. This is not really optimal of course – in comparison my activity on the GNOME 3.16 release video was much more scattered.

time-spent A total of 22 days spent on the GNOME 3.18 release video.

The main reason for the dense September activity was due to the fact that I was focusing on wrapping up my Google Summer of Code internship on Polari during most of August. Another part of the reason was that I faced some interesting challenges of recording the new features in 3.18 which I had not anticipated.

First, to record the new automatic brightness feature in GNOME, I needed to get hold of an ambient light sensor. Second I had some trouble recording the firmware update system. Fortunately, in both cases Richard Hughes was there to the rescue. :)

ambient-light-sensor Richard lended me an ambient light sensor and helped me by fixing bugs and providing rawhide builds for fwdmgr.

Another interesting challenge I faced was that the Chromebook Pixel I am gratefully borrowing from GNOME Foundation had trouble keeping a decent framerate (24fps) under GNOME 3.18. Then I found xrandr – which means I can now use screen record in hi-dpi using any type of monitor. Furthermore, I got help from Zeeshan Ali, Debarshi Ray and others to record some other features that was hard to come by such as Google Drive support and the list view in Boxes. This was possible because I have made a screen-recorder-tarball providing instructions, which should work on Fedora, Arch Linux and probably any other distro too (you just need to have xrandr installed). Perhaps for the next release video we can have more contributors help with screen recording – if you are up for it, you are very welcome to participate.

IMG_20150908_154716 My office. Left: My big “renderslave” laptop. Middle: My new XPS 13″ connected to a new monitor for editing. Right: Chromebook Pixel setup for screen recording.

The release videos are all made using a free software pipeline. FFMpeg offers me great performance for shooting the latest release of GNOME on Fedora Rawhide. Blender, GIMP and Inkscape gives me the tools to create, animate, composite and edit. And the newest tool to my collection, Syncthing is ensuring that I can work across three computers on the same instantly synchronized files in parallel.

I want to begin having the sources for the release video publicly available. To start out, I have uploaded the *.blend source file for the release video to the Engagement Team’s Assets Owncloud. External assets are not included, but the vector geometry is and so are the animations, should you be curious how they are made. This will make do, until there is a place with 15GB space I can utilize for storage. (:

High fives to the gnome-design-team for providing a vast amount of ressources I can rely on to produce a GNOME video of this quality. Fistbumps to the engagement team for bringing feedback in the process and especially to Karen and Mike for creaating a great voice-over. Hugs to Petr Kovar and the translation teams for making the GNOME 3.18 release video available in 9 different languages. And many sweet lullabies to the hundred of GNOME developers who have contribute their time to making free software amazing.

Code has landed in Polari

Florian pushed a new release Polari not more than two days ago. This is Polari 3.17.90:
polari-3.90-thumb

Error Handling

Polari now indicates the status of each connection next to the connection’s name in the sidebar. If Polari encounters an error, an error icon is displayed. Clicking on the connection in the sidebar, will show a popover with error details and an action which can possibly solve it.

Paste service integration is back

Polari 3.17.90 brings back paste service integration with an improved user interface designed by Allan Day. If more than five lines of text are pasted to the chat, Polari will indicate that the text is going to be uploaded to a public paste service. Pressing enter confirms, Ctrl+Z, Delete, Backspace or Escape cancels.

Misc.
  • The sidebar now sports an improved look by Lapo Calamandrei.
  • The ‘New messages’ line has gotten a more clear design by Allan.
  • A good 16 bugs or so has been fixed since 3.17.3, improving stability and user experience.

Post GUADEC

GUADEC 2015 was a lot of fun, from preparation till the conference happening. I gave a lightning talk on my work on Polari, a talk on GNOME’s release videos and a talk at FOSSGBG on my experience getting started in GNOME.

07-14-15 me-behind-release-videosthumbBehind the Release Videos. Picture by Garrett LeSage (CC-BY-SA 4.0)

I felt joy meeting everyone at the conference, at the picnic, at swedish local restaurants, and at the GNOME games. It was also great to meet with Florian and get some code landed in Polari (more on that soon).

07-14-15 felix-lappy-thumbFelix is landing some code. (CC-BY-SA 4.0)

Hugs to Andreas and Fabiana for letting me stay at their place and for being the initiative to make GUADEC happen in Gothenburg. The conference has ignited an even bigger fire in me for contributing to GNOME.

GUADEC 15: Getting to the venue

GUADEC is getting near so here’s a heads up on how to get to the venue.

map

Folkets hus is a pretty large building, located near the ‘Järntorget’ tram station.

If you stand from that station, It is very likely you will notice the ‘Folkets Hus’ sign on top of a large building.

folkets-hus-big-building

To the left of that, there is a big red peculiar thing, which is the entrance.

peculiar-red-thing

That’s where you get in to the GUADEC venue. The doors open approximately around 9.45 and the first talk starts at 10.

PS: there will be a pre-registration party tomorrow at 18.30 at a The Bishops Arms right across the venue. Everyone are welcome and those who have prepaid and registered can come and collect their badges.

FOSSGBG Event at GUADEC

08-03-15 fossgbg event

During GUADEC’s BoF’s, a meetup at Gothenburg’s local FOSS group will be taking place. They’re called FOSSGBG and the meetup will take place on Tuesday the 11th August from 17:00 to 20:00. Also, the theme of the meetup will be GNOME!

Everyone attending GUADEC are invited and encouraged to attend. The event will include talks by Christian Hergert on Builder and by Michael Catanzaro on HTTPS. I also plan to talk a bit about my experience getting involved in GNOME.

Once the BoFs are over the plan is to meet and walk from the BoF venue over to FOSSGBG’s venue (Ekelundsgatan 4) and be there around 18.30. There will be sandwiches to grab and eat while the event is taking place.

The FOSSGBG event is free, but if you wish to come to the event (and get sandwiches!) you need to register using the link below:

https://www.eventbrite.com/e/hackafton-med-foss-gbg-tickets-17827897722

There is limited space available (~30 attendees top) so I urge you to sign up right away. I also recommend to check out the other social events happening during GUADEC while you’re at it. (:

Error handling in Polari

At the moment Polari will not tell you much more except logging a debug message in the terminal, should you fail to connect to the IRC server.

08-02-15 polari-current-thumb

There is not much actionable to be done from the UI, nor does it really indicate that anything is wrong. So for the last few weeks I have been working on improving the user experience when encountering errors.

My approach so far has been to use a combination of status indicators in the room list and display error notifications. Polari already has an in-app notification system, currently used for displaying Connecting to irc.gnome.org.

connecting-notification-thumb

However, the notifications are not really actionable and could therefore easily be replaced by a status indicator. Connecting to a server is now indicated using the sidebar. Furthermore, the sidebar can indicate the status of connecting to each room, if joining one for example would take more than the usual three seconds. If an error is encountered on joining a server or a room, this can be displayed via the status indicator as well.

08-02-15 polari-status-indicators-thumb

The in-app notification system has been revamped to displaying error notifications instead. If Polari for example is unable to connect to a server because the server address has been misspelled, an error notification is shown when you visit any rooms connected to that server.

08-02-15 polari-unable-to-connect

From the error one can press the ‘edit account’ button to edit the account. In the dialog a detailed error will explain what might have gone wrong and the dialog will highlight the entry you need to edit as well.

08-02-15 edit-account-dialog-error-thumb

Another case could be that you have been banned from a room. Here a ‘Retry’ button is provided so you can try connecting to the room once you’ve solved the problem.

08-02-15 banned-from-nautilus

Finally an error is provided when Polari is unable to establish a safe connection to the server. The user can choose to continue anyway with the awareness that the connection is public, or leave the connection as-is.

08-02-15 not-safe

The error handling branch currently handles around 19 errors associated with joining rooms and connecting to servers. Hopefully the groundwork which this branch provides to have error notifications means that error-handling easily can be expanded in the future when future features land in telepathy or in Polari.

Another digest from Polariland

Polari 3.17.4 is around the corner. For this release, I have worked with Florian to get my work towards a better initial setup experience merged. As can be seen below the design has changed a bit too.

1-thumb

The primary change has been to move away from the installer (anti-)pattern and instead move fully towards a design inspired by the empty-app-states pattern.

empty-state-pattern

In Polari 3.17.4 Florian also fixed a memory bug and a bug with direct messages not showing up until you press the notification in GNOME Shell.

In this digest I also want to briefly mention two more patches I have been working on which likely will land in later releases of Polari:

  • SSL Encryption: When you create a new connection Polari will now try to determine if the server supports SSL and use it unless otherwise specified.
  • Server Entry Validation: When adding a new connection, Polari will validate the server name and display a message if you use characters that are not valid in a server address.

Will I meet you at GUADEC this year? (: