The latest posts in full-text for feed readers.
In 2014 I wrote grauphel, a owncloud/Nextcloud extension that allows you to synchronize notes between Tomboy (Linux, Windows), Tomdroid (Android) and Conboy (Nokia N900 - Maemo).
I personally do not use grauphel anymore and thus have no reason to maintain it any longer. For each Nextcloud release it must be tested, updated and re-released. Big changes are necessary to make it compatible with Nextcloud 21 as well.
The last real changes to grauphel were done in 2018 (version 0.7.0), and since then the changes were only to make it compatible with Nextcloud 15...20. The application itself is complete since 4 years, but unfortunately the foundations are constantly moving.
The original grauphel was a standalone application, but I converted it to a owncloud/nextcloud extension so that I can rely on its login and user management. From today's perspective this was a mistake; a standalone version would still work today and not require unnecessary maintenance.
I'd like to hand grauphel over to a new maintainer that keeps it compatible with the latest Nextcloud versions.
Alternatively, I could make a standalone version of grauphel that works without Nextcloud if I get money to work on this task - 1000€.
Please write a comment in the issue on github if you'd like to take over the project, or how much you're willing to contribute to the standalone version's fund.
Published on 2021-04-13 in owncloud, php
I finally got around publishing grauphel on the Nextcloud app store: grauphel @ Nextcloud.
This means you can install the Tomboy note syncing server on your Nextcloud instance via the normal apps menu now.
I have no plans to publish it in the ownCloud app store, nor do I plan to do fixes for ownCloud compatibility.
Published on 2018-01-17 in owncloud, php
After backing up the old Nokia C2-01 phone book into a .vcf file, I needed a way to import the data onto an Android 5.0 phone.
Since I already use ownCloud together with DAVdroid for synchronizing calendars, I tried the ownCloud contacts app.
The contacts app has an import button which opens a window in which I selected "Standard VCard", selected the file and voila - the contacts we in ownCloud. DAVdroid took care of the rest and synchronized the contacts onto the phone.
The stock android contacts app com.android.contacts in Android 6 (Cyanogenmod 13) is actually able to import vCard .vcf files: Contacts -> ⠇ -> Import/Export -> Import from .vcf file.
Published on 2015-08-06 in android, owncloud, tools
ownCloud follows the design principle of Never Use a Warning When you Mean Undo : Instead of showing a popup dialog that you have to confirm to e.g. delete a file, the action is taken immediately. ownCloud does however show a small notice that something has been deleted. Clicking the notice will restore the deleted items.
When working on my Tomboy note sync server, I had to implement deletion of OAuth access tokens. It is possible to implement it in two ways: Full and Simple.
When the user clicks "delete", a request is sent to the server and the token's database row gets the "deleted" flag set. A notification is shown, telling the user that he can restore the token by clicking on the notice.
When the user clicks "undo", another request is sent to the server and the deleted flag gets reset.
This also implies a way to clean the database of deleted tokens.
I dubbed this "simple" because it's simple to implement, compared to the steps necessary in full deletion. It works as follows:
When the user clicks "delete", the token HTML table row is hidden. A notification is shown, telling the user that he can restore the token by clicking on the notice. A JavaScript timer is started that will send the delete request to the server in 5 seconds.
After 5 seconds, the javascript timer fades the notice out and sends the delete request to the server. The token is permanently deleted now.
If the user clicks the notification within the 5 seconds, the timer is stopped. The token row in the HTML table is made visible again.
When the user leaves the page within the 5 seconds, the delete action requests are immediately sent to the server via an onbeforeunload event handler. You have to send the requests in synchronous mode, since the browser tab will be closed before the request reaches the server in async mode.
You also have to take care of multiple timeouts: What happens if the user deletes 2 tokens and then clicks undo? I chose to restore both tokens.
The JavaScript code can be found in js/grauphel.js .
Published on 2014-11-09 in html, javascript, owncloud
I spent the last two months working on grauphel, an ownCloud app that implements the Tomboy REST API . With grauphel you can synchronize notes across computers and mobile devices.
With version 0.4.0 that I released yesterday, all features I wanted are implemented: Syncing, OAuth token and database management, searching and viewing notes.
The following clients work with grauphel: Conboy (Nokia N900 - Maemo), Tomboy (Linux, Windows) and Tomdroid (Android).
The source code is licensed under the AGPL v3. You can download grauphel from its homepage and get the sources from its git repository or the github mirror.
Here is how you setup note synchronization on Android between Tomdroid and grauphel:
grauphel is got its name after assessing the previous official tomboy note server implementations: Snowy and Rainy.
Snowy (written in python) is dead, and Rainy requires Mono to run :/ No way I would install that on my server.
The only other alternative was Ubuntu One, which was shut down mid of 2014. Now there is grauphel to self-host on a standard PHP server.
Published on 2014-10-30 in owncloud, php, server
I have an ownCloud installation on my server for several reasons:
The ownCloud apps repository contains user_external which allows one to authenticate against a FTP, IMAP or SMB server. Since I run my own mail server, authentication against IMAP is my preferred choice to keep my passwords list short.
Unfortunately, users authenticated via IMAP could not login with the desktop client, and could also not get files shared - issues #301 and #302.
Since this was an unbearable situation, I wrote a patch that creates the users in the database during login. I got an immediate rejection
Determined to solve the problem once for all, I followed the hints and rewrote a large part of the external authentication plugin.
While Thomas Müller, one of the main developers, tested my patch he stumbled across another issue: A blank page without any error notice. Another patch was needed.
One and a half months later, both patches got merged in git master. With ownCloud 7 you'll be able to enjoy them, too.
Published on 2014-07-23 in owncloud, php, server