Frank Karlitschek announced the ownCloud project during his Camp KDE
presentation [PDF] in January in San Diego. After only five months, he has released ownCloud 1.0. It is meant to be a completely open source replacement, using the AGPL license, for proprietary cloud storage solutions like Dropbox or Ubuntu One.
OwnCloud, a KDE project (actually, a Social Desktop project), has a
strong use case: because KDE runs on all kinds of devices (work and home
PCs, notebooks and netbooks, mobile phones), it becomes more and more
problematic for users to keep their data synchronized between these
devices, or to create backups of their documents. A lot of users (not only
in the KDE world) have therefore migrated to web-based applications like
Google Docs, GMail and Flickr, or synchronization services like Dropbox and
Dropbox is a web-based file hosting
service that enables users to store their files on the servers of the
company Dropbox, synchronize them with their Windows, Mac or Linux computer
or their mobile device, and share them with others. Canonical's Ubuntu One offers roughly the same
functionality, but only has a Linux client for now. The unfortunate unifying theme in this trend is that all these web-based applications and services, including Canonical's, are proprietary. A few months ago, Frank described why it's important to create non-proprietary alternatives:
This trend is problematic and we have to make sure that free desktop applications don't get replaced by web based apps and become irrelevant in the next 10 years. It is also important that we still own our data and don't [lose] control over our personal files.
I think we have to make sure that our great KDE desktop applications support features like sharing data, accessing data from any device, automatic versioning, backuping and encryption.
A server in each house
The ownCloud project solves this by adding a relatively easy-to-install
server package as a companion to the user's desktop, notebook, netbook, and
mobile phone. Users can install ownCloud on their home PC that is publicly
accessible via a static IP address or dynamic DNS, or on a VPS (virtual
private server) or dedicated server that they rent. Files and other data
can then be stored on their personal cloud storage and made accessible to
all of their devices.
OwnCloud is a web application written in PHP. Users can choose between
MySQL and SQLite for the database. The latter is especially nice, because it makes the setup easy for new users. Moreover, ownCloud uses a database abstraction layer, so support for additional databases is possible. The project is already working on PostgreSQL support. Your author installed ownCloud 1.0 on a fresh Turnkey LAMP 2009.10 server, which is based on Ubuntu 8.04 and offers a fully configured LAMP stack (Linux, Apache, MySQL, and PHP/Python/Perl).
After the installation, users can open the ownCloud directory in their
favorite browser, which launches the "first run wizard" that helps with the
initial configuration. For instance, this allows the user to choose between
MySQL and SQLite, set up the administrative account, and it has some options for automatic backups, forcing SSL, and the location of the data directory.
When logged in on the web interface, the user can upload, download, or
delete files, create directories, look at the log of actions, and change
the settings. The possibilities are rather basic, though. For example, it's
not yet possible to move files between directories on the server and the
interface doesn't show any information about the files other than the file
name. So all in all, ownCloud's web interface isn't all there yet.
Essentially, ownCloud is a simple web-based file server: it stores the
user's files in some personal cloud storage. Users can then access these
files via a web interface, even on their mobile phones. But ownCloud also
supports WebDAV, so users are not limited to the web interface: their
documents folder can be mounted on Linux, Mac OS X, and Windows. Your
author mounted his ownCloud installation successfully on a Ubuntu 10.04
desktop with GNOME, using the "Connect to server..." menu. The WebDAV
directory that needs to be entered is listed on the bottom of the ownCloud
web interface, and if the web server supports SSL, access can be encrypted.
OwnCloud also supports the Open Collaboration Services API (OCS), so the user's ownCloud installation can push notifications to the KDE desktop if interesting events occur, such as someone who accesses a shared file or a full storage device. You have to use the latest KDE (KDE SC 4.5 RC1) to get notifications working, and the configuration is still a bit rough: the user has to add his ownCloud as a social desktop provider in the system settings "Account Details" - "Social Desktop" - "Add Provider" by entering the URL http://servername/ocs/providers.php. After this, add the "Social News" widget to the desktop or panel to see the notifications. This configuration setup will be made easier in ownCloud 1.1.
While the current release isn't overwhelming feature-wise, the project's
roadmap gives an idea
of some interesting features we can expect. For the next version, the plan
is to support easily sharing files and directories with other
people. There's also an idea to use the Git version control system as a
storage backend to have a history of all files. There will also be a command line synchronization client and a KDE front-end to be able to access files offline. According to Frank, it should be easy to develop a GNOME front-end for ownCloud, and he is already talking with some GNOME developers about a closer collaboration in the future. OCS is a Freedesktop specification, so it's not tied to KDE.
Moreover, one of the KDE Google Summer of Code students, Martin Sandsmark, is working on a client side library for better integration of desktop applications with the ownCloud service. When this library is finished, KDE applications can use it to easily store and share data like bookmarks, calendar data, or configuration data across different systems. The library is using the OCS API as a data exchange protocol, so it works together with KDE's social desktop project.
OwnCloud has a basic plugin system which will be improved a lot in version 1.1 (expected in August 2010). This means that enterprising users can write their own additional services in the future. Frank shares some interesting examples in his release announcement:
- A photo gallery plugins. So you can share your photos with others without uploading it to services like Flickr or Picasa.
- Music server. You can listen to your music from every device without copying it around.
- Podcast catcher. A central place to collect your audio and video podcasts and access it via a HTML5 interface or a native media player.
With respect to encrypted file storage, ownCloud is still in the planning phase. The idea is to develop an encryption backend using GPG, but this is not trivial; Frank told your author:
The handling of the GPG keys is not yet clear, because we have to store them on the client and we don't know how to transmit them using the web interface or WebDAV. If someone has an idea how this could be done in a secure but still usable way, please contact us on the mailing list firstname.lastname@example.org
On July 4, Frank will give a
talk about the future of ownCloud at Akademy 2010 in Tampere,
Finland. Developers who are interested in contributing can find the code on
Gitorious and discuss these
matters on the mailing list or the #owncloud IRC channel on Freenode.
Taking back control
With the recent trend of many open source users migrating to proprietary cloud storage solutions, it's nice to see that the ownCloud project is working on a solution that should be able to compete with them. While ownCloud 1.0 doesn't look that spectacular and is not well documented, the project's vision is. When ownCloud 1.1 is released in a few months, the software will probably be a lot more polished, and users will then really be able to take back control over their own data.
Comments (9 posted)
The Firefox 3.6.6 release is out. It seems that the crash protection
feature introduced in 3.6.4 caused some
grief for Farmville players
, so the frozen-plugin timeout has been
Full Story (comments: 24)
Version 2.0 of the k3b optical disk recording application has been announced
. "With a few exceptions, K3b keeps feature-parity with 1.0.x series, but it also introduces a number of new features. Perhaps the biggest among these is support for Blu-ray drives. Additionally a lot of work have been put into improving the overall user experience.
Comments (1 posted)
Version 4.4.5 of the KDE Software Collection is out. "This is expected to be the final bugfix and translation
update to KDE SC 4.4. KDE SC 4.4.5 is a recommended update for everyone
running KDE SC 4.4.4 or earlier versions. As the release only contains
bugfixes and translation updates, it will be a safe and pleasant update for
Full Story (comments: none)
The PostgreSQL project has announced that there's only one more update
coming for the 7.4 and 8.0 releases. "We urge users still using 7.4 or 8.0
in production to begin planning migration to newer versions
" Additionally, 8.1 goes unsupported in November.
Full Story (comments: none)
Version 1.3 of the PyPy Python implementation is out. There are a lot of
improvements and speedups
in the just-in-time compiler
, along with alpha-quality support for CPython
extension modules written in C. LWN looked at PyPy
back in May.
Full Story (comments: none)
The "newthreading" project within the Python community is a new attempt at
improving concurrency in Python programs and facilitating the removal of
the much-maligned global interpreter lock. A proof-of-concept
implementation has just been released. "This pure Python implementation is usable, but does not improve
performance. It's a proof of concept implementation so that
programmers can try out synchronized classes and see what it's
like to work within those restrictions.
" More information can be
found on the
Full Story (comments: 47)
The 1.0 release of the RedNotebook graphical journal is out. "It includes a calendar navigation, customizable
templates, export functionality and word clouds. You can also format,
tag and search your entries.
Full Story (comments: none)
Mozilla Messaging has announced the release
of the Thunderbird email client version 3.1. Based on Gecko 1.9.2, it has a number of new features and improvements
including a new quick search toolbar, improvements for searching, phishing protection, an attachment reminder, a one-click address book, and more.
"One-click Address Book is a quick and easy way to add people to your address book. Add people by simply clicking on the star icon in the message you receive. Two clicks and you can add more details like a photo, birthday, and other contact information.
" Click below for the full announcement.
Full Story (comments: 17)
Newsletters and articles
Comments (none posted)
Jean-Baptiste Queru talks
about the Android 2.2 code dump
from Google. "In order to make
it easier for device manufacturers and custom system builders to use Froyo,
we've restructured our source tree to better separate closed-source modules
from open-source ones. We've made many changes to the open-source code
itself to remove unintentional dependencies on closed-source
software. We've also incorporated into the core platform all the
configuration files necessary to build the source code of Android
Open-Source Project on its own. You can now build and boot a fully
open-source system image out of the box, for the emulator, as well as for
Dream (ADP1), Sapphire (ADP2), and Passion (Nexus One).
" The post
as a whole describes something which is beginning to look more like a real
open source project.
Comments (11 posted)
Ars technica looks
at an effort to create a native VP8 video codec implementation for the
FFmpeg project. "Building on top of FFmpeg will allow them to take
advantage of a substantial body of existing code. FFmpeg already supports
previous iterations of the codec, such as VP5 and VP6, which share some
common characteristics with VP8. According to [Ronald] Bultje, some of the
optimizations developed for FFmpeg's H.264 and VP5/6 code can be shared
seamlessly with the new VP8 implementation. This approach will lead to a
smaller footprint than if the developers were to simply graft Google's code
Comments (3 posted)
Python creator Guido van Rossum has been writing a series on the history of the
; the latest installment is titled From
List Comprehensions to Generator Expressions
". "Why the
differences, and why the changes to a more restrictive list comprehension
in Python 3? The factors affecting the design were backwards compatibility,
avoiding ambiguity, the desire for equivalence, and evolution of the
language. Originally, Python (before it even had a version :-) only had the
explicit for-loop. There is no ambiguity here for the part that comes after
'in': it is always followed by a colon. Therefore, I figured that if you
wanted to loop over a bunch of known values, you shouldn't be bothered with
having to put parentheses around them.
Comments (2 posted)
a prototype of a flexible database. "Knowledge was coded in Python to save development time and, while incomplete, allows the ideas behind Information Management software to be explored. Knowledge goes beyond existing KDE applications for storing textual information in a searchable format (Knotes etc.) because the data is stored in a highly structured way, which provides many possibilities for both the GUI display of data, and for searches. The data is stored in records, but unlike most other databases these are flexible as fields within each can be arbitrarily added, removed or re-ordered.
Comments (none posted)
Linux Journal reviews
an educational programming language for younger children, Scratch. "Scratch allows the user to write programs by dragging and connecting simple programming instructions. The programming instructions resemble puzzle pieces and will only "fit" together in ways that make semantic sense. For example, you can't put the "Start" instruction inside an "If" instruction. The instruction pieces are also color-coded according to what type of instruction they represent; all control structure pieces are yellow, while all motion pieces are blue. The program that the user creates controls one or more objects, or sprites. From a programmer's perspective, Scratch has a very sophisticated set of instructions, as we'll see soon.
Comments (24 posted)
Page editor: Jonathan Corbet
Next page: Announcements>>