Frank Karlitschek_ http://karlitschek.de own clouds, free software and privacy Fri, 03 Oct 2014 13:08:36 +0000 en-US hourly 1 http://wordpress.org/?v=3.9.2 A possible future for PHP http://karlitschek.de/2014/10/a-possible-future-for-php/ http://karlitschek.de/2014/10/a-possible-future-for-php/#comments Thu, 02 Oct 2014 11:14:38 +0000 http://karlitschek.de/?p=484 ownCloud is one of the biggest open source project written in PHP if you look into the latest statistics. It is used for the server part of ownCloudas most of you know. We use other technologies like C++ and Qt for the Desktop Clients, Java for the Android app and Objective-C for iOS, JavaScript for the web-interface and more. But the heart of ownCloud is the server component which is using PHP 5.3 or higher..

There were several reason for choosing PHP:

  • The mission of ownCloud is to enable everybody to host their own cloud server. PHP is the technology that is available on most webservers, operating systems and platforms. So we make hosting of an ownCloud server super easier because it is written in PHP.
  • PHP is a scripting language which means that one server tar file runs on all platforms and no complicated cross-compiling and packaging is needed
  • PHP is very well known. A lot of people are familiar with PHP. And even the developers who don´t know PHP can learn is relatively easy. This is very important especially for an open source project. The bar to become a contributor should be as low as possible.
  • PHP is fast and quite powerful if used in the right way. A lot of big web application like Wikipedia, Facebook, WordPress and parts of Yahoo are written in PHP. So you can do a lot with it. Unfortunately is is also relatively easy to write bad PHP code. But more about this later.
  • There is a huge ecosystem of libraries, components and connectors/drivers available for PHP. For an open source project like ownCloud this is very cool because this means that you don´t have to reinvent everything from scratch. We stand on the shoulders of giants.

PHP is not the most hip programming language in the world. Actually the opposite. It has a relatively bad reputation. I personally was never a big fan of choosing the technologies based on what is cool or “modern” or in vogue. I think there are different technology for different jobs and they should be evaluated objectively and choose without to much emotion involved. So I don´t understand the religious discussions why tool x is always better than technology y. I think it is all about the right technology for the job after a fair assessment of course.

So i´m still very happy with this decision to use PHP. So far we have not seen any bigger architectural technical problems that we can´t solve with PHP.

Does this mean that PHP is perfect and I´m super happy with everything? Of course not. PHP was developed in the mid 90s at a time where no one could have imagined how the web looks like today. Some of the cool features of the time turned into a nightmare today. There is a lot to improve and I think even the core PHP developers agree with me here.

A few of the obvious shortcomings are:

  • Security. PHP in itself is not insecure and it is obviously possible to write perfectly fine and secure applications with PHP. But PHP decided to implement an quite naive approach about security and doesn´t support the developer too much in writing secure code. To be fair everybody was naive about web security in the 90s. So there are a not a lot of features available in PHP that actively support you with writing secure code. The database situation is a mess so a lot of people still don´t use prepared statement which leads to possible SQL injection. And filtering incoming data for XSS and other problems has to be done relatively manually. There are extensions and libraries available to help with all this problems but they are not part of the language/runtime core or are incomplete.
  • compile time / runtime configuration. Just for fun call the ./configure script to compile php yourself and look at all the compile options. And now look at all the options that can be set in php.ini by the server admin. On one side this is cool because an admin can enable and disable a ton for core features in PHP in a very fine granular way. But as a developer of an PHP application that should run on all available PHP servers this is a nightmare. You never know which feature is enabled and available. In ownCloud we have a lot of code that s the environment and the runtime to see if everything works as expected and adapts to it as needed. This is unfortunately not what you call a stable platform and a good OS abstraction.
  • There are some inconsistencies in the function and class namings. Sometimes unerscores are used and sometimes camel-case. Some features are available in a procedural style and some have an OO API and some even have both. There is a lot that should be cleaned up.
  • Static typing. This is totally a question of taste but sometimes I would really love to have a bit more static typing in PHP. Guess what this following code does if you have a file named “0” in your directory

while ( ($filename = readdir($dh)) == true) $files[] = $filename;

I would really love to see PHP moving to the next level and improving some of this shortcomings because most of it is really good.
But it is very important to do it right.

A latest article at ArsTechnica and Apples move to introduce Swift as Objective-C successor triggered my fantasy how a next generation PHP could and should be done. Keep a programming language backwards compatible or fix its flaws? - Apple Swift

There is the old and to be honest quite naive approach. The core team of a programming language just releases a new and incompatible version that fixes the flaws of the older version. Examples are Perl or Python. The problem is that it´s close to impossible to rewrite a big software project to make it compatible with a new version. So you end up with two versions of the programming language/framework/runtime for a very long time. Some applications run on the old version and some run on the old version. Libraries and dependencies are sometimes only available for one of the versions.
Migration is super hard and can´t be done piece by piece. Please see Perl6 and Phyton 2/3  as examples what a nightmare this can be. Both exist for a very long time and a lot of software is stuck in the middle of a migration story somewhere.

A more positive example is C++. It ´s still a very different language than C but the good thing is that it can be mixed inside an application. So in the 90s C developers were able to use the cool new C++ features in one part of the application without the need to rewrite everything from scratch.

Apples move to introduce Swift as a successor of Objective-C is very clever in my opinion. It´s completely new language but it´s running on the same runtime. This means that a developer can take an existing Objective-C application an just start to write the new features in Swift or replace pieces one after another with new Swift code. This than compiles into one binary that has no new runtime dependencies compared with Objective-C.

I wish PHP would do something that makes it possible to evolve and improve the language significantly but still provides a smooth migration experience not like Perl and Python did with introducing completely new backward incompatible releases.

So a good solution would be if PHP 6 or 7 would introduce a new tag to start a php file. For example <?PHPNEXT instead of <?PHP. Both modes are fully supported by the new PHP version and can be used in parallel in the same application or even in the same file. In the NEXT section the new and improved syntax is used.

Here are a few ideas for improvements that I would love to see:

  • Security. Kill the _GET and _POST and _SERVER arrays and introduce a proper API that can be used to filter all incoming data.
  • Database. PHP support a ton of different database API. Some of them are very old but they are inconsistent to use. Everything should be standardized so that only one OO interface exists. I personally would use PDO as a starting-point here.
  • 32bit / 64bit. Anyone who ever tried to write a PHP application that runs on 32bit or 64bit operating-systems will recognize that variables especially integers behave differently. I understand that this is a reminiszense to C/C++ but this is seriously a bad idea. I don´t want to have different code paths which have to be tested independently.
  • kill save_mode, open_basedir and other acient concepts
  • Remove most of the compile and runtime config options. All PHPNEXT runtime environments should be as similar and stable as possible.
  • Typing. It would be cool if PHP would introduce optional static typing. So that a variable can be declared as, for example, bool or int. An exception should be thrown if used otherwise.
  • Always use unicode strings

Some of this improvements are implemented in Hack which is some kind of PHP fork developed by Facebook. Hack is indeed an interesting concept that goes into a similar direction. They also use a new tag “<hh” so that code can be mixed in one file and they improve typing. At the moment it´s not clear how much energy Facebook will invest in the future to push Hack forward and how much adoption it will get outside Facebook. I´m especially worried how open they are for changes that are not important for them, how well and open this is governed. I would prefer an official and more generic approach from the PHP community which will be part of one of the next main PHP releases.

I hope by dream of a more modern and cleaned up PHP including a smooth migration path becomes reality in the next few years.
Obviously we at ownCloud couldn´t start to migrate to this new PHP mode before 95% of all PHP installations out there run with the new version. This will easily take additional 3-5 years.

By doing this big projects like WordPress or ownCloud would actually have a realistic chance to move to a cleaner and more modern language. But more importantly this would make PHP ready for the challenges of the future.

Please leave a comment here in the blog if you have an opinion about this.

]]>
http://karlitschek.de/2014/10/a-possible-future-for-php/feed/ 66
ownCloud 7 is out! http://karlitschek.de/2014/07/owncloud-7-is-out/ http://karlitschek.de/2014/07/owncloud-7-is-out/#comments Wed, 23 Jul 2014 13:06:16 +0000 http://karlitschek.de/?p=461 ownCloud 7 We just published ownCloud 7!

This awesome release brings many new features. Among them, I’m most excited about the server to server sharing.

Server to server sharing is a first step in true federation of data with ownCloud: you can add a folder shared with you from another ownCloud instance into your own. Next step would of course be to also share things like user accounts and data like chat, contacts, calendar and more. These things come with their own challenges and we’re not there yet, but if you want to help work on it – join us for the ownCloud Contributor Conference in Berlin next month!

A close runner-up in terms of excitement for me are the improvements to ownCloud Documents – real-time document editing directly on your ownCloud! We have been updating this through the 6.0.x series so the only ‘unique’ ownCloud 7 feature is the support for transparently converting MS Word documents, but that is a feature that makes Documents many times more useful!

There are many more features, you can find more details on the ownCloud website. The official announcement blog post is here.

A big THANK YOU

This would not have been possible without the hard work of the ownCloud community, so a big thank-you goes out to everybody who contributed! We have a large team of almost 100 regular contributors, making ownCloud one of the largest Open Source projects and that makes me proud.

Of course we have a lot of work to do: revelations of companies and governments spying on people keep coming out and our work is crucial to protect our privacy for the future. If you want to help out with this important work, consider contributing to ownCloud. We can use help in many areas, not just coding. Translation, marketing and design are all important for the success of ownCloud!

The release of ownCloud 7 is not only the conclusion of a lot of hard work by the ownCloud community, but also a new beginning! Not only will we release updates to this release, fixing issues and adding translations, but the community now also starts to update the numerous ownCloud apps to ownCloud 7.

Expect more from us. Now, go, install ownCloud 7 and let me know what you think of it!

]]>
http://karlitschek.de/2014/07/owncloud-7-is-out/feed/ 14
Free ownCloud mobile libraries released http://karlitschek.de/2014/02/free-owncloud-mobile-libraries-released/ http://karlitschek.de/2014/02/free-owncloud-mobile-libraries-released/#comments Thu, 20 Feb 2014 13:20:00 +0000 http://stage.karlitschek.de/2014/02/free-owncloud-mobile-libraries-released/ Today we are happy to announce the release of the ownCloud mobile libraries for iOS and Android. ownCloud is a free file sync and share solution. The main differentiator to Dropbox, Google Drive, and others beside being free software is that you can run it yourself wherever you want. Obviously a central place to you store your files is only useful if you can access it from all devices and integrate it with all of the applications that you use.
Because of that, the ownCloud strategy is to provide as many ways as possible to access files and data stored in ownCloud. We have a strong commitment to support open protocols and formats like WebDAV, CalDAV, CardDAV, OCS, ODF and others. So you can mount your ownCloud via WebDAV easily with KDE, GNOME, Windows, Mac and so on. It’s easy to integrate ownCloud with other systems by transferring files via WebDAV. This is the power of open protocols. But ownCloud provides much more than that. There are mobile applications for iOS and Android and Desktop syncing
clients that you can use to work with you files. The Desktop syncing clients runs on Mac, Windows and Linux and also ship with a command line client that can be used to automatically sync folders between desktops and the server or script it in any way. There is also a C++ library that can be used by 3rdparty clients like the KDE Plasma one. So there are a lot of options to access your ownCloud from the desktop.
On the phone and tablet side it was, until now, a bit more difficult. A user could use the official ownCloud apps, but if a 3rd party app wanted to access an ownCloud server, then the 3rd party app had to implement all of the WebDAV and REST calls needed to talk to ownCloud.
This is why today we released free libraries for iOS and Android that can be used used by mobile developers to add ownCloud support to their apps. They provide easy to use methods to read and write files, share files and many more useful operations. To make these libraries as useful as possible to as many developers as possible, we have released them under the MIT license.
The libraries can be download here
The documentation how to use them can be found here:
For any developer related questions please post to the new ownCloud developer list http://mailman.owncloud.org/mailman/listinfo/devel

 

]]>
http://karlitschek.de/2014/02/free-owncloud-mobile-libraries-released/feed/ 6
ownCloud 6 is here http://karlitschek.de/2013/12/owncloud-6-is-here/ http://karlitschek.de/2013/12/owncloud-6-is-here/#comments Wed, 11 Dec 2013 14:02:00 +0000 http://stage.karlitschek.de/2013/12/owncloud-6-is-here/ I’m supper happy to announce the release of ownCloud 6 today.
ownCloud 6 is a special release in several way. The community did an incredible job with improving ownCloud in several important areas.
  • Quality. ownCloud is a very fast moving project so it is super important to balance innovative new features with rock solid stability. The ownCloud community introduced several important techniques to improve the quality. As a result we fixed a huge amount of bugs in this release. Also some very old and annoying issues are finally gone. I think this is very important for a lot of users. We will release a series of bugfix releases for in the next few month to iron out the last remaining issues. This is a big step forward.
  • Performance. The performance of ownCloud 6 improved significantly over older versions. The overall file-handling is faster and more optimized. In some areas, like the mounting of SFTP, CIFS or Dropbox servers, the performance improved over 10x. This is great for people who run their ownCloud server on a small device like a Raspberry Pi or on a big cluster to serve hundred thousands of users.
  • Innovation It was always to goal of ownCloud to deliver innovative features to our users and to be the innovation leader in our space. I don’t want to repeat my previous blog posts where I announced the great new features of version 6. Just look at my posts here.  http://stage.karlitschek.de/2013/10/introducing-owncloud-6/ and http://stage.karlitschek.de/2013/10/welcome-owncloud-documents/ 
  • But I have to say that I’m especially proud about what we did with ownCloud Documents. This is a feature that doesn’t exist anywhere else. Other collaborative editing solutions are 1.) proprietary or 2.) don’t run on your own hardware or 3.) don’t work on top of normal files that you can also sync and share or 4.) a combination of all of this. I belief that this features is super important for the future and the huge response we got from users clearly show that I’m not alone here. This is only the first version of this feature of course. We will keep on improving and polishing it in the future.
Please look at http://owncloud.org/six for more information about ownCloud 6.
ownCloud is more important now then every if you follow the latest surveillance and espionage revelations. A free and self hosted alternative to the big proprietary cloud services is essential for the future.
Thanks to the awesome ownCloud community who builds all this. Thanks a lot to everyone who contributed to this great release. And thanks to ownCloud Inc. who sponsors the development of free software.
ownCloud is built by a great community with a completely open development process. Everyone is welcome to join us and help to build software which can protect all of us from surveillance. Please join us at https://owncloud.org if you want to make the world a little bit better.
Frank
]]>
http://karlitschek.de/2013/12/owncloud-6-is-here/feed/ 11
Welcome “ownCloud Documents” http://karlitschek.de/2013/10/welcome-owncloud-documents/ http://karlitschek.de/2013/10/welcome-owncloud-documents/#comments Thu, 24 Oct 2013 04:35:00 +0000 http://stage.karlitschek.de/2013/10/welcome-owncloud-documents/ A couple of weeks ago I blogged about the new features in ownCloud 6. I promised a special surprise in the coming weeks. And here it is. ;-)
In the past few month we have worked on a feature that will be super useful and popular. All the development happened in a public repository on github but we haven’t talked about it in public and perhaps it wasn’t obvious what it was for people who found it by accident.
I’m talking about collaborative editing! This feature is implemented in an app called “ownCloud Documents” and will be part of ownCloud 6. People can view and edit their ODF text documents directly in the browser, inside your ownCloud. Another cool thing is that you can invite users from the same ownCloud to work collaboratively on the same document with you. Or you can send invitation links by email to  people outside your server to collaborate with you on the document.
Several people can navigate in the same document with different  cursors at the same time and you can see the changes that are done by the different users in different colors. Every user is identified by the name and the nice avatar picture that we also introduced in ownCloud 6.
We implemented this feature together with our friends from KO GmbH. The browser part is based on WebODF with a new ownCloud backend to load, save, share documents and a system to distribute the document changes.
This feature is special in several ways:
  • It runs purely on your server. No communication with centralized services like Google — so your data is always protected against surveillance.
  • We didn’t introduce any new server requirements here. Just take  ownCloud and put it into your web server document root and you have your own collaborative editing server. This is far easier to install and run than for example Etherpad.
  • All the documents are based on ODT files that live in your ownCloud. This means that you can sync your documents to your desktop and open them with LibreOffice, Calligra, OpenOffice or MS Office 2013 in parallel. Or you can access them via WebDAV if you want. You also get all the other ownCloud features like versioning, encryption, undelete and so on. This is very unique I think.
  • All the code is completely free software. The PHP and the JS components are released under the AGPL license. This is different than most other solutions. Some of them claim to be open source but use creative commons as a code license which is not free software.
Please note that this is only the first version of this great feature. Not every ODT element is supported but we are working on improving this considerably in the future. We will invest significantly in this because we think that this is a very important feature that is useful for people.
More information about this feature including a demo video and all the other new ownCloud 6 features can be found here:
ownCloud Documents is part of the ownCloud 6 beta 1 that you can download here:
Thanks to the awesome ownCloud community who implemented this innovative feature. Special thanks to our friends from KO GmbH. It’s great to work with you. And thanks to ownCloud Inc. who sponsors the development of free software.
ownCloud is built by a great community with a completely open  development process. Everyone is welcome to join us and help to build software which can protect all of us from surveillance. Please join us at https://owncloud.org if you want to make the world a little bit better.
]]>
http://karlitschek.de/2013/10/welcome-owncloud-documents/feed/ 22
Introducing ownCloud 6 http://karlitschek.de/2013/10/introducing-owncloud-6/ http://karlitschek.de/2013/10/introducing-owncloud-6/#comments Wed, 09 Oct 2013 16:08:00 +0000 http://stage.karlitschek.de/2013/10/introducing-owncloud-6/ Today we release the first Alpha of the latest (ownCloud 6) Community Edition and I’m extremely excited by the latest features. ownCloud 6 is the fastest, best looking, easiest to use ownCloud yet. Oh, and it has a ton of cool, new features that the community can use to safely and privately sync and share files. We also spend a lot of energy on stabilizing and fixing bugs and we will keep on doing this in the future.
The brave at heart can take a look at the Alpha 1 now (warning, may kill your hamster). I’ve listed some of the top features below (more detail to come), and there may be a surprise or two added in the coming weeks.
A new era has begun at ownCloud, ownCloud 6 — thanks to all who helped virtually and in-person in Berlin.
  • Activity feed. See what is going on in your ownCloud
  • Improved design. Less visual clutter and more space for better focus
  • Performance. Improved performance across the board.
  • Avatars. People can upload pictures of themselves that augment their interactions, so users are easily recognized by others.
  • Previews. Thumbnails for filetypes are shown in the interface.
  • Conflict handling. A new web conflict dialog if a file is uploaded that already exists.
  • ownCloud App API. Easier development of 3rd party apps, easier access to core functions for app development.
  • Share file notification. Send an email if sharing a file or folder.
  • Example files for new users. Load new user’s with files, such as a tutorial on how to use ownCloud, which appears when they first log in.
  • Sharing REST API. Control sharing from mobile apps and desktop clients
  • App management. Improved management of 3rd party apps.
  • Bug fixes. A ton of bugfixes went into this release
  • Many smaller improvements
Thanks a lot to everyone in the community who contributed and made ownCloud possible. ownCloud is an open free software community project. Everyone who wants to contribute is welcome. So join us.
]]>
http://karlitschek.de/2013/10/introducing-owncloud-6/feed/ 12
Introducing CONTRIBOOK http://karlitschek.de/2013/08/introducing-contribook/ http://karlitschek.de/2013/08/introducing-contribook/#comments Fri, 02 Aug 2013 18:24:00 +0000 http://stage.karlitschek.de/2013/08/introducing-contribook/ I wan’t to introduce a small side project of me today that we needed for ownCloud but could be useful for other too. It’s call CONTRIBOOK and I planed to do this for many years. Lately I was sitting in planes and trains a lot so I have some time to finally do the version 1.0 It’s a tool that can be used for community building and showing community activity as we wanted to do on ownCloud.org but it’s very generic and can be used by other open source projects tool.

Many years ago when we rebranded KDE from KDE the software to KDE the community the question came up how this should be reflected on the KDE.org website. It was clear that we should show the KDE community on the website in parallel to the software that we do. So I hacked together a few PHP scripts that show the latest blog posts, the latest forum posts and the latest applications on the homepage. This was always planed as a first step but somehow I never found the time to improve it.
Today at ownCloud we are facing the same problem. We want to show the activity of our awesome community on the homepage and invite new contributors but this is not very easy. We are even struggling with our ownCloud blog planet on the homepage. We used a WordPress plugin for that but we had to shut it down because of serious bugs that are not fixed by upstream.
We could just install one of the existing planet software modules that are used by other free software communities but I always found the functionality very limited and I wanted to do something more.

So today I want to announce 1.0 of CONTRIBOOK. It is only the first version but it can already do a lot. I hope that a lot of people use it and contribute to it. It is a tool that can be used for community building. It replaces a normal planet software and adds a few tweaks like responsive design and endless scrolling. But it does a lot more. It collects all kinds of social media information like Twitter posts, Blog posts, forum posts, github commits, RSS feeds and more and shows them in a nice way. You can have a nice feed with the latest activities of your community on a page like the homepage for example. A list of the latest commits, bugs or twitter posts or content entries from an OCS server. Every user can have a profile page with a nice description, a photo, links to other sites with more information and also the latest activities like blog posts, commits and so on.
All the user data is stored in a database. So to add or edit user accounts you have to change it in the database. In the future a user should be able to keep the own information up to date with an html form. This is planed for the next version.

We currently used it on ownCloud.org for the planet page to show the blog posts with nice endless scrolling (http://owncloud.org/news), the contacts page for a list of core contributors and links to profile pages (http://owncloud.org/about/contact), the new apps page (http://owncloud.org/about/apps/) and the homepage (http://owncloud.org) I plan to extend it with more features over time but I also hope that other contribute and that it will be used by other free software projects like KDE or GNOME too.
It’s AGPL licensed and lives here: https://github.com/contribook

Feedback, help and pull requests are very welcome.

Frank

]]>
http://karlitschek.de/2013/08/introducing-contribook/feed/ 4
Thoughts on privacy http://karlitschek.de/2013/07/thoughts-on-privacy/ http://karlitschek.de/2013/07/thoughts-on-privacy/#comments Tue, 30 Jul 2013 17:47:00 +0000 http://stage.karlitschek.de/2013/07/thoughts-on-privacy/ There is currently a huge public discussion going on about privacy, what it means in the Internet age, is it important or an outdated concept? Are there exceptions allowed? Does the government have special rights to see private documents and communication of the people? Does the government have the right to keep information about what it is doing private or should the government be 100% transparent? Is security more important than privacy?

In the good old days, and I mean 20 years ago, we had very clear regulations and laws about what the government and the police were allowed to do and in what way. I talk mainly about Germany here but I believe this is true for most democratic countries. The content of letters is protected by a special law in Germany called “Briefgeheimnis”. The post office and the police are not allowed to open letters unless there is a strong suspicion that the sender or receiver is a criminal and the letter contains some important evidence. Opening and reading a letter also requires approval from an independent judge. The same is true for telephone calls. It is possible to wiretap it but only in limited cases and after a judge’s approval.  A house search to look at private documents is even more difficult and is not possible even with very strong evidence and after a major crime.

There is a strong protection of the privacy in the offline world.

In the online world of the internet accessing private data is very easy from a technology standpoint. You don’t need a police force to break down your door. You just flip a bit on a server and suddenly someone has full access to all the personal communications and documents of a person.

Some people think that violating the privacy of people is not a problem in the digital world because it is so much cheaper and somehow ‘natural’. It seems to be so easy and built into the technology that all data flows freely without borders and rules.

There is a movement called ‘post privacy’. Some people think that in a post-privacy world everybody loses control over their personal data anyway so we should just live with it and make the best out of it. Think about all the bank robbers we can catch if everyone has access to all phone calls, personal computers and emails. Privacy is a concept of the past and the digital world and the concept of privacy is incompatible by nature.

We don’t control our data anyway. So get over it and stop caring.

A live stream of me sitting on the toilet? A webcam in my bedroom? All my phone calls and all my 1×1 conversations are recorded, public, indexed with voice recognition and searchable? Maybe this is the future? I don’t know. Currently I can’t imagine a world like that and I don’t like the idea for sure. Do you close the door if you sit on a public toilet? If yes, than you agree with me that we all have the need for privacy.

I think the right of privacy is something that has its roots deep in human nature. It’s part of the International Bill of Human Rights of the United Nations and part of the constitution of most democratic countries in the world. Some politicians say that security is more important than privacy. So it is O.K. to violate the privacy of all people because this is needed to fight terrorism.

This is a difficult statement for several reasons. First of all there is not a direct connection between surveillance and security. So a society with total surveillance is not necessarily safe. And a society with strong privacy laws is not necessarily insecure. Examples of countries with strong surveillance are East Germany, Nazi Germany, Cuba or Iran. Examples of countries with low surveillance but still low crime rates and no terrorism are the Scandinavian countries or Spain. Another problem is that surveillance might help the police catch a bank robber but a suicide bomber doesn’t care if you have a video of the terrorist act.

Another fundamental issue with surveillance of people is that the secret services who do the surveillance live basically in the shadow and are not democratically controlled. This makes sense because who would vote for a government that spies on the own people? There must be a reason why secret services are secret and I bet it has something to do with a special interpretation of some laws.

If I would plan a criminal act than I would encrypt my communication and data of course. Only stupid terrorists wouldn’t use strong cryptography or steganography for their communication. So you only hit the “normal” people or the stupid criminals with massive surveillance of everybody.

Another problem is that people behave differently if they know that someone is watching them. This is described in a good way here. (http://www.surveillance-and-society.org/Articles4(1)/student.pdf). So massive surveillance changes the society fundamentally.

Massive surveillance of the people by the society also raises serious democratic concerns. One of the most basic democratic principals is that people vote and control the government based on the actions the politicians are doing and how well they represent the will of the people. This principalv doesn’t work anymore if you have a society with secret laws, secret courts, secret court rulings and secret government organizations in general.

I’m using services like Facebook, Google, 500px.com and others that are known for violating my rights for privacy. Why do I do that? Isn’t this strange for someone who is concerned about privacy rights? I thought about this a lot. Why I was sort of OK with these services in the past? The reason is probably that I only have personal information on these websites that I consider public anyway. Because of that I basically disabled the privacy settings completely and everything about me on this sites is completely public. I don’t trust them to protect my private data like email, documents, address book and so on. Because of that I’m running my own mail server  forever and my ownCloud of course. This works for me but could be a different decision for everyone else.

So the conclusion here is that it is all my choice what I expose to the public and what not.

In Germany we had a ruling of the Bundesverfassungsgericht in the 80s which is the highest court about a principal called “Informationelle Selbstbestimmung“. The english translation could be “informational self-determination”. It means that it is the right of every person to decide what information is private and what is exposed to the public. It defines the rights of every person to control their own data and the privacy. Very similar to the user data manifesto from me. (http://userdatamanifesto.org/)

But has the government the right to override my choice?

I think the government has the right to restrict my personal freedoms and rights if it is important for the well being of the general public. So the state has the right to arrest criminals for example. But has the state the right to violate my personal privacy and to spy on my personal communication without any evidence? To practice complete surveillance on one person? Absolutely not!

Am I a criminal or terrorist or do I have something to hide from the government?
NO!

Do I still have the right to keep my privacy and do want to keep things to myself?
Hell, YES

]]>
http://karlitschek.de/2013/07/thoughts-on-privacy/feed/ 5
The new ownCloud 5 features! http://karlitschek.de/2013/03/the-new-owncloud-5-features/ http://karlitschek.de/2013/03/the-new-owncloud-5-features/#comments Fri, 15 Mar 2013 16:49:00 +0000 http://stage.karlitschek.de/2013/03/the-new-owncloud-5-features/ Yesterday I blogged about the ownCloud 5 release in general and I promised to blog today about all the features that are new and improved in ownCloud 5

New design
In ownCloud 5, the main navigation was redesigned to clearly differentiate it from the in-app navigations. This also allows the app more room and thus a better focus on the content of your ownCloud directories. Settings and Log-out menus were combined into a user menu on the top right, which also shows the currently logged in user and makes it more intuitive to use. The settings are further simplified and app-specific settings are moved from personal settings into the relevant apps. To help people get their data synchronized, there is a new first run page linking the desktop & mobile apps as well as documentation how to sync contacts and calendars. This information is also displayed in the personal settings – and makes getting started with ownCloud much easier for a user.

Essentially, the new design helps to concentrate more on the content and makes it easier to navigate and setup the Desktop and Mobile syncing clients.

New Antivirus App
The new antivirus system scans uploaded files for viruses. The admin can choose if infected files should be deleted automatically and/or logged/reported in the log file.

New Files Undelete feature
Now users can undelete a file that was accidentally deleted through the web interface. Simply select the files in the files undelete section and they are returned to where they were deleted, with versions maintained.

New REST APIs
A new Open Collaboration Services (OCS)-based REST API is added to access and control ownCloud remotely. The newly released OCS 1.7 spec is supported. Main feature is a new capabilities API for closer communication with the Desktop and Mobile clients. It is now very easy for ownCloud apps to provide an REST API so more API features will be added in the future.

Display names
In the interface and share dialog, display names are shown instead of the login names. The display names are easier to understand for users and can be changed by the admin. The admin can configure the display names and they can be changed by the users themselves. The display names can also be fetched from an LDAP or AD server for bigger installations. This makes it much easier to work with ownCloud, as users are identified separately from their system-generated IDs

New search engine
A new Lucene-based full text search engine app is added. People can use the search to not only find files by name but also by content. Scanning is done in the background to ensure a responsive user experience for the users.

New photo gallery
ownCloud 5 contains an improved and rewritten photo gallery. It has an improved and streamlined user interface with a slideshow feature. Photo galleries can also be shared with others.

New documentation system
There is completely new user, admin and developer documentation. The user and administrator documentation is shipped with ownCloud and available in the help menu. The developer documentation is available online.

LDAP / AD enhancements
LDAP can now search in attributes, not only in the ownCloud username. The search attributes can be configured. Multiple User/Group bases can be configured in the LDAP backend. LDAP backend supports paged results for better performance if the server offers it (requires PHP 5.4) An LDAP/AD backup resp. replica host can be configured for HA environment. Multiple LDAP / AD servers can be configured.

Enhanced external storage app
Increase performance of integrated secondary storage, including Dropbox, Swift, FTP, Google Docs, S3, WebDAV and external ownCloud servers, with a significantly faster, more efficient and easier external storage app. This is the fastest way to a personal hybrid cloud.

Improved Versioning
The versioning support for files is improved with an intelligent algorithm that automatically expires old versions if running out of space. The versioning keeps revisions every 2 seconds for the first 10 seconds, every 10 seconds for the next minute, every minute for the next hour, every hour for the next 24 hours and one revision per day until running out of space or quota.

Expanded file cache
The file cache was rebuilt in ownCloud 4.5, and underwent a minor facelift in ownCloud 5.0 to improve speed, performance of external files, and scalability of sharing. The system is also a little faster with the new file cache, and less prone to corruption in production.

Improved apps management
The management of the shipped and the 3rd-party apps in ownCloud is improved. 3rd-party apps can be easily installed from the central apps repository (apps.owncloud.com) and are automatically removed from the server if disabled. If a new version of an 3rd party app is published by the author then an update button appears on the apps page inside ownCloud and he app can easily updated with just one click. More feedback is now given to the user during long running installation and updating operations. Recommended apps are shown in the apps list with a “recommended” label so that users can find high quality apps better.

Improved bookmarks
The user interface of the bookmarks app is improved and a lot easier to use.

Improved contacts
Contacts are now organized by groups (categories) instead of address books giving more intuitive access to Friends, Coworkers, Family etc. The main view shows an overview of the most relevant fields and the amount of info adjusts automatically depending the size of the browser window or device. The web UI is now written entirely in javascript giving a more responsive user experience.

Improved syncing
The desktop syncing clients and the mobile clients have improved communication with the server and can sync faster with lower server load.

Improved calendar
The calendar has now support for classed and the option to declare events as confidential or public. The sharing is improved and compatibility with clients also extended.

General fixes
In general, there were a number of bug fixes, UI enhancements, and improvements in performance.  Most notably a 5x improvement in disk write actions, as well as better overall scalability of ownCloud across the board.

  • Windows Server support extended
  • PDF viewer is updated for improved performance and compatibility
  • Improved media player
  • Improved overall performance
  • Improved download performance
  • Show file size and progress during downloading

More information here: http://owncloud.org/features

Thanks a lot to everybody who made this release possible. You guys rock.

]]>
http://karlitschek.de/2013/03/the-new-owncloud-5-features/feed/ 2
ownCloud 5 released: a vision realized, a vision expanded http://karlitschek.de/2013/03/owncloud-5-released-a-vision-realized-a-vision-expanded/ http://karlitschek.de/2013/03/owncloud-5-released-a-vision-realized-a-vision-expanded/#comments Thu, 14 Mar 2013 07:14:00 +0000 http://stage.karlitschek.de/2013/03/owncloud-5-released-a-vision-realized-a-vision-expanded/ Today we released ownCloud 5, a very important milestone for the ownCloud community and perhaps the most important release so far. But before going into the details I want to take a step back and look at what the original idea of ownCloud was at the beginning.
The idea of ownCloud was and is to enable everybody to host, control and sync and share their personal data without giving control away to the big data silos like Dropbox, Google Drive, Skydrive and iCloud. I think today we have all the features in place to say that we reached this goal. Everybody from a home user to a big enterprise can host their own personal cloud installation. I’m also super happy about the integration into KDE and GNOME because this is important to provide a really seamless experience for users.
It’s a coincidence that CERN invited me to give a talk about ownCloud and data silos that I will give here in a few hours at the exact same day ownCloud 5 is released. CERN is also the place where Tim Berners-Lee invented the World Wide Web 22 years ago. It’s interesting that the Web was built as a completely decentralized system where no distinction between someone who is publishing data and someone who is consuming data exists. There is no concept of a centralized entity that everybody connects to. Everybody can be sender and receiver at the same time. Just as Berthold Brecht proposed in 1932.
Interestingly, the web looks a bit different today where a huge amount of the traffic goes through websites like Facebook, Google, Dropbox and Amazon. Where is the idea of a decentralized and federated web?
Today we are deciding how the world will look like in the future. We, the IT community, set the course of the train that is called “open society” now and we can decide into which station the train will roll into in 5-10 years. Is it the one where all the people still control their own data and information and can decide who has access to the personal files, photos, contacts, location data, chat messages and other personal information or will we live in a future where all the personal data of all the people in the world are stored on the servers of just a few big organizations and commercial interests, terms of services and secret services decide who has access to the digital life of everybody?
If you care about these questions then join the ownCloud community or other free software projects and work on decentralized and federated alternatives.
ownCloud 5 is the result of the work of our awesome developer community. More and more people join and are getting more involved. To me this is a sign that we are doing something right and that ownCloud is not just a crazy idea that no one needs but something that is very important to a lot of people.
We did 2 major developer meeting during the development of ownCloud 5. One in Berlin and Ann Arbor in parallel last fall to do most of the ground work. And one just a few week ago in Stuttgart to really streamline and polish ownCloud 5. We will do the next developer meeting in a few month and
everybody is welcome.
ownCloud 5 is also proof that a company and an open source community can work together on a product in a very open and effective way. It is needed of course that both parties have a shared interest in the success of a product and that the development happens in the open. But I must say that I’m proud that we managed to set this up in a way that works very well.
We added a ton of cool new features in ownCloud 5. The features are interesting enough so that they deserve a blog post on their own. So tomorrow I will blog about the new ownCloud 5 features. But as important as the new features are three other things:
Quality
A lot of work to improve the quality of ownCloud went into the version 5. We launched a quality imitative during our developer meeting last fall. We introduced peer reviews for all commits that go into the core. We launched a new documentation system that has great new docs for users, administrators but also developers. We have improved application templates and sample code to help newcomers, we launched a new Jenkins-based continuous integration testing imitative with a lot of tests. We switched to a new and better bugtracker and provide daily builds of the server and the clients. This all
helped us to increase the quality of ownCloud 5 significantly.
Security
I’m so proud that we have a top notch security team at ownCloud. We have a state-of-the-art workflow when someone reports a security problem to us – including a responsible disclosure policy, publishing bugfix releases quickly and releasing advisories on our website. In ownCloud 5 we also added a few significant security enhancements including better CSRF checks, improved data sanitization and we disabled inline Javascript to prevent XSS bugs.
Performance
A lot of work went into ownCloud 5 to improve the overall performance. One of the key components is our filesystem cache and abstraction layer. This was completely rewritten to improve the performance significantly. Some tests show up to 500% faster performance compared with ownCloud 4.5. if you work with a lot of files or you have a server with a lot of users. We also looked into the overall database structure and optimized it for big installations. The sync protocol was also improved to reduce the roundtrips between the clients and the server to sync faster.
ownCloud can be downloaded here: [owncloud.org] There will me release parties in Berlin and Stuttgart including, talks from developers, on friday. So please join us if you are interested: [events]
Thanks a lot to everybody who made this release possible. You guys rock.
]]>
http://karlitschek.de/2013/03/owncloud-5-released-a-vision-realized-a-vision-expanded/feed/ 5