Skip to main content

a silhouette of a person's head and shoulders, used as a default avatar

Organizing oSC13 - 68 days before


Cron Job in Google Blogger failed to publish the post I wrote yesterday morning in yesterday afternoon, so many of you saw it comming out some hours ago. I hope I did not confused anyone with that and I will take advantage of this 'failure' of Google Blogger (or with what I did wrong in there and missed it) and write today about situations like that, that can happen while organizing a conference.

So yesterday I wrote about alternatives and the importance of those while working on making a conference come to life. Today I will write some things about things that go wrong and you cannot or at the moment don't have the ability to think or predict. 
I will start with a Murphy's law "Whatever can go wrong, will go wrong" that usually happens through the procedure, no matter how hard you try and how many alternatives you have. Good news is that this can be predicted to some point, the bad thing is that this prediction is not always easy and some times you just have to do a lot of double checking in order not to avoid it but to fix it before someone notices it. The quicker you accept that things can and will go wrong the faster you will be relaxed and concentrated enough to fix it quick(again: before someone notices it :D ). Let's start by how you can predict things from going wrong, although as said before that does not come with a 100% guarantee that won't happen but still...

The easiest way to do it is to find someone who is actually a professional in the task you need to be done and that is why selecting and sometimes rejecting some volunteers from doing something is equally important. What I mean by all that? Ok so let's say that you have a task that need to be done and that task is about writing a press article until the X deadline. Now what you need is someone who is actually qualified in finishing the task, in our case writing article, so if you have a professional journalist that is volunteering then you are a happy person and this gives you the best safety that this task will be successfully and on time. The thing is that if you are doing this like we do, meaning voluntarily there is a great possibility not to be able to find as I mention in my example a journalist or even if you do, he/she may not have the time to do this in the time you want. This gives you two actual choices both of which I will write at some point later. Either you adapt the time of your article either you select another volunteer based on some facts. Now let's say that you have the right guy for the right work, if you do this is how you can prevent that things will go the right way and nothing will go wrong. It sounds really simple but it is very common for people to give tasks to the first who asked it and don't look to the abilities of each person just because we want to get rid off one of the 10.000 tasks that we have in our head. I knew that from before but I still did that a couple of times on the heat of the moment and that exactly where the "prediction is not always easy and some times" is hidden. 

Now you have the right person for the task and this person is doing his/her job perfectly, unfortunatelly this is not the complete task. The task is completed when this task once it is finished it is out there for all to see, meaning in this example the press release to reach the press you want to. No matter how perfectly the task is done it must reach its goal, otherwise it is a task not done. So you have to double check everything just to be sure. Recently I fell into something like just because for some reason the person did a task thought wrongly that he had finished. This of course was communication error but still the task was not completed and if you ever thing that you will start organizing a conference without communication errors happening then my opinion and my so far experience says that you are dreaming.

Last but not least for today is that if you use a tool like Trello that we use have the person that took the task assign himself/herself to it so that other people will know it.It will save your volunteers and yourself a lot of time and nerves. 
a silhouette of a person's head and shoulders, used as a default avatar

Organizing oSC13 - 69 days before


I read yesterdays post and I found it very 'dark', not far from the truth but if you plan to make a conference reading that post will discourage you. One other truth is that I yelp a lot, if you met me more than once you know that for sure, it's not because I am a bad person or one of those people that see it all black, it is the perfectionist inside me that believes we live in a perfect world and reacts.
It is impossible to organize such a thing and wait for everything to be perfect. It is too complicated and there are many things that nobody can actually predict and even if you done that before, most of the things you need to handle probably changed since the last time you did it. What I keep telling myself is to expect perfectness but be pleased if something is above very good. With that you are a bit more relaxed and as the years passed by I learned that the only actual way to reach perfectness in complicated situations it to be (relatively) relaxed so that you have eyes around and predict things that can make a situation go bad. Also being relatively relaxed gives you the ability to think for alternatives. A good advice I was given once upon a time after a failure of organizing a gig was "ALWAYS have alternatives". What I mean by that is that when you organize something you start making tasks, it is impossible for some of those tasks not to go wrong for many reasons. At certain situations it (depending on the affection of the task in what you organize) it is better to leave outside a good idea were there is no viable alternative than trying to do something Great and because of this you will deliver something less than good. Another thing to have always in mind is that 'The road to hell is paved with good intentions" and no matter how hard you try people will see the result in the end, not the effort you did for that result. Another thing is that in the end there always be someone that will not like what you did and probably will tell you that the worst way and at the worst time. Value feedback from all because it is priceless but learn to separate good from bad feedback.
I think this is enough for today. I am at my actual work today so I will spend less than the time I want to the oSC13 and this is not a bad thing actually, I will tell you why at some other point. 

a silhouette of a person's head and shoulders, used as a default avatar

Organizing oSC13 - 70 days before


For more than a year I am living in the heat of organizing the next openSUSE Conference, first it was oSC12  and about a year ago it became oSC13. At some point it even became organizing no oSC at all for what it counts but we manage to prove ourselves again and we finally got oSC 2013. I knew from the first moment and maybe even some moments before that, that this would be a hell of a work. I even knew that I will regret it many times for some moments when everything will seem to go to hell and I will stand there asking myself 'What the Fuck did you do dude?' , but as usual I went against common sense and I followed my instinct, it worked when I started with Stathis the Greek community, it also worked some times before.
Disappointment is what I felt most of the times and other than the love for FOSS I really don't see another reason to do such a thing as organizing a conference, at least no other that acts as a countermeasure to disappointment when that comes. Beside that, it is a great life experience and it gets you closer to what you are made of which is great if you are into that kind of inner research.
Disappointment comes from anywhere and especially from people that told you that they will be there to help. I was lucky at that since there was always Stella who 70 days before and a year after is still standing and Henne who is just doing things, even when I got burned and could not work at all for some time those guys where there. It is great to have a co-pilots, if someone out there is looking on doing something like organizing a Conference that big he/she should find someone like them or just contact them :D

Now there is a bright side of course to all that but after 13 hours in front of 2 screens I find it dificult to describe it, maybe in Day 69 since my purpose is to blog every day up to the conference day.

For today all I can say is that I am hugely happy with myself since I finished more than double the tasks I planned for today and I just realize I still were my work uniform, I have a meeting in Skype now and after that I will have a bath and sleep. Nice thing that people cannot actually smell you through Skype :D

a silhouette of a person's head and shoulders, used as a default avatar

It's all about monkeys

Yesterday evening, May 7, two belgian user groups,  MADN and DotNetHub invited me to give a 2 hour introduction session on creating multi-platforms mobile applications in c# with Xamarin 2.0.

Microsoft Belgium was hosting the session, and the room was packed !

I really enjoyed that evening, and just wanted to thank you all: attendees for their presence and interactions, MADN and DNH for the invite and the bottle of wine, Microsoft Belgium for the place, food and drinks, and Xamarin for the give away licences, monkeys and t-shirts.


a silhouette of a person's head and shoulders, used as a default avatar

KDE Platform, Workspaces and Applications 4.10.3 for openSUSE

KDE released 4.10.3 versions of the Platform, Workspaces and Applications yesterday, with more than 70 bugs being fixed. Notably:

  • Several fixes in handling encrypted mails in KMail
  • Fixes for KDEPIM syncing and ownCloud
  • A number of improvements in Dolphin, including crash fixes
  • Optimizations in the Plasma Workspaces

[The full list](https://bugs.kde.org/buglist.cgi?query_format=advanced&bug_status=RESOLVED&bug_status=VERIFIED&bug_status=CLOSED&bugidtype=include&chfieldfrom=2013-01-01&chfieldto=Now&chfield=cf_versionfixedin&chfieldvalue=4.10.3&order=Bug Number&list_id=638034) has other important changes.

As usual, there are two different repositories from which you can get them:

  • KDE:Distro:Factory in case you are interested in contributing to packaging for the next openSUSE release;
  • KDE:Release:410 (openSUSE 12.3 or openSUSE 12.2) in case you just want to upgrade to the latest and greatest version

In case you upgrade now, you should be aware of an issue with KDM that makes it not start: thankfully there’s a workaround available, and updated packages are already being built by the OBS, so it will be solved soon.

Report bugs in packaging to Novell’s Bugzilla, and bugs in the software directly to KDE.

Have fun with 4.10.3!

the avatar of Andres Silva

openSUSE Wallpaper Submissions

Hello friends

Here is a little video I made to help orient your thoughts about the wallpaper submission process. I tried giving you tips and ideas on how to come up with a wallpaper and one specifically made for openSUSE. Please bear in mind that although you may not know all the details about the wallpapers we are looking for, you can still ask for our help for us to give you hints on what to do.

Other than that, here you go!


Andy (anditosan)
the avatar of Klaas Freitag

ownCloud Client May Hackfest

Again we’re meeting in Berlin at Woboq Intl. Headquarters to work on the ownCloud Sync Client again. One of our topics is the still not completely fixed problem with conflict files. There has been lots of troubles about false conflict files the client is generating in that situations were the ETag database is wasted.

We revisited this problem and will come up with a better solution.

The key changes will probably be

  • Conflict files will never again be generated on the server. Even if we are in a conflict situation, we will download the file and keep the conflicting version only on the client. This enables us to detect false conflicts.
  • The current way we handle a system time difference has to be changed. We wont adjust the file mtimes of files in the file system any more with the time difference between the client and server. That way we do not suffer from floating time differences any more. For the decision of which version is more recent, we will still consider the time difference.
  • We will use a very quick request like OPTION to get the servers time setting to the client. That will allow to calculate the time difference between server and client more accurately. It’s needed to decide which file is more recent.

aktoc Read this as a note to self, yet we feel very well fitting into Berlin round may 1st ;-)

Photo credit: 96dpi / CC BY-NC

a silhouette of a person's head and shoulders, used as a default avatar

GSoC Meetup : Jamia Millia Islamia Faculty of Engineering

It all began abruptly, when Akif Khan ( a prospective student ) asked me to discuss my GSoC experiences at his college. The idea instigated quickly instigated me as I longed to visit a College Campus and meet real open source people after a long time, so I agreed without giving a second thought, we decided that we will meet up on Saturday at Faculty of Eng, Jamia Millia Islamia.

I reached Jamia Millia at time and was pleased to find an enthusiastic culture of open source led by the students over there. Lots of students from other colleges were a part of the meetup too. A few things that I noted my experience there are as follows :

  1. Students were enthusiastic and really wanted to contribute to open source. Since most of them were fresh(wo)men, they were enthusiastic about the GSoC experience and how it could help them.
  2. Discussion how to select a project, write a proposal and how to communicate with the organizations was taken up.

One of the most enthusiastic things that I heard was “I really want to do it, despite of getting through GSoC” which is pretty much any open source organization wants. Hopefully, we have more students who think like this and even more who turn their thoughts into action. Overall, it was an excellent talk with a bunch of enthusiastic people :).

There were a lot of interesting questions asked, one of them being was “How do I start contributing to it?” . Recently, I had one of the more interesting reads on quora which gives a answer to the question https://www.quora.com/Software-Engineering/Which-open-source-projects-are-actively-looking-for-contributors in a very succint way.

IMAG1549 IMAG1533 IMAG1544 GSoC - Meetup JMFEC

a silhouette of a person's head and shoulders, used as a default avatar

Recent documents in LibreOffice

This is again one of those little improvements that make LibreOffice much more usable, and that I so much love hacking on. I implemented a dropdown for the Open toolbar button that brings an easy access to the Recent Documents, and sent that the UX mailing list for feedback. I got some really useful hints. Even better - I gave Samuel code pointers to play with this a bit, and he came up with a beautiful patch that implements his ideas. And here is the result:

Samuel - thank you for this! :-) For anybody who would like to bring this functionality to the Start Center too (the screen you see when you start LibreOffice), here is an Easy Hack that will result in reusing the code for the Start Center too; and also will delete lots of duplicate code.

the avatar of Robert Riemann

Install Gitlab on OpenSUSE 12.3

Private Git Repo Hosting

Gitlab brings the social coding Github experience to your own network. In contrast to the commercial product Github which only allows to host open source git repository projects using the free plan, you can install the free/libre software Gitlab wherever you like and do what you want. Therefore you need to setup a RubyOnRails environment. Officially, Gitlab supports Debian/Ubuntu. Read on how to install it on OpenSUSE.

The presented solutions features a btrfs filesystem RAID-1 :) and some custom patches. Instead of init.d startup scripts, we use systemd. I recommend to use nginx as a webserver.

Please be aware that the development of Gitlab continues rapidly. This might break this how-to at some point. Please read everything before starting!

Install OS

  • Download OpenSUSE 12.3 32bit, Network edition http://download.opensuse.org/distribution/12.3/iso/openSUSE-12.3-NET-i586.iso
  • I chose 32bit, because Ruby Binary Extensions might have problems with lib64 path structure. We workaround this bug.
  • I chose networkinstall, because we need only very few packages and don’t need to download everything. only 200MB are downloaded during install
  • the image can easily copied to a usb pen drive using the gui tool “imagewriter” (executed as root)
  • Partition: There are 2 big hard drives. I created on both of them first a primary pratition of 1GB of type LINUX-RAID
  • I use the yast software raid setup during the install to connect both partitions to a software raid-1 partititon of ext4 to mount in /boot
  • I created on both hard drives a btrfs partition (50GB), but only mount the one on /dev/sda to /
  • I created on both hard drives a swap space of 2 GB and mount both to swap

The system gets installed and the configuration follows.

  • I open ssh. I disable ipv6.
  • I disable dhcp and configure the hostname to “leise” and the site to our internet domain, the nameserver and the gateway is set to be the mail server.
  • The server gets the fixed ip: 192.xxx.xxx.184
  • The network check passes successfully and I apply immedately online updates.
  • I leave the user input dialog blank and only set a root password

The installation is done. I test everything with a restart using reboot. Now the root filesystem has to be turned to a btrfs raid system.

  • I add a second device to the root file system: btrfs device add /dev/sdb2 /
  • I convert the striped btrfs mode to the raid1 mode for filesystem data and metadata: btrfs filesystem balance start -dconvert=raid1 -mconvert=raid1 /

Install Gitlab

The following steps apply to version 5.0 and try to copy the step by step tutorial which is refered from the README: https://github.com/gitlabhq/gitlabhq/blob/master/doc/install/installation.md

Install dependencies:

zypper ar http://download.opensuse.org/repositories/devel:/languages:/ruby:/extensions/openSUSE_12.3/devel:languages:ruby:extensions.repo

zypper in patterns-openSUSE-devel_basis ca-certificates-cacert nginx rubygem-rb-inotify rubygem-ffi redis mysql-community-server mysql-community-server-client rubygem-bundler ruby19 ruby19-devel libmysqlclient-devel zlib-devel libyaml-devel libgdbm4 libreadline6 libncurses5 libffi47-devel curl git-core postfix checkinstall libxml2-devel libxslt-devel libcurl-devel libicu-devel
# accept deinstallation of patterns-openSUSE-minimal_base-conflicts

python2 --version # make sure to have version > 2.5 but < 3.0

ruby1.9 --version # make sure to have a compatible version (in my case 1.9.3)
cat /usr/bin/bundle # make sure to have ruby version 1.9 in the shebang line (first line in file)

systemctl daemon-reload # reparse config for systemd (necessary, because we installed mysql)
systemctl start mysql.service  # start mysql
systemctl enable mysql.service # make mysql autostart
cp /etc/redis/default.conf{.example,}
chown redis.redis /etc/redis/default.conf
systemctl enable redis.service
systemctl start redis.service

Prepare system for Gitlab

  • create a user git: useradd -ms /bin/bash git

Prapare Gitlab (using account git)

su git # (change to the account of git)
cd # (change to the home directory /home/git)
git clone https://github.com/gitlabhq/gitlab-shell.git
cd gitlab-shell
cp config.yml.example config.yml
vim config.yml # change domain to the domain of this computer
cd
ssh-keygen # to be sure, create ssh key (not mentioned in official docu) with empty passphrase

Follow the setup of the mysql data base: https://github.com/gitlabhq/gitlabhq/blob/master/doc/install/databases.md#mysql

  • mysql -u root
  • follow the guide for mysql commands

We continue with the setup of the GitLab Rails application:

gem1.9 install charlock_holmes --version '0.6.9' # execute as root
su git
cd
git clone https://github.com/gitlabhq/gitlabhq.git gitlab
cd gitlab
git checkout 5-0-stable # not possible yet, I use master instead
vim config/gitlab.yml
# ^- email_from: gitlab@atech.de, support_email: admin@atech.de, default_projects_limit: 100
# disable username_changing_enabled
chown -R git log/ tmp/
chmod -R u+rwX log/ tmp/
mkdir /home/git/gitlab-satellites
mkdir tmp/pids/
chmod -R u+rwX tmp/pids/
cp config/unicorn.rb.example config/unicorn.rb
cp config/database.yml.mysql config/database.yml
vim config/database.yml # edit password and username
bundle install --deployment --without development test postgres # takes a while
bundle exec rake db:setup RAILS_ENV=production
bundle exec rake db:seed_fu RAILS_ENV=production
bundle exec rake gitlab:setup RAILS_ENV=production # chose yes
bundle exec rake gitlab:shell:setup RAILS_ENV=production # chose yes
git config --global user.name  "GitLab"
git config --global user.email "gitlab@atech.de"

Install Check:

su git
cd /home/git/gitlab
bundle exec rake gitlab:check RAILS_ENV=production

Go to yast firewall and open port http (and https port): 80, (443)

# update services
su
cd /usr/lib/systemd/system/
wget https://gist.github.com/veprbl/5115638/raw/9d18a341217f109accb67f57e8ad420c9de442fd/gitlab.service # TODO wrong mysqld
wget https://gist.github.com/veprbl/5115638/raw/be78658953cd5967a4d874f5b0a019667cf090af/gitlab-worker.service # TODO same
# double-check content of these files!
chmod 644 gitlab.service gitlab-worker.service
# TODO edit /etc/nginx/vhost.d/*
systemctl daemon-reload