ownCloud - halb und halb

Monday, January 28. 2013

Das folgende ist schon etwas alt, es gibt einen neuen Artikel mit meinen jüngeren Erlebnissen mit OC 5.+ 

In einem anderen Artikel habe ich ownCloud schon mal kurz erwähnt als eine mögliche Alternative zu Cloud-Angeboten wie GoogleDrive, Dropbox oder Insync. Es gibt ja ganz verschiedene Nutzungs-szenarien für Cloud-Speicherplatz, mein Schwerpunkt liegt nun nicht auf externem Backup-Space oder Sharing sondern auf einem Zugriffsfenster für im Lan vorgehaltene Dateien, das mir orts- und deviceübergreifend zur Verfügung steht. 

Und besonders geht es mir da um die An- und Einbindung meines Androidphones. 

  • schnell mal ein Bild hin- oder herschieben, USB anstöpseln und warten, bis endlich die sd-Karte gemounted ist - und dann für laufende Apps auf dem phone leider nicht mehr zugägnlich ist - dauert mir einfach zu lange.
  • irgendwo unterwegs will ich ein bestimmtes Lied aus meiner Musiksammlung, das ich gerade nicht auf der Sdkarte habe
  • meine mindmaps brauche ich immer und überall und zwar konsistent, also nicht das letzte Edit leider nur auf dem anderen Rechner...

So, das umreisst den Bereich, den mir ownCloud auf einem Rechner im Lan locker erfüllt. Einen dynamischen DNS-Dienst braucht es, der die je aktuelle IP meines DSL an eine Domain bindet, einen von aussen erreichbaren Rechner mit Apache, php, optional mysql und dem aktuellen ownCloud installiert und dann ist es noch sehr sinnvoll, sich für diese Domain eines der kostenlosen Serverzertifikate von startssl zu besorgen. Man kann die php - Dateien des ownCloud direkt in die Document root eines vhost entpacken, für die aktuelle Version 4.51 gibt es aber auch ein debian-repository und auf Sicht ist das doch die viel unaufwendigere Lösung, sobald es updates einzuspielen gilt. (Es gibt packages für CentOS, debian, fedora, openSuSe, RHEL, SLE und Ubuntu.)

Für debian Squeeze importiert man den repository key mit 
wget http://download.opensuse.org/repositories/isv:ownCloud:community/Debian_6.0/Release.key
apt-key add - < Release.key 

bindet das repository ein mit echo 'deb http://download.opensuse.org/repositories/isv:ownCloud:community/Debian_6.0/ /' >> /etc/apt/sources.list.d/owncloud.list
und anschliessend reicht ein

apt-get update
apt-get install owncloud

Fein, jetzt findet man in /var/www/owncloud das ganze php und in /etc/apache2/conf.d/ die Datei owncloud.conf, die man sich evtl. noch etwas zurechtbiegen will. 
Bei mir sorgt ein  

<IfModule mod_alias.c>
   Alias /cloud /var/www/owncloud/
</IfModule>
dafür, dass ich owncloud in jedem vhost als /cloud erreiche.
 
https://meineDomain.tld/cloud im browser ansteuern, die Installation mit ein paar Einstellungen (Datenbank, Verzeichnispfade und Zugriffsoptionen) auf den Weg schicken, Admin und user account anlegen, fertig. 
Auf dem Android gefällt mir als Client der TotalCommander mit WebDav-Plugin sehr gut aber es gibt natürlich zahllose Alternativen.
 
Soweit so gut, die Kategorie Dateien (mit den zwei Filteransichten Musik und Bilder) gefällt. Was mir nicht gefällt sind Kalender und Kontakte. Ich würde eben gerne meinen Androiden von Google und den Google-Account Features ablösen, aber dazu brauche ich für Kontakte und Kalender entsprechende Funktionalität und saubere Importfunktionen, die die derzeit auf Google eingestellten Daten ohne Verluste übernehmen können.
 
Meine Kontakte sind auf https://www.google.com/contacts/#contacts gepflegt, das Gros hat Portraitbilder, die Kontakte sind in Gruppen (bzw getagged), vielfach gibt es Notizen. Ich will jetzt nicht die Kontakte als vcard transferieren und anschliessend alle Portraits händisch neu zuordnen müssen und auf die Tags und einfache Gruppierung völlig verzichten mag ich noch weniger.
 
Bei den Kalendern habe ich noch nicht so detailliert herumprobiert aber soviel ist klar: das Modul CloneGoogleCalendar fehlt auch hier.

Mennoh! Das ist ein Millionenmarkt von Leuten, die nur mit Bauchschmerzen ihre ganzen Kontakte und Kalenderdaten bei google in den USA vorhalten - warum wagt das keiner, die Google-Dienste hierzu nachzubauen und uns Datensparsarmkeit zu ermöglichen? 

Ein Blog mit weiteren Artikeln zu dem Themenkreis sei hier noch empfohlen: netbunker

Noch ein paar pointer auf bezügliche Apps, die man sich auch gut aus f-droid installieren kann:

OwnCloud client - (a few bucks, open source, free if you build it yourself) sync files with OwnCloud.
CardDav-sync - (a few bucks, open source, free if you build it yourself) sync contacts with OwnCloud into your contact managers.
CalDav-sync - (a few bucks, open source, free if you build it yourself) sync calendars in OwnCloud into your calender apps.
Just Player - (freeware, open source) sync music with OwnCloud and play it.

update Ende Februar 2013:
Nun will ich es nach etwas Abstand mal zum Transfer einer kleinen Datei nutzen und - mobile client wie Browser geben alle Anzeichen eines Server Errror. Im error_log findet sich
PHP Fatal error:  xcache_clear_cache(): xcache.admin.user and/or xcache.admin.pass settings is not configured. Make sure you've modified the correct php ini file for your php used in webserver. in /var/www/owncloud/lib/cache/xcache.php on line 50

Na super. Tante Google weiß Rat, scheints habe ich mit dem letzten update && upgrade auf eine Version von owncloud (4.5.7-1) upgedated, die eine Version von xcache erwartet, die unter Debian Squeeze eben nicht gegeben ist. Die empfohlene Abhilfe, die auch hier ownCloud wieder ans Laufen bringt: 

/etc/php5/apache2/conf.d/xcache.ini mit einem Editor meines Vertrauens editieren und dort diese Zeile ergänzen: xcache.admin.enable_auth = Off

Half. OwnCloud ist wieder am Start. Aber im Log stehen nun vieleviele Kopien von: PHP Warning:  xcache_isset(): xcache.var_size is either 0 or too small to enable var data caching in /var/www/owncloud/lib/cache/xcache.php on line 39 Letztlich Log-Spam, eine Applikation sollte wirklich mitbekommen, dass sie eine Warnung schon einige hundert Mal gegeben hat und irgendwann die Frequenz reduzieren, statt bei Benutzung nun rund 4 bis 5 Mal / sec den immergleichen Text ins Log zu schiessen.

 

update 14.3.2013:
nice! heise berichtet von der eben erschienenen Version 5.0 von ownCloud und deutet auf laestig klingende upgrade-Methoden. Aber ich hab' es doch im repository... hier reicht ein apt-get update && ap-get upgrade und dann erscheint, nach Aufruf der Wolke, ein kurzer Hinweis auf das Upgrade, pling, pling,plong, pling, erfolgreich, weitergeleitet - fertig.
Erstmal login als Administrator, es sind eine Reihe neue Applications dazugekommen und ich aktiviere tasks - Antivir hat zwar die Anmerkung "recommended", schmeisst mir aber gleich eine Fehlermeldung. 
Auf den ersten Blick kommt mir die neue Oberfläche etwas dunkler vor, platzsparender und bedienbarer.
Raus und zweites Login als user, ich bekomme erst einmal minutenlang einen Verlaufsbalken mit dem Titel: "Dateisystem-Cache wird aktualisiert ..." Und dann: "Alles leer - lade etwas hoch!" :-(  - da ist schon mal was verlorengegangen. Hoffentlich nur der Link...

Kurz mal durch die anderen Optionen:
Kontakte kennt auf einmal Gruppen! Schon mal ein Schritt in die richtige Richtung.
Aufgaben kennt keine hierarchischen Beziehungen zwischen tasks, also kein "Kapitel 1" .. "Kapitel n" als subTasks zu "Buch". Eine Task hat Title, Kategorie, Ort, Fälligkeit, Fertigstellung scheint Boolean zu sein. Nach Priorität kann man sortieren, aber wo man die setzt, sehe ich erst mal nicht.

Ein Blick in's forum.owncloud.org/ bestätigt, dass andere die Probleme (Dateien, Task/Priority) auch haben. 
Es findet sich auch ein Hinweis auf ein Google import app

Xmind Mindmaps konvertieren

Monday, April 9. 2012

There is prior post regarding conversion of .xmind documents to other mind mapping formats and also re: import of text to Freemind, but now there is a new angle to those topics after I discovered a python modul which comes quite handy if you want to parse or create .xmind mindmaps. 

It goes by the name of mekk.xmind, authered by Marcin Kasperski. 

Download it with mercurial, (if you don't have this installed, you can get it on debian by apt-get install mercurial)

hg clone https://bitbucket.org/Mekk/mekk.xmind
cd mekk.xmind
python setup.py install

You will find some example scripts next to he sources and it worked fine here immediately..

Frustrated over Kontact I still search for a suitable way to handle task lists so that task administration integrates with my desktop thunderbird/lightning, google calendars and my androisd smartphone which nicely interfaces to google tasks. And as I like to structure my ideas with mindmaps and quite like XMind I tried to use XMind as a means to write structured task lists. Unfortunately lightning doesn't do subtasks. It has been asked for for years but not implemented.

Among the alternatives for task managment on linux there is  Task Coach (pro: open source, does sub tasks SyncML, file format XML, some export options, con: usage could need enhancement, export formats uncomplete, so after reimporting an exported task list it doesn't necessarily rebuild the same thing, supports iOS but no direct support for android). For android they recommend  Todo.txt and task coach exports and imports task lists in todo.tx - Format. 

Can't say I'm content with all this, it's more like a waypoint on my search. Below is a little python script that lets you excerpt a todo.txt task list from an xMind mindmap.

 

#!/usr/bin/python
# -*- coding: utf-8 -*-

# (c) 2012, Daniel Plaenitz
#
# depends on mekk.xmind by Marcin Kasperski
# hg clone https://bitbucket.org/Mekk/mekk.xmind
#

# python xmind2todo.py inputFile [outputFile]

from mekk.xmind import XMindDocument

from datetime import date
import sys
import codecs

output = u""

def parse_sheet(file_name):
    xmind = XMindDocument.open(file_name)
    sheet = xmind.get_first_sheet()
    root = sheet.get_root_topic()
    
    for topic in root.get_subtopics():
        parse_level(topic,[],root.get_title())


def parse_level(topic,names,rootTitle):
    global output
   
    _names = names[:]
    _names.append(topic.get_title())
    _line = u""
    
    for name in _names:
        _line += u" -> "+name
    
    _line = _line[4:]
    _line = " ".join(_line.split('\n'))
    
    _prio = u""
    if 'priority-1' in list(topic.get_markers()):
        _prio = "(A) "
    elif 'priority-2' in list(topic.get_markers()):
        _prio = "(B) "
    elif 'priority-3' in list(topic.get_markers()):
        _prio = "(C) "   
    elif 'priority-4' in list(topic.get_markers()):
        _prio = "(D) "
    elif 'priority-5' in list(topic.get_markers()):
        _prio = "(E) "
    elif 'priority-6' in list(topic.get_markers()):
        _prio = "(F) "
    
    if 'task-done' in list(topic.get_markers()):
        _prio = u"x " + _prio
        
    _line = _prio + date.today().isoformat() + " " + _line
    _line += " +"+rootTitle
    
    
    output += _line + "\n"
    
    for stopic in topic.get_subtopics():
        parse_level(stopic,_names,rootTitle)
        
def main(argv):
    global output

    if len(argv) < 1 :
        print "xmind2todo.py inputFile [outputFile]"
        sys.exit(2)  
        
    infilePath = argv[0]
    outfilePath =  infilePath+".txt"
    
    if (len(argv) > 1):
        outfilePath = argv[1]

    parse_sheet(infilePath)
        
    print "writing to "+outfilePath    
    f = codecs.open(outfilePath, encoding='utf-8', mode='w')
    f.write( output )
    
if __name__ == "__main__":
    main(sys.argv[1:])
 

 

Strukturierten Text -> Freemind

Friday, December 2. 2011

 Ein voriger Beitrag behandelte Wege, eine Mindmap aus Xmind ins Freemind-Format zu bekommen, diesmal wollte ich einen strukturierten Text einlesen. Im Grunde eine Gliederung, bis auf die oberste Überschrift - den root node der Mindmap - beginnt jede Zeile mit (mindestens) einem Tab. Zeilen mit einem Tab sind Unterpunkte der obersten Überschrift, haben sie selbst auch Unterpunkte, stehen diese unter ihnen und die Unterpunkte haben alle einen Tab mehr als ihr Oberpunkt. Entsprechend weiter... 

Das .mm - Format ist an sich sehr aehnlich, es ist ein XML, das binnen <map> </map> die Struktur als inneinander eingenistete <node /> abbildet. Ein node hat die Properties CREATED, MODIFIED, ID, TEXT und optional POSITION. Eigentlich wundert es mich, dass Freemind und seine Derivate (Freeplane zB.) keinen Import von Text direkt anbieten. Aber ich fand ein kleines Python-Tool, dass mir die Umwandlung erledigte: download

MindMaps: Xmind -> FreeMind

Thursday, April 21. 2011

Ich setze zur Strukturierung meiner Gedanken gerne MindMaps ein und, was die Software angeht, schon seit längerem XMind. Das ist in Java und so für Win*, MacOsX und Linux (für versch. Architekturen und Distros) verfügbar, sieht ansprechend aus, läuft stabil, ist in einer kostenlosen Variante verfügbar (dazu gleich mehr) und hat nur einen Haken: es versucht den alten Dateiformat-Marketingtrick, nämlich einerseits viele Importformate zu unterstützen, andererseits aber den Export geizig zu handhaben. Erst die kostenpflichtige Pro-Version unterstützt den Export nach .mmap oder .mm, die kostenlose Version bietet in der Zusammenarbeit mit anderen MindMap-Softwares nur Einbahnstrassen. 

Was den Nutzen der Software für die Zusammenarbeit mit anderen doch sehr reduziert, und auch schmerzt, wenn eine Plattform dazukommt, die XMind nicht bedient: in meinem Fall Android 2.3. Da gibt es im Market eine recht überschaubare Anzahl von Mindmap appls, ThinkingSpace und sonst nicht viel.

ThinkingSpace liest und schreibt .mm, und wenn ich also meine am Desktop begonnenen Überlegungen zu einem Thema während der Bahnfahrt auf dem SmartPhone weiterführen will, muss ich die Frage der Dateikonvertierung lösen. (oops, siehe Update unten!) Leider ist MindMapping eher ein Nischenthema und eine Suche nach Konvertern für die drei Dateiformate .xmind, .mmap und .mm geht leer aus. 

Noch einmal zu der kostenlosen Version von XMind: sie ist Crippleware. Ich hatte, noch unter win*, eine aktuelle Version installiert, die etliche MenueEinträge enthielt, die immer nur auf die Pro-Version verwiesen. Die letzte Version, die all' diese - eh nicht verfügbaren - Features auch gar nicht erst anpries, war Version: 3.0.1. das ist auch die Version, die ich unter allen drei OSen einsetze.

Meine Suche nach Datei-Konvertern führte mich nun dazu, dass es die Sourcen für XMind in einem bestimmten Featureset auch als Opensource gibt.  Will heissen: die Opensource-Version 3.2.1 sieht für mich bis auf ein entscheidendes Detail (Exportformate!) einfach gleich aus. Kein Feature-Spam in den Menüs und FreeMind als ExportOption: was wollte ich mehr?

Nun, nach dem Download der Sourcen in einem .zip stellte sich zunächst erst mal die Frage, wie ich das zum Laufen bekomme. Java ist ja doch eher unbekanntes Terrain für mich. Es fand sich aber ein sehr hilfreiches Kochrezept auf code.google.com/p/xmind3/wiki/How_to_build_XMind_from_source  dem ich gefolgt bin und letztlich auch mit Erfolg. Ich hatte aber schon einige Hürden zu überwinden.

Step 1.3:  Copy to {ECLIPSE}/plugins/
ich habe die drei letztlich sowohl zu /home/username/.eclipse/org.eclipse.platform_3.5.0_155965261/plugins als auch nach /usr/lib/eclipse/plugins/ kopiert, habe auch alle in den Comments erwähnten restart/refresh/reloads angewandt, aber aber...

Step 1.5:  Available Software Sites braucht Add: http://download.eclipse.org/tools/gef/updates/releases/

Step 3.2: stehe aber dennoch mit 62 Error da, die sich offenbar alle auf bouncycastle zurückführten. Was es letztlich brachte war, diesem Comment zu folgen:
"Here is what I did to fix it easily.
Right clicked org.bouncycastle jar, choose import
Chose Plugin Development > Plugins and Fragments
Took defaults - hit Next
Choose the org.bouncycastle jar, then "Add"
Finish.
Project is now in workspace and everything compiles."

Fein, nun läuft es als eclipse-> run, wie ich es zu einem standalone compiliere bzw packe, habe ich noch nicht erforscht. Aber mit ps faux|less konnte ich mir die command line mit allen Optionen heraussuchen und habe sie in eine ~/bin/xmind.sh gesteckt, die sich, mit dem KDE - Menu Editor ohne weiteres in das Menu einbinden liess und funzt.

Alles geht wie zuvor, nur zusätzlich endlich eine Export-Option nach FreeMind.  

 

Update:
Hatte ich nur nicht richtig hingesehen oder hat ThinkingSpace seither dazugelernt? Jedenfalls kann die App jetzt Freemind, Mindjet und XMind - Format lesen und Schreiben, verbindet sich optional auch mit MindMeister.

Und so kann man es zum Konvertieren benutzen:
- die.xmind auf die SD-Karte schieben
- ThinkingSpace->Menu->Einstellungen->Default file format->Freemind auswählen
- Rücktaste, in der Liste der vorhandenen mindmaps lange auf die.xmind druecken
- öffnet sich Kontext-Menü, da Kopieren wählen.
- OK, jetzt gibt es auf der SD-Karte neben die.xmind auch die.mm 

Update:
ThinkingSpace heisst jetzt MindJet.

Update 26.9.2012:
Mit Arch Linux finde ich eine Version von XMind,  XMind 2012 (v3.3.0), die den Export und Import von Freemind und Mindjet Manager als Option anbietet (und mehr.) Ich habe auch erstmal kaum "reservierte" Optionen in den Menues gesehen, damit hat sich die Notwendigkeit eines externen Konvertierungstools eigentlich erledigt.

(Page 1 of 1, totaling 4 entries)