ownCloud Planet

Thomas Tanghus
Infoworld author deleting factual comments
July 30, 2014

So I came across this ridiculous article, and since the author got his facts all wrong - and I had a few beers - I decided to comment on it:

The author of this "article" hasn't done much research, but is an eloquent click-baiter.
Jolla has been shipping SailfishOS devices to Europe since late 2013 and is now opening markets in India (a pretty big market) and (of all places?) Kazakhstan. China is targeted for later this year.
And it's not low-end devices, but rather mid-range. Us early adopters actually paid €400 to get our hands on it.
The "eco-system" is not a big problem either, as you can run almost all android apps seamlessly.

The author replied soon after:

GGruman: (@GGruman is apparently his personal Twitter account, while his "professional" is @MobileGalen)

You're right about Jolla shipping in Europe. I forgot about that; they've shipped some hundreds there since last fall, at iPhone/Android prices. But they're not in India yet; they're still talking about that. Here's a good review of the hardware and OS: http://www.engadget.com/2013/1...

I was overly focused on the Sailfish OS open source project, which seems very stalled: https://sailfishos.org.

As his "facts" were way off, I tried to make a few more comments to correct them, but they mysteriously went missing...

I tried once more to post my comments in a single post, which also went AWOL:

Since the author seems to be deleting my replies to his reply, I'll repost them here:

As they (Jolla Oy, Ed.) haven't revealed sales figures, no one really knows how many they've sold, but the production batches - I bet - are more than "some hundreds" and IMEI numbers suggests they're at least well into their second batch.

As for "still talking about that" with India, you can read the joint press release from Jolla and Snapdeal (with 25 million+ customers): http://jolla.com/media/documents/Jolla_Snapdeal_press_release_July18_2014_FINAL.PDF

Have a look at the community platform btw: https://together.jolla.com/
Stalled? Not so much!

https://sailfishos.org/ is mostly documentation. Most communication is on Together, mailing list and IRC (#jollamobile and #sailfishos on freenode).

But yes, SailfishOS - besides the GNU/Linux stack behind - is new in town and has it's bugs and a relatively high learning curve (a couple of days) because it's not just tap-on-buttons, but extends the Meego/Harmattan gesture based interface enabling you to use the phone much more intuitively.

The article you link to is 8 months old, when only a minute portion of the pre-ordered devices had been delivered. Since then Jolla have been making *monthly* updates each improving the stability and user experience.

flattr this!

read more

Efstathios Iosifidis
Install ownCloud 7 on Raspberry Pi (Arch Linux) using Lighttpd
July 29, 2014

Raspberry Pi logo

ownCloud 7 was out on July 23rd 2014. I spent couple of days to test it and then blog about it. You already saw my previous posting about installing ownCloud on Arch Linux Rasbperry Pi. I'll use the same base and I'll correct/add some more info. So this post might be long but analytic with lot of pictures!!!

Here we'll see the basic installation. My next posts will be about securing the ownCloud instance. For my project, I used a Raspberry Pi (Model B), a 8GB SD card. It's connected with ethernet and the power plugs on my router (there's a USB that can be used as SAMBA server or Print Server).

ownCloud Raspberry Pi box

I used Arch Linux as distro, because I wanted to have the latest packages.

This tutorial has 3 sections:

Before we start, download Arch Linux image for Raspberry Pi. Create the SD card (dd if=Arch.....img of=/dev/sdX bs=1M;sync).

1. Now boot your Raspberry pi and update everything:

pacman -Syu

2. Mount the extra partition you made. How to do that?

Find the name of the partition

cat /proc/partitions

Usually it'll be mmcblk0p3. You won't see it there. So create it. How?

cfdisk /dev/mmcblk0

and go to the free space and create the partition (it's easy to do it with the arrows). Reboot.

Format the partition to ext4
mkfs.ext4 /dev/mmcblk0p3

Change the permissions
chmod -R 770 /dev/mmcblk0p3

Create the mount point
mkdir /mnt/sd

Add the extra space to fstab
nano /etc/fstab

# and add the following line
/dev/mmcblk0p3 /mnt/sd ext4 defaults 1 0

Now reboot your Raspberry Pi.

3. Install all needed programs (Sqlite, Lighttpd etc)

pacman -S lighttpd fcgi php-cgi php-sqlite openssl

4. Change Lighttpd properties:

nano /etc/lighttpd/lighttpd.conf

and change it to the following:

server.port = 80
server.username = "http"
server.groupname = "http"
server.document-root = "/srv/http"
server.errorlog = "/var/log/lighttpd/error.log"
dir-listing.activate = "enable"
index-file.names = ( "index.html","index.php")
mimetype.assign = (
".pdf" => "application/pdf",
".sig" => "application/pgp-signature",
".spl" => "application/futuresplash",
".class" => "application/octet-stream",
".ps" => "application/postscript",
".torrent" => "application/x-bittorrent",
".dvi" => "application/x-dvi",
".gz" => "application/x-gzip",
".pac" => "application/x-ns-proxy-autoconfig",
".swf" => "application/x-shockwave-flash",
".tar.gz" => "application/x-tgz",
".tgz" => "application/x-tgz",
".tar" => "application/x-tar",
".zip" => "application/zip",
".mp3" => "audio/mpeg",
".m3u" => "audio/x-mpegurl",
".wma" => "audio/x-ms-wma",
".wax" => "audio/x-ms-wax",
".ogg" => "application/ogg",
".wav" => "audio/x-wav",
".svg" => "image/svg+xml",
".gif" => "image/gif",
".jpg" => "image/jpeg",
".jpeg" => "image/jpeg",
".png" => "image/png",
".xbm" => "image/x-xbitmap",
".xpm" => "image/x-xpixmap",
".xwd" => "image/x-xwindowdump",
".css" => "text/css",
".html" => "text/html",
".htm" => "text/html",
".js" => "text/javascript",
".asc" => "text/plain",
".c" => "text/plain",
".cpp" => "text/plain",
".log" => "text/plain",
".conf" => "text/plain",
".text" => "text/plain",
".txt" => "text/plain",
".spec" => "text/plain",
".dtd" => "text/xml",
".xml" => "text/xml",
".mpeg" => "video/mpeg",
".mpg" => "video/mpeg",
".mov" => "video/quicktime",
".qt" => "video/quicktime",
".avi" => "video/x-msvideo",
".asf" => "video/x-ms-asf",
".asx" => "video/x-ms-asf",
".wmv" => "video/x-ms-wmv",
".bz2" => "application/x-bzip",
".tbz" => "application/x-bzip-compressed-tar",
".tar.bz2" => "application/x-bzip-compressed-tar",
".odt" => "application/vnd.oasis.opendocument.text",
".ods" => "application/vnd.oasis.opendocument.spreadsheet",
".odp" => "application/vnd.oasis.opendocument.presentation",
".odg" => "application/vnd.oasis.opendocument.graphics",
".odc" => "application/vnd.oasis.opendocument.chart",
".odf" => "application/vnd.oasis.opendocument.formula",
".odi" => "application/vnd.oasis.opendocument.image",
".odm" => "application/vnd.oasis.opendocument.text-master",
".ott" => "application/vnd.oasis.opendocument.text-template",
".ots" => "application/vnd.oasis.opendocument.spreadsheet-template",
".otp" => "application/vnd.oasis.opendocument.presentation-template",
".otg" => "application/vnd.oasis.opendocument.graphics-template",
".otc" => "application/vnd.oasis.opendocument.chart-template",
".otf" => "application/vnd.oasis.opendocument.formula-template",
".oti" => "application/vnd.oasis.opendocument.image-template",
".oth" => "application/vnd.oasis.opendocument.text-web",

# make the default mime type application/octet-stream.
"" => "application/octet-stream",

server.modules = (

fastcgi.server = ( ".php" => ((
"bin-path" => "/usr/bin/php-cgi",
"socket" => "/tmp/php.socket"

# OWNCLOUD # Disable access to data folder
$HTTP["url"] =~ "^/owncloud/data/" {
url.access-deny = ("")

# OWNCLOUD # Disable directory listing
$HTTP["url"] =~ "^/owncloud($|/)" {
dir-listing.activate = "disable"

I usually copy the file to another file, then delete it and create it from scratch.

cp /etc/lighttpd/lighttpd.conf /etc/lighttpd/lighttpd.conf.old

rm /etc/lighttpd/lighttpd.conf

# and then

nano /etc/lighttpd/lighttpd.conf

Now run the server:

systemctl start lighttpd.service
systemctl enable lighttpd.service

You can check if it works, if you point your browser to the raspberry ip.

5. Now you should make some changes to PHP.

nano /etc/php/php.ini

and find-change the following:

open_basedir = /srv/http/:/home/:/tmp/:/usr/share/pear/:/mnt/sd
default_charset = "UTF-8"
cgi.fix_pathinfo = 1


sqlite3.extension_dir = /usr/lib/php/modules/

Restart your lighttpd service.

systemctl restart lighttpd.service

6. Now you can download ownCloud. Go to Download page and choose tar or zip.

A cool tip is to go to server folder (cd /srv/http) and write

the extract the file

tar -xjf owncloud-7.0.0.tar.bz2

Then you should change the permissions:

chown http:http owncloud
chown http:http owncloud/config

Create a directory to store data. It's safer to have your data outside your server directory.

mkdir /mnt/sd/data

Change the permissions

chown -R http:http /mnt/sd/data
chmod -R 770 /mnt/sd/data

Check the documentation for some extra settings, just in case you use other servers etc.

7. Now open your browser to http://IP/owncloud. If everything is OK, you'll be prompted to enter your NEW admin user and password and the location of the data folder (message in red tells you to change the path). Remember I created the folder before. The location is /mnt/sd/data.

If there's something wrong, there'll be a message like the following:

ownCloud Error

Usually there are some PHP modules missing (pacman -S php-gd).

Since locale wasn't set by default, I followed the Arch Linux tutorial how to do it (3 commands).

echo -e "en_US.UTF-8 UTF-8\nel_GR.UTF-8 UTF-8" >> /etc/locale.gen

echo -e "LANG=en_US.UTF-8\nLC_MESSAGES=C"\nLC_TIME="el_GR.UTF-8" >> /etc/locale.conf


Refresh and here what you'll see.
prompt to setup

Here you should point the data folder. Remember that we already created the disk space.

Change Data Folder

Remember that we have the disk space on the other partition.

Change Data Folder

If you didn't change the permissions, you'll see the message to do that.

770 permission of data folder

Now everything is ready...

Finally set up!!!

8. You can change the php.ini file (nano /etc/php/php.ini) with the following information:

post_max_size = 50G
upload_max_filesize = 25G
max_file_uploads = 200
max_input_time = 3600
max_execution_time = 3600
session.gc_maxlifetime = 3600
memory_limit = 512M

9. If you want to change the security, you can follow some tutorials from the documentation how to do them.
Finally, you should port forward and dynamic dns (you should edit the file /config/config.cfg), so you can have access from out your house. I'll write some posts about all those later.

10. Now you're finished to enter.

ownCloud username/password

The first thing you'll see is the welcome screen.

Welcome Screen

Here you can see the Version (and also some errors I get)...

Server Errors

Now you're ready to use ownCloud

User Interface

read more

Jos Poortvliet
ownCloud 7 Release Party August 8, Berlin
July 29, 2014

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
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!

read more

Lyndsey Jane Moulds
Parsing and Serializing XML for the ownCloud Photo App
July 29, 2014

For the past two weeks, much of my work on the ownCloud photo upload app has been centered around serializing, parsing, receiving, and sending XML. While most web APIs I've encountered use JSON to communicate nuanced data, XML is WebDAV's core mode of data communication, and there was really no getting around using it for this project. (I've written before about understanding WebDAV.)

I decided to approach the parts of my project that dealt with XML through test-driven development, due to XML and WebDAV each having very specific expectations about format.

The most important connection I made while working with XML in the browser was this: your browser is a markup-parsing machine.

Before I used JavaScript for my OPW internship, most of my JS experience came from building server-side Node.js applications. Through working with Node, I had become accustomed to having to install supplemental NPM modules to take care of various parsing and formatting tasks.

The great thing about building web apps is that many of these utility functions are actually built in (unless you are using IE9 or earlier, in which case some of them built in). You do not need to write your own base64 encoding methods, because those are in your browser. And you certainly don't need to import a library to start parsing XML, because your browser already has a pretty good idea of how to do that. HTML, the markup language of the web, is a standard markup language. Your browser's main job is to chew up markup and spit out views. It would be a little unfair if we weren't able to cash in on this functionality directly!

All it takes to convert an ugly string like '<D:propfind xmlns:D="DAV:"><D:allprop/></D:propfind>' into a document object that I can inspect and expand in my browser console is a new DOMParser(); and its parseFromString() method. MDN's documentation for this process explains this in detail. This was a really helpful tool when trying to make sense of longer XML responses returned by requests to ownCloud's WebDAV server.

This isn't to say that you won't ever need external libraries for these sort of things. You might! But until working closely with the document object and its related interfaces, I didn't realize the breadth of tools available to me.

read more

Arthur Schiwon
In Kazan? Me too, join my ownCloud talk!
July 24, 2014

Currently I am enjoying my summer vacation. Vacation is when you do non-stop activities that make fun, no matter whether this is more relaxing or challenging, and usually in a different place. So I am going to take the opportunity to visit Kazan, and furthermore I am taking the other opportunity and will give an ownCloud talk (btw, did you hear, ownCloud 7 was released?) at the local hackerspace, FOSS Labs. Due to my lack of Russian I will stick to English, however ;)

So, if you are there and interested in ownCloud please save the date:

Monday, July 28th, 18:00
Universitetskaya 22, of. 114
420111 Kazan, Russia

Thank you, FOSS Labs and especially Mansur Ziatdinov, for making this possible. I am very much excited to not only to share information with you, but also to learn and get to know local (FOSS) culture!

Picture: Kazan Kremlin, derived from Skyline of Kazan city by TY-214.

read more