ownCloud Planet

Welcome to ownCloud News, our contributor blog roll. ownCloud contributors should ask to get added!

Opinions are the responsibility of those who express them. See our privacy policy.

If you'd like to stay up to date with ownCloud news you could also subscribe to our newsletter!

Björn Schießle
Road Ahead
May 26, 2016

Road ahead

CC BY 2.0 by Nicholas A. Tonelli

I just realized that at June, 1 it is exactly four years since I joined ownCloud Inc. That’s a perfect opportunity to look back and to tell you about some upcoming changes. I will never forget how all this get started. It was FOSDEM 2012 when I met Frank, we already knew each other from various Free Software activities. I told him that I was looking for new job opportunities and he told me about ownCloud Inc. The new company around the ownCloud initiative which he just started together with the help of others. I was directly sold to the idea of ownCloud and a few months later I was employee number six at ownCloud Inc.

This was a huge step for me. Before joining ownCloud I worked as a researcher at the University of Stuttgart, so this was the first time I was working as a full-time software engineer on a real-world project. I also didn’t write any noteworthy PHP code before. But thanks to a awesome community I got really fast into all the new stuff and could speed up my contributions. During the following years I worked on many different aspects of ownCloud, from sharing, over files versions to the deleted files app up to a complete re-design of the server-side encryption. I’m especially happy that I could contribute substantial parts to a feature called “Federated Cloud Sharing”, from my point of view one of the most important feature to move ownCloud to the next level. Today it is not only possible to share files across various ownCloud servers but also between other cloud solutions like Pydio.

But the technical part is only a small subset of the great experience I had over the last four years. Working with a great community is just amazing. It is important to note that with community I mean everyone, from co-workers and students to people who contributed great stuff to ownCloud in their spare time. We are all ownCloud, there should be no distinction! We not only worked together in a virtual environment but meet regularly in person at Hackathons, various conferences and at the annual ownCloud conference. I met many great people during this time which I can truly call friends today. I think this explains why ownCloud was never just a random job to me and why I spend substantial parts of my spare time going to conferences, giving talks or helping at booths. ownCloud combined all the important parts for me: People, Free Software, Open Standards and Innovation.

Today I have to announce that I will move on. May, 25 was my last working day at the ownCloud company. This is a goodbye and thank you to ownCloud Inc. for all the opportunities the company provided to me. But it is in no way a goodbye to all the people and to ownCloud as a project. I’m sure we will stay in contact! That’s one of many great aspects of Free Software. If it is done right a initiative is much more than any company which might be involved. Leaving a company doesn’t mean that you have to leave the people and the project behind.

Of course I will continue to work on Free Software and with great communities, especially I have no plans to leave the ownCloud community. Actually I hope that I can even re-adjust my Free Software and community focus in the future… Stay tuned.

read more



ownCloud
Dropbox Up in Users’ Kernel
May 25, 2016

Did you hear the news? Yesterday Dropbox gave an overview of Project Infinite, which was officially released last month. According to the Dropbox blog, “Project Infinite is designed to enable you to access all of the content in your Dropbox—no matter how small the hard disk on your machine or how much stuff you have in your Dropbox.” Makes sense, every user should be able to access THEIR data. But there’s a catch, one which many people are not thrilled about.

Dropbox continues to state in their blog “Traditionally, Dropbox operated entirely in user space as a program just like any other on your machine. With Dropbox Infinite, we’re going deeper: into the kernel—the core of the operating system. With Project Infinite, Dropbox is evolving from a process that passively watches what happens on your local disk to one that actively plays a role in your filesystem.”

Uh, what? They’re “actively play[ing] a role in your filesystem?” Just looking at some of the reactions on Twitter to this announcement, many are less than happy, one might even say angry or “freaking out,” about this new development. And many are even suggesting a move to ownCloud, which of course is flattering.

 

Fullscreen capture 5252016 112119 AM.bmpFullscreen capture 5252016 112100 AM.bmpFullscreen capture 5252016 112005 AM.bmpFullscreen capture 5252016 111926 AM.bmpFullscreen capture 5252016 111949 AM.bmp

We have been discussing the ownCloud virtual filesystem for quite some time. This is our version of project infinite, but completely under your own control. In the spirit of being open, we don’t have all of the answers here, but I do encourage folks to take a look and see if they have anything to add, because this could be an awesome feature for everyone!With ownCloud users always have access to their files and because it is installed on your own system rather than into a third party cloud, ownCloud will never be able to “play a role in your filesystem.” You retain 100% of control over your files, as well as 100% privacy from prying eyes.

 

read more



Lukas Reschke
Farewell, ownCloud Inc.
May 23, 2016

I have been a contributor to the ownCloud project since the beginning of 2012. Starting as a volunteer my contributions were small. I joined the IRC channel, helped people out there and only over time I did start working with the code base more deeply.

The community aspect has always been my main fascination. Seeing people from all over the world, people with different background yet similar interests work together on a project, help each other out, create something they believe in and build strong friendships in the process was delightful, it took hold of me and wouldn’t let go. And so I started contributing myself which wasn’t as easy as it might seem to be. My first code contributions, in fact, (a reflected Cross-Site Scripting security patch) was actually submitted by somebody else for me as until then I never really used git in bigger scale development environments before.

Only a few days later I got a crash course on git by the friendly folks in the ownCloud community and got my own commit access. Four years later I’m in the top 5 of the overall contributors for the server core of ownCloud.

In the last nearly two years my work on ownCloud has been full-time. I have been employed by ownCloud Inc. as Security Engineer and so I was responsible for leading the security efforts and looking back I think we’ve done great job so far. This blog post gives you an idea of our accomplishments. The collaboration with HackerOne may not be the biggest but in my opinion surely one of the coolest things I’ve been involved in.

However, it is time to announce that I’ve handed in my resignation and Friday the 13th has been my last working day. From now on ownCloud Inc. and I will go our own, separate ways. As for me, I still believe in the open-source project as well as community-driven development. For these reasons I am staying within the ownCloud community, just not as an employee of ownCloud Inc. anymore. I will share with you where I’m heading to next in June.

read more



Jos Poortvliet
Moving on from ownCloud
May 20, 2016

A few days ago, I published my last blogpost as ’ownCloud’ on our blog roll about the ownCloud community having grown by 80% in the last year. Talk about leaving on a high note!

Yes, I’ll be leaving ownCloud, Inc. - but not the community. As the numbers from my last post make clear, the ownCloud community is doing awesome. It is growing at an exponential rate and while that in itself poses challenges, the community is healthy and doing great.

I joined in 2014, when ownCloud, Inc. had about 36 employees. The community grew that year, according to our history page, from 1 million users to 2.2 while the number of average coders per month went from 62 to 76. For me, the coolest thing that year was the ownCloud Contributor Conference, that brought together 100 contributors for a week of hacking at the university of Berlin. A stressful, but awesome week. Though, my first meeting most of my colleagues was some months earlier at the Stuttgart meetup and my first release was ownCloud 7 not long before the event.

2015 was more of that - our history page has a great overview and I’m darn proud of having been a part of all those things. 2016 brought ownCloud 9, a major release, which was accompanied by an overhaul of owncloud.org, I hope you like our new website!

Not everything is finished, of course. We’re still smack in the middle of awesome work with Collaboraand Spreedas well as the WDLabs PiDrive project - I just finished and published this page about it. All great stuff which has great momentum and will certainly move forward.

Myself, I’ll stay around in the community. I’ll talk about the awesome stuff that is coming next early June but until then, don’t hesitate to contact me if you’ve got any questions about ownCloud or anything else. You can still catch me on jos@opensuse.org;-)

read more



Evert Pot
sabre/xml and repeating elements
May 19, 2016

We recently got a support ticket with a simple sabre/xml question. Because it’s a nice demonstration for sabre/xml, I thought it would make for a short and sweet blog post.

eddy8 asks (paraphrased): how do I repeat the same xml element name, to create a structure such as this:

<?xml version="1.0"?>
<books>
    <book>php</book>
    <book>c++</book>
    <book>c#</book>
</books>

The code he started off with was this:

<?php

$service = new Sabre\Xml\Service();
$xmlstr = $service->write('books', [
    'book' =>  'php',
    'book1' =>  'c++',
    'book2' =>  'c#',
]);

But this generates this xml:

<?xml version="1.0"?>
<books>
    <book>php</book>
    <book1>c++</book1>
    <book2>c#</book2>
</books>

And you can’t use the same key in PHP arrays more than once. There are three possible solutions to this.

The first is to change how the elements are specified. Instead of a simple key value, you can use a structure such as this:

<?php

$service = new Sabre\Xml\Service();
$xmlstr = $service->write('books', [
    ['name' => 'book', 'value' => 'php'],
    ['name' => 'book', 'value' => 'c++'],
    ['name' => 'book', 'value' => 'c#'],
]);
echo $xmlstr;

In most cases this is probably what you want. A second option is to use a callback, the callback will automatically be called with the XMLWriter object:

<?php

$service = new Sabre\Xml\Service();
$xmlstr = $service->write('books', function(Sabre\Xml\Writer $writer) {
    $writer->writeElement('book', 'php');
    $writer->writeElement('book', 'c++');
    $writer->writeElement('book', 'c#');
]);
echo $xmlstr;

But this structure is a very common one. Many xml formats follow a pattern like this:

<collection>
   <item>...</item>
   <item>...</item>
</collection>

To facilitate this, there is a standard serializer function:

<?php

$service = new Sabre\Xml\Service();
$xmlstr = $service->write('books', function(Sabre\Xml\Writer $writer) {
    $books = [
        'php',
        'c++',
        'c#',
    ];
    Sabre\Xml\Serializer\repeatingElements($writer, $books, 'book');
]);
echo $xmlstr;

And that last form is very handy, because when you want to parse the xml file again later, you can use a similar repeatingElements function for the deserialization operation.

<?php

$xml = <<<XML
<?xml version="1.0"?>
<books>
    <book>php</book>
    <book>c++</book>
    <book>c#</book>
</books>
XML;

$service = new Sabre\Xml\Service();
$service->elementMap['books'] = function(Sabre\Xml\Reader $reader) {
    return Sabre\Xml\Deserializer\repeatingElements(
        $reader,
        'book'
    );
};
print_r($service->expect('books', $xml));

// output
// Array
// (
//     [0] => php
//     [1] => c++
//     [2] => c#
// )

read more