Friday, August 22, 2014

Counting the days until Akademy!

It seems so soon after returning home from Randa and Geneva, but already the day of departure to Vienna and then Brno looms. So excited! For starters, both Scarlett and I got funding from Ubuntu so the e.V. is spared the cost of our travel! I've often felt guilty about how much airfare from Seattle is, for previous meetings. We're having a Kubuntu gathering on Thursday the 11th of September. Ping us if you have an issue you want discussed or worked on.

Also, Scarlett and I will be traveling together, which will be fun. And we're meeting Stefan Derkits in Vienna, to see some of his favorite places. Oh, a whole day in Vienna seems like heaven. We have a hostel booked; I hope it's nice. Now I need to figure out the bus or train from Vienna <> Brno.



Then there is the e.V. annual meeting, which I enjoy since I was admitted to membership. It is great to hear the reports personally, and meet people I usually only hear from in email or IRC.

Finally, there is Akademy, which is always a blur of excitement, learning, socializing, and interacting with the amazing speakers. My favorite part is always hearing from the GSoC students about their projects, and their experience in the KDE community. After Akademy proper, there are days of BOFs, and our Kubuntu meeting. This part is often the most energizing, as each meeting is like a small-scale sprint.

Of course we do take some time to walk through the city, and eat out, and party a bit. Face-to-face meetings are the BEST! Sometimes we return home exhausted and jetlagged, but it is always worth it. KDE is a community, and our annual gathering is one important way for us to nurture that community. This energizes the entire next year of creating amazing software.

An extra-special part of Akademy this year is that we are planning to release our new KDE Frameworks 5 Cookbook at Akademy. Get some while they're hot!

Learning to git

A few years ago, I learned from Myriam's fine blog how to build Amarok from source, which is kept in git. It sounds mysterious, but once all the dependencies are installed, PATH is defined and the environment is properly set up, it is extremely easy to refresh the source (git pull) and rebuild. In fact, I usually use the up-arrow in the konsole, which finds the previous commands, so I rarely have to even type anything! Just hit return when the proper command is in place.

Now we're using git for the KDE Frameworks book, so I learned how to not only pull the new or changed source files, but also to commit my own few or edited files locally, then push those commits to git, so others can see and use them.

To be able to write to the repository, an SSH key must be uploaded, in this case done in the KDE Identity account. If the Identity account is not a developer account, that must first be granted.

Just as in building Amarok, first the folders need to be created, and the repository cloned. Once cloned, I can see either in konsole or Dolphin the various files. It's interesting to me to poke around in most of them, but the ones I work in are markdown files, which is a type of text file. I can open them in kate (or your editor of choice) either from Dolphin or directly from the cli (for instance kate ki18n/ki18n.in.md).

Once edited, save the file, then it's time to commit. If there are a number of files to work on, they can be all committed at once. git commit -a is the command you need. Once you hit return, you will be immediately put into nano, a minimal text editor. Up at the top, you will see it is waiting for your commit message, which is a short description of the file or the changes you have made. Most of my commits have said something like "Edited for spelling and grammar." Once your message is complete, hit Control X, and y and return to save your changes.

It's a good idea to do another git pull just to be sure no one else has pushed a conflicting file while the commit message was being crafted, then git push. At this point the passphrase for the ssh key is asked for; once that is typed and you hit return, you'll get something like the following:

Counting objects: 7, done.                                                                                                                                                                              
Delta compression using up to 8 threads.                                                                                                                                                                
Compressing objects: 100% (4/4), done.                                                                                                                                                                  
Writing objects: 100% (4/4), 462 bytes | 0 bytes/s, done.                                                                                                                                                
Total 4 (delta 2), reused 1 (delta 0)                                                                                                                                                                    
remote: This commit is available for viewing at:
remote: http://commits.kde.org/kf5book/90c863e4ee2f82e4d8945ca74ae144b70b9e9b7b
To git@git.kde.org:kf5book                                                                                                                                                                              
   1d078fe..90c863e  master -> master                                                                                                                                                                    
valorie@valorie-HP-Pavilion-dv7-Notebook-PC:~/kde/book/kf5book$

In this case, the new file is now part of the KDE Frameworks 5 book repository. Git is a really nifty way to keep files of any sort organized and backed up. I'm really happy that we decided to develop the book using this powerful tool.

Monday, August 11, 2014

Randa Meetings sprint: KDE Frameworks Cookbook progress

We groaned and suffered with the up-and-down network, and had to abandon our plan to write and edit the book on Booki at Flossmanuals. So we began to create text files on Kate or Kwrite, but how to share our work?

The best answer seemed to be a git repository, and our success began there. Once created, we consulted again and again with the Frameworks developers in the room across the hall, and brainstormed and wrote, and even created new tools (Mirko). Our repo is here: kde:scratch/garg/book. If you want to see the live code examples, you will need this tool: https://github.com/endocode/snippetextractor .

I'm so happy with what we have so far! The texts are just great, and the code examples will be updated as they are updated in their repositories. So if people planning a booth at a Qt Contributor Conference, for instance, wanted to print up some copies of the book, it will be completely up-to-date. Our goal is committing every part of the book so that it can be auto-fetched for reading as an epub, pdf, text file or printed as a book.

It is a tremendous help to be in the same place. Thank you KDE community for sending me here, all the way from Seattle. Thank you for bringing all the other developers here as well. We are eating well, meeting, coding, writing, walking, drinking coffee and even some Free Beer, and sometimes sleeping too. Mario brings around a huge box of chocolate every night. We're all going to arrive home somewhat tired from working so hard, and somewhat fat from eating so well!


Monday, August 4, 2014

Coming up: excitement and work

First, many of us will be taking off this week for Randa, Switzerland. Many sprints are taking place simultaneously, and the most important to me is that we're writing another book. Book sprints are fun, and lots of work! As well as the team in Randa, a few people will be helping us write and edit from afar, and I'll be posting a link soon so that you can help out as well.

Here is a recent article on Randa and what goes on here: https://dot.kde.org/2014/08/02/randa-meetings-interview-four-myriam-schweingruber. Most of the attendees are traveling on funds contributed by the community. Thanks so much! I hope our work will be worth your generosity.

Today, the Akademy session schedule was announced: https://dot.kde.org/2014/08/04/akademy-2014-program-schedule-fast-fun-inspiring. This will be my third Akademy, and they are always fascinating, friendly, educational, and just plain awesome! At this point, we're still open for more sponsorship of Akademy, and registration seems a bit slow. If you are interested, please register and make your way to Brno for Akademy. If you know a company who is not yet a sponsor and should be, please urge them to register as a sponsor now.

The talks will be great, as will the "hall track." Following the formal meeting, we have a few days of informal talks, mini-sprints, and workshops. This is when Kubuntu will be meeting, which is why Ubuntu sponsored me to attend! \o/ Thanks so much for that, generous Ubuntu users. To sum up, I'll quote Myriam from the above article:
While a lot of the work in Free Software is done over the internet, nothing replaces the real life meetings, as it provides an extra drive in terms of motivation. Modern software development is mostly agile, something even corporate software development is using more and more. Due to the global distribution of our contributors; Free Software development has always been agile to start with, even if we didn't put a label on it in the early days.
And in agile development; sprints are a very important element to push the project forward. While sprints can be done over the web, they are hindered by time-zones, external distractions, availability of contributors, etc. Having real life sprints, even if those are few, are more productive as all the hindrances of the web meetings are eliminated and the productivity is greatly enhanced. [emphasis added]