14 August, 2014

How else to help out

Yesterday I blogged about how to help testing. Today, let me share how you can facilitate development in other ways. First of all - you can enable testers!

Help testers

As I mentioned, openSUSE moved to a rolling release of Factory to facilitate testing. KDE software has development snapshots for a few distributions. ownCloud is actually looking for some help with packaging - if you're interested, ping dragotin or danimo on the owncloud-client-dev IRC channel on freenode (web interface for IRC here). Thanks to everybody helping developers with this!

KDE developers hacking in the mountains of Switzerland

Coding

Of course, there is code. Almost all projects I know have developer documentation. ownCloud has the developer manual and the KDE community is writing nothing less than a book about writing software for KDE!

Of course - if you want to get into coding ownCloud, you can join us at the ownCloud Contributor Conference in in two weeks in Berlin and KDE has Akademy coming just two weeks later!

And more

Not everybody has the skills to integrate zsync in ownCloud to make it only upload changes to files or to juggle complicated API's in search for better performance in Plasma but there is plenty more you can do. Here is a KDE call for promo help as well as KDE's generic get involved page. ownCloud also features a list of what you can do to help and so does openSUSE.

Or donate...

If you don't have the time to help, there is still something: donate to support development. KDE has a page asking for donations and spends the donations mostly on organizing developer events. For example, right now, planet KDE is full of posts about Randa. Your donation makes a difference!

You can support ownCloud feature development on bountysource, where you can even put money on a specific feature you want. This provides no guarantees - a feature can easily cost tens to hundreds of hours to implement, so multiple people will have to support a feature. But your support can help a developer spend time on this feature instead of working for a client and still be able to put food on the table at home.

So, there are plenty of ways in which you can help to get the features and improvements you want. Open Source software might be available for free, but its development still costs resources - and without your help, it won't happen.

13 August, 2014

Why developers should not be testing

Short answer: because you should.

When somebody asks about their missing pet feature in KDE or ownCloud software, I always trow in a request for help in the answer. Software development is hard work and these features don't appear out of nowhere. There are only so many hours in a day to work on the a million things we all agree are important. There are many ways to help out and speed things up a little. In this blog I'd like to highlight testing because I see developers spend a lot of time testing their own software - and that is not as good as it sounds.

Developers also do testing!

You see, developers really want their software to be good. So when a Alpha or Release Candidate does not receive much testing from users, the developers take it on themselves to test it.

Developers testing software has two downsides:
  • Developers tend to test the things they wrote the software to do. It might sound obvious, but usually the things that break are things the developer didn't think off: "you have 51,000 songs? Oh, I never tested the music app with more than 4,000" is what I heard just yesterday.
  • And of course, it should be obvious: early and lots of testing speeds up development so you get those features you want!
Take two lessons from this:
  • If you want things to work for you, YOU have to test it.
  • If you want those other features, too, helping out is the name of the game.

It isn't hard

In the past I wrote an extensive article on how to test for KDE and ownCloud, too, has real nice testing documentation.

If you want to get on it now, Klaas Freitag just released ownCloud client 1.7 alpha 1 and openSUSE has moved factory to a rolling release process to make it easy to help test. KDE Applications 4.14 is at the third beta and the Release Candidate is around the corner.

Your testing doesn't just save time: it is inspiring and fun. For everybody involved. For added kicks, consider joining us at the ownCloud Contributor Conference in in two weeks in Berlin and KDE has Akademy coming just two weeks later!

Help make sure we can get our features done in time - help test and contribute your creativity and thoughts!


note: I'm not argueing here against testing by developers, rather that users should help out more! Of course, developers should make sure their code works and unit tests and automated testing are great tools for that. But I believe nothing can replace proper end-user testing in real-life environments and that can only really be properly done by end users.

05 August, 2014

ownCloud numbers

Last week, we went over some numbers related to ownCloud. Things like the number of people who contributed in the last 12 months or the speed of code flowing in on average. The numbers are impressive and you can read about them in this press release.

Analysis

Numbers can tell you a lot. One thing is of course particularly cool: the numbers are big. Really big. ownCloud has had almost 300 people contribute code to it in the last 12 months. That is a lot. Some perspective: wordpress has had 52 contributors over its lifetime! Drupal: 149. phpbb: 190. Mediawiki: 534. Joomla: 483. VLC media player: 662. ownCloud has had 566 contributors over its lifetime. This is just one metric out of many, and the comparisons are between often wildly different projects so take it with some salt.

One thing I think you can safely conclude: ownCloud is certainly in the big leagues. Looking at our competition, the ownCloud Client team alone (59 contributors over its life time) is bigger than any other open source file sync and share technology.

Why numbers

We primarily want to keep an eye on numbers to see if we are doing well or not. Anecdotal evidence is important (I really like to read all the positive feedback on the #ownCloud7 release) but hard numbers are very important too. For example, if we see fewer new people join ownCloud, we can see if we can improve developer documentation or have to offer better help for new developers on IRC.

We have good reasons to keep an eye on that. Open Source projects typically have a huge turnover (60%/year is normal), requiring us to keep attracting new contributors. Not only that, ownCloud Inc. has hired many community members and, through its marketing and sales machine, is increasing the number of ownCloud users enormously. We do numbers on our user base internally, and the number we make public (about 1.7 million at the moment) is a rather conservative estimate. And growing quickly: Germany's upcoming largest-ever cloud deployment will bring ownCloud to half a million users!

What effect does that have? For one, paid developers can create a 'freight train' effect, accelerating development to a point where it is hard for volunteers to catch up. This is a reason why it is good to split up the apps from the core and to improve the API offered by ownCloud. This makes it easier to keep changes more localized and easier to follow. Another effect is that the growing popularity of ownCloud brings more people to our mailing lists and forums, asking questions. That is a tough issue. Improvements in documentation can help here, but we can also think about other tools and ways to answer questions.

Conclusions

We can't stare ourselves blind on numbers, and we won't. Real life matters more: that is why we are working hard on preparing the ownCloud Contributor Conference later this month! But it is cool to see confirmed what we already thought: ownCloud is a very significant Free Software community. Not just its size, but also in what we are doing and how we do it!

There still is plenty of work to be done so come help out and liberate more data!

29 July, 2014

ownCloud 7 Release Party August 8, Berlin

In a little over a week, on the 8th of August, you're all invited to join Danimo, Blizz and myself at a release party to celebrate the awesomeness that is ownCloud 7 in Berlin!



When and where

We will gather at 7pm at the Wikimedia office in Berlin:
Tempelhofer Ufer 23/24
10963 Berlin
Germany
It is awesome that we can use their office, a big thank you to our fellow data lovers!!

So we start to gather at 7 and round 7:30 we'll have a demo of/talk about ownCloud 7. We will order some pizza to eat. After that: party time!






17 July, 2014

ownCloud 7 awesomeness

One of the things I love from the Free and Open Source software world is that doing things in the open simply leads to better solutions. Resources are often constrained, polish might be lacking, but frequently from the seemingly chaotic processes emerges brilliance.

The upcoming ownCloud 7 has one of those things: server to server sharing. You see, for a long time, I and others have been asking the ownCloud desktop client developers for a feature: support for syncing multiple ownCloud installations. That way, files from our corporate ownCloud installation (of course we dogfood here at ownCloud Inc.!) and my private ownCloud could both be synced to my desktop and laptop. Unfortunately, while it has been on the todo for a while, it just kept pushed down by more urgent feature work.

While you could get it to work already by running multiple clients and playing with the config file locations, it seemed a bit brittle to me and I just accepted this feature wasn't there yet.

Only today, during my bike ride to c-base, did I realize that ownCloud 7 actually introduces this feature. And I even wrote a sneak preview about it! It is the server to server sharing that solves this issue.

What is Server to Server sharing?

Let's step back. What is the major thing that 'private' clouds don't have which public clouds do? Other than the NSA snooping, that is...

Well, you're all alone, of course. If you want to share a file with another student from uni, you have to create an account or use a shared link. He/she will then have to visit your ownCloud to be able to work with you. It gets quickly messy with a lot of files.


This is where Server to Server sharing comes in. You can simply share a link and your collaboration partner can add this, either a folder or a single file, to his or her own ownCloud. They can put the file wherever they want in their folder structure (we've gotten rid of that rigid shared folder concept in ownCloud 7!) and work with you like the file was on their own instance.

That means they can also locally sync the file with their sync client by just putting it in a folder that is synced!

Boom. You don't have to create and manage multiple server accounts in your sync client, creating a folder on your system for each server you work with. No, you just add the share to your ownCloud and put the files wherever you want - in one folder, or grouped by subject - whatever works best.

Now tell me that isn't awesome ;-)

There's more

Of course, this is just a first step to bringing ownCloud servers closer to each other. Our goal is full 'federation' of data: transparent sharing between servers so they can act as one cloud, protecting privacy while giving you the convenience of sharing, collaborating and communicating with friends, family, collegues and more. Once you connected to another ownCloud, you should be able to share files with the users on that server seemlessly - and other data, like contacts or music! You should be notified when things are shared (a news feed!) and be able to comment and chat. This however still needs work. If you're interested in helping to make this happen, consider joining us at the ownCloud Contributor Conference from August 26-31 in Berlin, Germany!


* Note that you can have kind-of server-to-server sharing with ownCloud 6 by manually mounting folders from other servers via webdav. This of course comes with various limitations (you do have to give out webdav credentials, to name one) so the new server to server sharing is a massive improvement...

16 July, 2014

It all comes together: no more Software Compilation but more KDE!

KDE 4.0 demo in Dresden, 2007 (short hair time, yes)
With the KDE 4.0 release we had the issue that everything was one big blob: the libraries, the desktop and the applications, all inter-dependent.

Back then, at the end of 2007, the libraries and many of the applications were in a very good shape. Especially the KDE Edu applications I remember: they were stable, pretty and awesome for many months already before the release and their developers were itching to get their code to users. I had made a blog post with cool video's of KDE edu apps in October 2007. Here is Kalzium at that point:



Unfortunately, the desktop, having undergone a HUGE rewrite, was not at that same level of quality. As I wrote later that Month:
"When I show people the state of Plasma, they're like "hmm, that's not good". So I then proceed to show the Edu and Games, cheers them right up."

But the last release of KDE had been in 2005 (!!) and after more than two years, we really wanted the new and improved apps to get out to users. The desktop was basically workable so we decided to release. Code that is not in users hands rots away...

We all know how that went - distributions shipped it as default and the internet erupted with hate.

Doing better now

So, for the 5 series, we split it all up: Frameworks 5.0 (the new name of our modularized libraries) was released last week, the desktop came out yesterday and the Applications still mostly have to start moving to Qt5/Frameworks 5... We weren't forced to release half-baked stuff but everything came 'when done'.

KDE is now People. And dragons.

Better separation: rebranding

That was possible because we rebranded 'KDE' to mean community in November of 2009. This created (over time...) separate brands  for 'Plasma', 'Applications' and 'Platform' (now 'Frameworks') which could release on their own. Could being the operative term here, as we kept releasing it together.

That created quite some branding confusion, also because we had not thought through all the issues we would bump into. So when we finally decoupled releases at the release of Plasma 4.11 (the latest release in the 4.x series) and the KDE Platform at 4.9 (although that got some serious updates since then and has kept increasing version number for packaging convenience), it was largely ignored.

Which in turn created some confusion when Frameworks 5.0 came out - several people asked 'where can I get KDE 5', expecting to run the desktop and applications already. Well, I'm quite OK with users saying 'I use KDE' as long as they mean Plasma and realize there is more to KDE than the desktop. Because when I say I use Microsoft, I am not lying. I've always been a huge fan... of their keyboards. Not joking, their operating system wasn't great last time I used it but I love the 'comfort curve' series of keyboards. They should stick to hardware, clearly their strongest point.

In hindsight, we probably better would have waited until there was a real need for the rebranding - like today, or in 2013, when Plasma stopped releasing. Then again, we did expect that to come soon - there already had been talks about disconnecting the releases, it just didn't happen. Well, hindsight is always 20-20, they say...

And as the title points out - there is no more need for the 'Software Compilation' term, which was invented to solve the confusion of 'KDE releases three separate things but all at once'. We no longer release the Applications, Desktop and Libraries at once...

Better communication

Another thing we changed is our communication. In the KDE 4 times, what we did was PROMO: being as positive as one could be ;-)

Since then, we've learned a little actual marketing. Perception management and fancy stuff like that. Including properly explaining what something is and is not ready for! That's why I wrote a known issues section for the Beta of Plasma including:

"With a substantial new toolkit stack below come exciting new crashes and problems that need time to be shaken out."

With a clear section on where we stand in the final release announcement on the dot (See Suitability and Updates on the bottom of the article) we have made clear what the state is - and that we don't think distributions should ship Plasma 5.0 as default. And distributions have picked up on this - at least neither Kubuntu nor openSUSE will ship their upcoming release based on Plasma 5.0.


Forward

Now, the future. Plasma 5.0 is out, and on a 3-month release cycle. Frameworks comes with a new version every month, the Applications are still at 4.13 with a beta of 4.14 out last week. After 4.14 is out, the work on a Frameworks 5/Qt 5 port will commence full-steam but some applications will be ready before others. How will we deal with that conundrum? I don't know yet. There might be two KDE Application releases for a while, as some applications will take longer to get ported than others.

But we're better positioned than ever to bring innovations to the Linux Desktop. So let's see what the future brings!

(Ok, I do have SOME thoughts on where KDE, is going, see Part 1 and Part 2)

09 July, 2014

Puppy eyes versus freedom

With fund raising campaigns running for Krita and the Randa meetings, I've been thinking about charity. My wife told me she wanted to donate to a group of people doing really awesome work for animals. Which is great. Collectively, we spend billions on good causes like that. According to forbes the top-5 charities in the USA alone rack in USD 44 billion in revenue per year. I've gathered a few more numbers:


Organization Purpose Budget (USD)
Salvation Army (just USA) Fight poverty >4.1 billion
WWF (Netherlands) Protect animals 78 million
a Donkey home in the UK Protect donkeys 55 million
Electronic Frontier Foundation Protect online communication 3.2 million
Free Software Foundation Enable Free computing 1.2 million
Amnesty International Protect Free Speech 60 million

From the numbers, I get the distinct impression that we, as in the wider community of Internet Users (that's over half the world population), don't do a very impressive job at protecting what made the internet fun, interesting, useful and above all - free.

I want my kids to have food and shelter, even if they bump into some bad luck in life. Diseases like cancer are worth fighting and we've adopted a dog from the animal shelter in Berlin. But I also want my kids to not have to fear government surveillance or persecution for what they say or think (or are!). And have access to the knowledge and information we've gathered, as humanity.

Unfortunately, the fight for Free Speech is old and is today loosing ground. More and more countries are censoring communication, blocking internet traffic for various reasons. Efforts like ownCloud are great, but not successful enough (yet).

I think we've got a problem here. We fail at protecting our online freedom but the wider public cares very little about these fundamental values. A lot of it is probably due to lack of knowledge and the complexities of the matter, as John Oliver explained in the video below. Or, as I'd like to put it, Freedom doesn't have cute ears and puppy eyes.


Value of freedom online

At some point, this failure is going to impact our real lives. Facebook already knows your political and sexual orientation and that information is dangerously interesting for governments and companies. Even more the ability to influence people if you have access to (and control over!) their online communication. Facebook proved in a recent paper that they could manipulate people's emotions through their news feed. Next is to make you (dis)like certain products, politicians and so on.

In case you were wondering: this, unfortunately, is no science fiction. Advertising works, but as any psychologist can tell you, it is not that strong and you can compensate for it. Our brains take the 'information' coming in from advertisement for second grade information: in case of conflict, it is immediately overridden by more important knowledge. Like what your friends think about something.

Unfortunately, more and more you read what your friends say about things on Google, Facebook and other online media. And they have figured out that using your friends to advertise things to you is terribly effective. Invisibly manipulating the time line on social media like Facebook (just show positive mentions about $PoliticalParty 5% longer, negative ones 5% less) can easily make and break elections. Right now, you still have to buy a senator, something at least a little visible...

Going wrong?

So there's the problem: these companies control our communication and can manipulate it, even without outright censorship. Your negative opinion expressed online about $POLITICIAN simply won't show in other people's feeds. Or only in the feeds of those who would disagree anyway, and will comment negatively, so you won't say that next time. Propaganda refined to perfection!

1984 was a world that was obviously wrong. In 2014 we've learned that it just won't be that obvious - but not any less wrong.

How are we going to solve this?