Enter Polari 3.20: ‘The Chicken has landed’

Yesterday was a big milestone for GNOME, as 3.20 landed. And just the day before Polari 3.20 was released. I have had a ton of fun this cycle designing and merging my GSoC work for Polari. Without further ado, I’ll now take you on an adventure showcasing what’s new in Polariland.

polari-overallthumb

The big

As part of Isabella Riberio’s Outreachy internship Polari now has a much better workflow for managing networks. Instead of a management dialog hidden away in the application menu, you can now access your networks directly from the sidebar. Much more intuitive.
polari-server-properties-ui

Another new contributor, Kunaal Jain, implemented support for image pasting – a feature I use almost daily now. Florian complimented the enhanced image pasting by adding support for inline pasting. This way you can paste text and images and write text around the resulting URLs.
polari-image-pasting

As part of the connection management overhaul Florian also made adding servers and joining rooms much faster. Polari now ships with a predefined list of networks which means you can get Polari set up in just a few clicks. Another nice advantage is that this enables us to connect more securely to the networks – SSL is enabled by default on all predefined networks which support it.
polari-join-dialog-quick

The small and cool details

Polari 3.20 also got a much needed visual overhaul near the entry area. Below is a comparison between the old entry area (top) and new entry area (bottom).
polari-restyled-entry
The overhauled look also meant changing your nickname now happens via a popover. There’s still some more work to do here as there’s not enough distinguishment between changing nicknames temporarily and changing nicknames permanently (something I hope to adress next cycle).
polari-change-nickname

What I’m over-hyped the most about is this 2-line change – we now animate the text. It’s really incredible how such a small detail can make such a huge impact on my chatting experience.
polari-text-animation

A nice other detail is that Polari now tab-completes IRC commands.
polari-tab-completion

During the ContentApps Hackfest my status compression branch from last years Google Summer of Code also landed in Polari 3.20..
06-30-15 compressed-status-message-thumb

..as well as my IRC URL Handling branch, which was further enhanced to match against the new list of predefined networks. Polari also detects mentions of chatrooms and linkifies them for your convenience.

Finally I want to higlight the new keyboard shortcuts Alt+Shift+up and Alt+Shift+down that Rares Visalom implemented this cycle. It’s a super addicting way of checking up on the new messages in various chatrooms.
polari-altshift

Getting Polari 3.20

It is most likely that Polari and other GNOME 3.20 apps haven’t reached your repository yet. XDG-App to the rescue! You can check out Polari nightly by following Alexander larssons tutorial at.
https://wiki.gnome.org/Projects/SandboxedApps/NightlyBuilds

In Polari we plan to participate in Google Summer of Code. If all goes well, we’ll have Kunaal and Rares work on implementing search and implementing a improved initil user experience. These are two milestones that I personally look much forward to achieve.

I would like to thank everyone involved with making this release of Polari so magnificent. Chat you later on IRC. (:

IT X: Open Source

In my city we have no local GNOME group or linux user group. I’m trying to shake that up a bit. I helped arrange an event called IT X, happening at Platform 4 which is a local non-profit venue in the center of my local city in Aalborg, Denmark.
2015-11-15Previosly part of an amusement park, now a non-profit venue for local citizens. Picture by Troels Leegaard.

With help from my local IT Union PROSA, we’re trying to create more publicity about open source among IT students. They helped organize what became the first edition of ITX – a monthly talk show event, this time themed Open Source. I was one of four speakers:

  • Lars introduced what open source is about.
  • I introduced GNOME, how and why to get involved.
  • Søren talked about Kodi/XMBC.
  • Mads introduced Aalborg’s local hackerspace Hal9k.

IMG_20160224_190413The event is about to begin – so exciting!

At 7 in the evening we had around 20-30 participants. With me I had brought 10 USB sticks with Fedora 23 and a printout of GNOME’s latest annual report. My talk was about GNOME, how we collaborate together, introduced our community and why contributing is valuable to me.

impress-slidesI used pictures from hackfests to emphasize that GNOME is people (tags were given by permission). Slides/Recording coming up soon!

I felt the audience were generally really intruiged and curious about GNOME! I was promoting a facebook group called “Open Source Aalborg” for those who wanted to know more. This group grew double the size after the event. Furthermore, a handful of people seemed genuinely interested in getting involved and contributing themselves too.

My plan now is to start doing weekly or bi-weekly events on open source, likely in collaboration with the local hackerspace Hal9k. I’ll use the opportunity to have a good time and help people getting started in GNOME. Afterall, we still have some user onboarding issues to fix in GNOME. But I’m really happy to see genuine interest from people in the project – these are partly people who have never even tried Linux before. Maybe you’ll see some more newcomers on IRC – greet them welcome. Let’s see where this is going. :-)

Belgian Vacation

On 26th I finished the semester exams and the day afterwards went on a trip.

It kicked off with me getting around Brussels with guidance from my printscreened map mashups – looking forward to being able to use Amisha’s Print Support in GNOME Maps in the future for this as I have no internet on my phone. :)

Wednesday was spent at the developer experience hackfest, discussing the future of GNOME Developer Center with kat, lasse, afranke, matthieu and fredp. Matthieu demoed his tool hotdoc and ptomato showed off his efforts on getting GJS documentation online. My understanding of where we ended was that there was some consensus so far to try to unify the hand-written docs so they are written in a single language (fx Mallard) and make it play with hotdoc which can integrate that with source code documentation. Hotdoc also allows a lot of cool things such as being able to change the language of the code examples and online editing.

I spent another part of the hackfest on creating CSS style that can make it easier to use our TemplateFancy for applications which want to be newcomer friendly. I partly achieved to create a navigation bar – I’m having some issues finding a non-hacky way of center-aligning the li elements relative to the width of the ul elements though, so I left that effort aside after a while. Beyond that, what remains now is to create CSS classes for title, subtitle and frontpage content.

devx my small laptop in a large room with a dozen hackers. The location was provided by betacowork – they are awesome.

The rest of my productive time went into iterating on some designs for planned features of Polari:

  • IRC commands auto-completion
  • Undoing connection removal (landed)
  • NickServ handling
  • Improvements for changing nicks (landed)
  • Contextual Popovers
  • polari-small-stuff Snippets of small UI mocks I’ve been working on (some of it is still WIP).

    Then FOSDEM happened. Also this year did GNOME have a booth although not as big as in previous years. I had designed merchandise and kat printed it – we had hoodies, t-shirts, mugs, stickers and a demo computer with the latest stable version of GNOME.

    fosdem

    I watched Christian Hergert’s demo of Builder which was quite insightful and something I can recommend you watch when a video appears online. Beyond that I was mainly standing in the booth, selling wear and talking to GNOME users. Some visitors asked how we (the people in the booth) were involved with the project. Some were even interested in contributing, so I showed them our newcomers page. When they appear on IRC, make sure to show them we don’t bite (most of the time)!

    31st January is today and that marks the end of the vacation. Last semester of my bachelor degree starts tomorrow, exciting times ahead.

content apps hackfest day 2

IMG_20151203_125006

Today we were relocated to a bigger space and are now co-located with libreoffice developers’ hackfest.
IMG_20151203_125036

Although not intended, the day mainly ended up landing my status-hiding branch in Polari with help from Florian. The code behind the logic became fairly complex and tangled. To make the code easier to read we expanded chatView’s convenience functions and restructured it to minimize code duplication. Now the two commits has landed in master so we can start iterating on the behavior. One of the plans is for example to be clever about status emission based on frequent or recent people that you have talked to.

untitled

There is also some polish that could be cool to land:

  • Using collapse/expand arrows instead of ellipsis
  • Change the color of a status header on hover to indicate its clickableness
  • better visually indicate the relationship between statusheader and its status messages.
  • Handle various special cases (fx the same user joining/leaving several times)

..I think some of those could definitely make good newcomer bugs. (:

sponsored-badge-simple

content apps hackfest 2015 day 1

Thanks to GNOME I’m attending the content apps hackfest. Today started with some introductionary some discussion on the individual applications, Documents, Books, Videos, Photos and Music. GNOME contributors also attended through hangouts and we managed to cover quite some ground in terms of what the content apps needs and their scope. We are around 13 in total sitting at Medialab, typing away on the keyboards now.

One of the bullets this hackfest is about which I am particularly interested in is how we attract more contributors to the content apps. IMO first step is to make it easy for new developers to start contributing. So I spent the afternoon revamping GNOME Documents’ wiki app page. Photos and Music are also listed as newcomer-friendly apps and would likely need a similar makeover.
Screenshot from 2015-12-02 17-45-20

For tomorrow I want to start looking into what newcomer bugs are filed against the content apps and possibly file more primarily, though.

Outside of the hackfest I have also worked a bit Polari. In the airport I sat down to revamp my status hiding branch which is almost fully working. I was also super pleased to hear that Carlos Garnacho had worked on a tracker miner for Polari’s chat logs which means we hopefully can implement some much-needed search history functionality.

Hugs to GNOME Foundation for sponsoring my trip to here!

sponsored-badge-simple

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 !

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]https://www.youtube.com/watch?v=xu0VSKvfNEI[/youtube]

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.