All posts by Bastian Ilso Hougaard

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? (:

irc link handling

Back in 1996 the World Wide Web Consortium made a draft specification for how you can link to an IRC chatroom. The draft does not seem to have developed further, but it is regardless possible to stumble upon these links around the internet now and then. Many other IRC clients support the handling the links too and this week I have enabled Polari to open them.

The links typically take on the following shape:
irc://[server]/[room]

If I wanted to link to the chatroom, the link could look like so:
irc://irc.gnome.org/polari

Polari can open these links regardless of whether it is running or not. Furthermore, if you open a link to a server you haven’t used before, then Polari will ask you to specify a username to use for that connection.

07-05-15 new-connection-thumb

The bug in question is bug Bug 728593. I am keeping a solution to solving it inside the wip/bastianilso/irc-url-parsing branch. However, there’s a few things I am considering before calling the work in this area done:

  • It would be a good idea to show a notification if Polari is unable to parse the irc link.
  • It might be worth to also support corner cases of the irc link specification such URLs targeting nicknames, URLs containing a passphrase and so on.
  • It could be cool to have a “Copy link adress” menu item per room so you can copy/paste a room’s irc link to other people. The menu item could be placed in the room menu and/or in the right-click menu for each channel.
  • It could be cool if we parsed mentions of rooms (fx ) in chats as IRC links you could click or copy/paste.

I’ll be off for a small trip the next four days but will return in the weekend for more polari bug fixing. (:

smarter status hiding

In heavily populated IRC channels such as #debian on Freenode, a lot of idle IRC users are joining and leaving every couple of seconds. At the moment, we display a status message for every user in the room which in some cases results in a lot of visual noise.
06-30-15 visual-noise-thumbanother busy day on #debian. 9 out of 17 messages in the chat view are status messages..

This problem is filed as bug 711542 in GNOME’s bug tracker. I have decided to try addressing this issue with some logic.

The main purpose of status messages is to indicate activity concerning a user, such as the user joining a channel, disconnecting or being renamed. The two primary use cases I see for displaying status messages in the chat view are:

  • ..when a user on a channel is actively participating in a conversation, but then the user’s status suddenly changes. For anyone reading the conversation, it is interesting to know what has happened with the participating users as a change in their status can affect the conversation itself.
  • ..when a channel is idle and no conversation is happening. In this case it is a convenience to display status messages. You might be waiting for someone particular to join the channel for example and thus is checking the channel occasionally to see if the person has joined the room. On the other hand, we also want to avoid flooding the chatView with status messages as it creates more unnecessary extra text to scroll through between conversations in log history.

To adress point one, I have implemented the concept of “active” users and “inactive” users. An active user is any user on the channel who has sent a message to the room within the last X* minutes. If the user is considered active, we allow any status messages related to this user to be displayed in the room.

06-30-15 only-active-users-thumb Only recently active users emit status messages.

So because user Raazeer wrote “jelly, if I’m not back in ten minutes, I’ve destroyed my boot config and won’t be back today”, Polari will allow Raazeer’s status messages to be displayed the next X minutes. As can be seen in the screenshot above, a status message indicated that Raazeer disconnected shortly afterwards.

To address point 2, Polari will display status messages for any users provided there hasn’t been any conversation in the channel within the last X minutes. However, if more than 4 status messages are emitted while the channel is idling, Polari collapses the status messages and displays a single line summary instead. The summary can be expanded to reveal the details at any time.

06-30-15 compressed-status-message-thumb Screenshot of a status summary in action. Clicking the “…” can be clicked to reveal the status messages.

With these changes I hope we’ll have less visual noise from status messages in Polari. Feel free to have try my current branch. With problems like these, I think the best way to find out if it’s solved, is by trying it over a longer period of time.

*duration to be discussed. It’s currently set to 5 minutes, which is unfortunate for Raazeer since he said he would return in 10 minutes. Maybe a good indication that I should use a higher number? d:

more menus

Since last blog post I have been designing and implementing a room menu for Polari.
06-25-15 polari-room-menu-thumb
Screenshot of current implementation of the room menu in Polari.

The goal of this menu is to provide actions for the current room you are viewing. The menu will help solve some problems:

  • Makes it possible to read the room topic in full and change it if you have the permissions to do so.
  • Creates a more obvious way to leave a room which is also touch friendly.

These points have been implemented and are available in the branch wip/bastianilso/room-options. I am still considering what other actions are necessary to have in the room menu. My plan is also to expose whether the room is on a private/public network and relevant channel permissions as well as your own status. For private conversations, the room menu could also be an ideal place to expose extra information about the recipent you are talking to if available.

Feel free to share any other use cases you think is the room menu could cover.

a digest from polariland

Aside from larger items on my list like the previously covered Initial Setup experience, I am also working on a lot of smaller items in Polari. After finishing the GNOME 3.16 release video, I have been submitting small patches to Polari with great assistance from Florian.

06-14-15 polari-pile

First, I recently submitted a patch to Bug 724592, which adds support for the /msg command. A lot of IRC guides mention using the command “/msg NickServ identify username password” but at the moment writing this in Polari will just result in a “command unknown” response. Any results matching your search term is now also highlighted accordingly in the user list (bug 745743). Furthermore, when opening the user list, the search entry always receives focus so you can just type ahead (bug 750689). Users who are offline are now indicated in the chat history by color (bug 710792). Finally, the “join room” dialog now validates the user’s input against the server’s room list and provides auto completion (bug 709846).

Some of the patches still lie around in bugzilla. Others you can enjoy from Polari’s master branch already. I look forward to work through more small details like these. Being able to shape a user experience like that is simply great.

A first time Polari experience

The flags have been raised, summer has kicked in and GSoC is happening. I’m here to share with you what I have on the harddisk at the moment. I am working here and there on Polari, an IRC chat application.

Some days ago I picked up the task of revamping Polari’s first-time-usage state. In Polari 3.16 a new user is presented with an empty window first time he opens Polari such as the figure below. The reason is that no rooms have been joined and no connections have been setup.
before-gsoc-thumb
Polari’s current way of saying “please add a connection and join a room to chat”.

It might not immediately be obvious how to get started chatting with this thing, however. I took some inspiration from Calendar’s recent initial setup designs by Allan Day and whipped it up with an old prototype by Carlos Soriano. Here’s a video of the work so far.

initial-setup-thumb
Screenshots of the implementation in my initialSetup branch.

First time you open Polari, you will now be presented with a welcome dialog which will help you connect to one or more IRC servers. Furthermore, the empty main Window has been made more welcoming to newcomers. The Polari logo and title is there to communicate that this weird looking window in fact is the Polari app. Below a small hint presents the almighty ‘+’ menu, so the user can start adding some rooms.

Existing Polari users won’t see any of this of course. Once you have joined your first rooms, Polari will automatically join them next time you open it.