Jul 222018

I have installed another distro on my laptop. Wizard told me earlier that support for Ubuntu MATE 32-bit ended on July 19th (that's today for me when I post this), so my latest system is Zorin OS, 32-bit. The desktop is attractive, but the responsiveness is not what I was expecting…slow. I installed Zorin because PlayOnLinux and Wine are already built in, no additional downloads needed (On both Ubuntu MATE and Zorin, error messages said that I need to install "winbund" for PlayOnLinux…

Not Sure About Zorin OS, Will Test For A Couple of Days
Not Sure About Zorin OS, Will Test For A Couple of Days
Source: Linux.org

Jul 222018

This is Part 3 of a blog post series summarizing the Developer Center BoF. See also Part 1: The Developer Experience and Part 2: Possible Audiences.

When we talk about improving GNOME and the infrastructure around it, we often quickly skip right ahead to talking about solutions (“The developer center is missing feature X“). However, before we can jump ahead into an informed discussion about solutions, we need to agree what it is we want to solve, that is:

  • What kind of challenges does our audiences face when they look for documentation currently?
  • What kind of challenges do our community face when they want to contribute to our current documentation?
  • What consequences do these challenges have for the developer experience?

Defining the challenges should be possible for us now since we have already defined the possible audiences and what we mean when we say our developer documentation.


The following highlighted challenges are based on the list of challenges identified in the BoF  and my own reflections:

1. The documentation is fragmented

The documentation we have currently lives in multiple places.  While our C documentation currently lives in developer.gnome.org, our GNOME Newcomer Guide is hosted on wiki.gnome.org. The GJS API Reference lives in devdocs.io.  The PyGObject Manual lives in readthedocs.net.  Documentation fragmentation refers to the issue that developers have to end up going to different websites  than developer.gnome.org and  potentially end up finding unofficial documentation which might be outdated or misleading.

2. The documentation branding is inconsistent/out of date

Our developer center uses outdated visual looks which is inconsistent with our other infrastructure (wiki, website, etc.). Documentation hosted outside developer.gnome.org also use different branding and visual style which makes it hard to distinguish maintained, official documentation from unmaintained documentation.

3. It is unclear from the landing page what documentation the Developer Center contains.

The Developer Center hides its documentation behind four large categories on the home page. The category naming is ambiguous (“Guides” vs “Application development overview”) and does not give you a proper overview of what our documentation constitutes of. The front page navigation categorizes content, instead of trying to create on-boarding paths for specific audiences and in worst case our audiences apply guesswork to find what they are looking for.

3. It is unclear what documentation is up to date.

Our documentation being as scattered as it is, makes it difficult to assess what of our documentation is good and actively maintained for our readers. By searching documentation on developer.gnome.org you can still find documentation for GTK+ 2 and many guides has not been updated for years and may therefore be deprecated.

4. Our audiences use many different programming languages.

Much of GNOME is written in C and has bindings to  many languages which is both a blessing and a curse. Our developer center currently provides API references in C, and various tutorials in Python, Javascript, C++ and more. Supporting the many different programming languages grows the complexity of unifying the developer center and provide a good experience everywhere. However, those language bindings are maintained because there are people out there who use them and prefers them over other languages and this will probably not change. Some of these people have also spent many hours writing documentation for binding languages on external websites and made external API references hosted outside GNOME Developer Center. I think these people are important for us to reach out to, when we discuss this challenge.

5. Which programming language should I choose?

This is related to number 4. For certain audiences such as third party developers and newcomers, the large language support can lead to confusion. Ideally this could be purely up to preference, but in reality some language bindings are more developed, maintained , tested and documented than others.

We should keep in mind that while some of our possible audience confront this challenge, many others in our possible audience already have language preferences, which I think is why proposing solutions related to this issue in the past has presented heated debates.

6. No on-boarding path to Developer Center from GNOME.org

GNOME.org has paths for getting involved with GNOME and downloading our platform through distributions, but we have no on-boarding path for developers who wants to start developing apps using GNOME technology.

7. Maintenance of infrastructure & documentation

Currently, the Developer Center infrastructure and documentation suffers from low to non-existing maintenance. It’s a sign we need to take serious. Do we need lower the barrier to contributing to the developer documentation? What can we do to make the infrastructure easier to maintain? The underlying issue here likely also ties into why we now see new GNOME documentation hosted on other websites by different maintainers powered by different underlying technologies. I think this challenge needs both thinking from a technical point of view (how we might support editing multi-language documentation and auto-generated documentation) and an organizational point of view (assigning maintainership, reviewing our docs, aligning visions).

Your Input

What do you think constitutes a major challenge for the Developer Center? I’ll review the comments made to this blog post and have also started an issue on Gitlab you can comment on.

Follow the efforts

This was the last part of my blog series on the Developer Center GUADEC BoF. On Thursday 26th July, 16:00 UTC we will have a developer center call and if you are interested you can see the agenda and sign up here. Here are a few links if you wish to follow the ongoing efforts closely:

The next step for us will be to come up with short-term and long-term plans for the developer center and the call on Thursday will be the first step towards this. If there is interest, I will write a blog post summarizing our progress.

Bastian Ilsø Hougaard: GUADEC18 Developer Center BoF Part 3: Challenges
Source: Planet Gnome

Jul 222018

Before I started playing in the Tuesday Night Marathon, I told myself that I wouldn’t care too much about my result. The goal was simply to get back into form after two years of no tournament chess, and I didn’t really know how I would do.

For the first seven weeks, I felt as if I was playing better every week. Going into the final round I had a record of 5-2 and a shot at a prize, however small. Suddenly my attitude changed, and I really wanted a win in the final round!

Unfortunately, I fell into one of the oldest mistakes in the book: My opponent got into time trouble (I had 34 minutes left for the game, and he had 14) but I let it affect my play. I started rushing my moves, and within a few moves my position went from promising to totally lost. No prize, and a bunch of rating points down the toilet.

Why did I do such a stupid thing? In part, because it’s so rare for me to be ahead on the clock. I was so pleased with being 20 minutes ahead that I wanted to stay 20 minutes ahead, and I forgot all about playing good chess! Actually, playing good moves and giving your opponent hard problems is the best way to stay ahead on time.

Well, I hate blog posts that wallow in misery, so let me tell you the good news. The winner of the tournament, with a spectacular 8-0 score, was Ezra Paul Chambers, a FIDE master who was the third seed. I don’t know a single other thing about him, but anytime somebody pulls a Fischer in a tournament like this (eight rounds, eight wins!) it’s pretty darned impressive.

Second place, far behind him, was IM Elliott Winslow at 6½-1½. The other big story of the tournament was how well the class-A players did. Three class-A players tied for third place at 6-2 (along with two experts and a master). Two of those class-A players were opponents of mine: James Wonsever, with whom I drew in round 6, and David Askin, who beat me in round 8. Wonsever picked up 80 rating points and Askin 60. Wonsever impressed me a lot; he started playing rated chess only two years ago, as an adult, and he has already gotten his rating up to 1933. Amusingly, seven of the eight tournaments he has played in his life are Tuesday Night Marathons. Askin raised his rating back over 2000 (where he has been before). Both of them won $158, which could have been mine if only I had beaten Askin… but there I go, back into misery mode again.

Here are the crucial moments of my game against Askin.

Position after 26. … Qxf7. White to move.

FEN: 2k1rb1r/1p3qp1/p3p3/2Pp2Bp/1PnN3P/2P2P2/P3Q3/2KR3R w – – 0 27

Here I was White. The position was much more complex than I realized during the game. For some strange reason, I felt absolutely sure that I was going to win this position. Maybe it was my 20-minute time advantage; maybe it was the sight of Black’s backward pawn on an open file and his undeveloped pieces on the kingside. But it was my first error here — a complete misevaluation of the position. In fact, there are just as many things working in Black’s favor. His knight is beautifully posted on c4. His “weak” e-pawn is threatening to advance next move and create a pawn duo, which would chase my best piece, the knight on d4, away from its square. Chances are balanced at best; White is not winning, not even close.

Here my initial intention was to play 27. f4, in order to discourage Black’s e6-e5 break. I was all set to play this, when suddenly it hit me: if I play f4, my bishop on g5 could become just a tall pawn. If he plays 27. … g6, what do I do next? My instinct was to play 28. Nf3 Bg7 29. Ne5, but I didn’t trust it after either 29. … Nxe5 30. fe Qf5, when Black gets pressure on my weak e5 pawn, or 29. … Bxe5 30. fe, planning to play with a good knight against my bad bishop. So on the spur of the moment, with maybe five seconds of thought (remember, I was rushing my moves) I played 27. Rhe1, which I thought would be a more flexible approach.

This is a weird move to try to evaluate, because the computer (Rybka) says that I played the best move for White! Nevertheless, the thought process was all wrong, and it was based on a wrong conception. Of course the main question is what happens if Black plays the move that I had wanted to prevent. And that is what Askin played: 27. … e5.

Position after 27. … e5. White to move.

FEN: 2k1rb1r/1p3qp1/p7/2Ppp1Bp/1PnN3P/2P2P2/P3Q3/2KRR3 w – – 0 28

This is the position where I really had to calm down and take my time. Instead I rushed my move, taking less than ten seconds on it: 28. f4??

Here is my thought process, after making the move. “Of course, he can’t take the pawn because of the pin on the e-file. Although, you know, if he just moved his bishop it wouldn’t be a pin any more, and I would be in a heap of trouble. But he doesn’t have any dangerous bishop moves, right? He only has 28. … Be7, but that’s no problem. Oh, wait, he could pull out a desperado move: 28. … Bxc5! Oh no, I’m just flat-out losing a pawn here! Jeez, I hope he doesn’t see that!”

Well, of course he did see that. And this is a thought process I should have gone through before playing 28. f4, not after. Ordinarily I would have, but I was so caught up in trying to play the clock.

Instead I should have played 28. Nc2. If, in fact, I had played 27. Rhe1 with this move in mind, it would have been an interesting concept. White is allowing Black to set up a big center pawn duo with the thought that the “hanging pawns” will prove difficult for him to hold. That would have been an interesting game strategically, and it might be the sort of cat-and-mouse game that would be difficult for Black to handle well in time pressure. But I have to say, it’s a style of chess that is pretty foreign to me, so it would have taken unusual presence of mind for me to decide on that approach.

After 28. f4 Bxc5! my game went rapidly downhill: 29. fe Rxe5 30. Qh2? …  This was my last chance to stay somewhat in the game; I had to play 30. Qf1. Again a somewhat non-intuitive, retreating move, but the point is that both Black’s bishop and queen are hanging and he is forced to play 30. … Qxf1 31. Rxf1. Now White will at least have an active square for his rook on f7 and will have a little compensation, though not enough, for his pawn. After the game continuation Black is able to simplify easily and reach a position where he is not only a pawn up but also has a far better position.

The game continued 30. … Bxd4 31. cd Rxe1 32. Rxe1 Re8 33. Qh3+ Kb8 34. Rxe8+ Qxe8 35. Bf4+ Ka7 and finally one more blunder, 36. Be5? My game was already lost, but this move was yet another rushed mistake. My thinking was that after 36. … Nxe5 I would pin the knight with 37. Qe3 and win it back next move. But then I realized that wouldn’t work because of the elementary unpinning move 37. … Qc6+. For the second time in ten moves, I missed a simple in-between move that turned a pin into a non-pin. These are easy tactics that I missed.

I did actually see this a move too late, and so after 36. … Nxe5 I sadly recaptured with 37. de Qxe5. But here I decided to end the suffering and resign. I’m two pawns down, Black has no weak pawns and I have lots of them. No point playing out a position like this.

My apologies to everyone, because that is ten moves of some of the worst chess you will ever see. But I hope it will teach me a lesson. My opponent’s clock is my opponent’s business; I should only worry about my clock, and make sure to use my time wisely.

A small compensation for this debacle was the fact that I had a chance to present a book reading/ lecture at the University of California at Berkeley the following day. If any of you are interested, the lecture was video-recorded and is available at YouTube. It’s 56 minutes long, and my one word of advice is that you should skip the first 4½ minutes, because my actual lecture starts around 4:30. Also, be prepared for cute puppy pictures. One of the people in the audience told me that the puppy photo at 14:39 was so cute that she couldn’t pay attention to what I was saying!

Disappointing Finale
Source: Dana Blogs Chess