Login, bitte

Login, bitte

Aus Gründen die ich später sicher nochmal erläutern werde möchte ich ein Dokumentenmanagementsystem (DMS) installieren. Die Wahl fällt Heute auf Alfresco, einem kommerziell entwickelten System von dem es eine kostenlos nutzbare Community-Version gibt.

Haken an der Sache: das ist eine Java-Anwendung, und die drückt ganz schön auf mein kleines Heimserverchen. Um es nicht zu sehr ausarten zu lassen möchte ich nach Möglichkeit kein volles KVM installieren, sondern in einem OpenVZ-Container (wir erinnern uns: ich habe Proxmox auf meinem Server installiert). Problem dabei: in OpenVZ habe ich nur 32-Bit-Gäste, und der vergleichsweise einfach zu bedienende Installer von Alfresco läuft nur auf 64 Bit.

Also zu Fuss. Und da ich zwar mehrere Anleitungen gefunden habe, keine davon aber wirklich alle meine Probleme gelöst hat, schreibe ich hier mal zusammen was ich gemacht habe. Ich installiere erstmal nur das Basispaket, Zusatzmodule kommen bei Bedarf später nach.

Noch ein Disclaimer vorweg: alles was hier steht ist gefährliches Halbwissen! Meine Erfahrungen mit Alfresco beschränken sich auf wenige Stunden Spielerei, auch Java und Tomcat sind für mich kein Heimspiel. Was ich aufgeschrieben habe hat zumindest auf den ersten Blick für mich funktioniert. Mit dem Ergebnis habe ich noch nicht viel Zeit verbracht. Es kann also durchaus sein dass ich Quatsch geschrieben habe. Falls jemandem Fehler oder Verbesserungen einfallen wäre ich sehr dankbar für einen kurzen Hinweis. Falls mir noch was auffällt werde ich einen entsprechenden Nachtrag schreiben.

  • Maschine anlegen. Ich gebe erstmal nur 1,5GB RAM, dazu 5GB Festplatte.
  • Debian installieren. Debian 7.0 ist mittlerweile so gut wie stabil, also gibt es direkt Wheezy. Dazu das übliche: Apt-Cache eintragen und alles erstmal aktualisieren.
  • Datenbank anlegen. Ich nutze MySQL, die Datenbank liegt auf einem anderen Server. ‚create database alfresco‚.
  • Benötigte Pakete installieren: apt-get install libreoffice openjdk-7-jre imagemagick tomcat7 mysql-client libmysql-java zip‚. Die Java-Version scheint wirklich wichtig zu sein, mit Version 6 hatte ich kein Glück beim vollständigen Anlegen der Datenbank.
  • Die SWFTools kennt Debian zwar als Paket, hier fehlt dann allerdings das essentiell wichtige pdf2swf. Wir ziehen uns die Sourcen (Version 0.9.1, 0.9.2 bringt einen Fehler bei der Installation) und compilieren klassisch mit ./configure && make && make install. Voraussetzung hierfür: apt-get install zlib1g-dev libjpeg62-dev libgif-dev libfreetype6-dev g++ make.
  • Alfresco herunterladen. Wir brauchen das Paket für die manuelle Installation, aktuell also alfresco-community-4.2.c.zip.
  • Den Inhalt des Paketes unter /opt/alfresco auspacken.
  • Sicherstellen dass Tomcat nicht läuft, damit der uns nicht in die Quere kommt: /etc/init.d/tomcat7 stop
  • Dateien und Verzeichnisse vorbereiten:

    # cp -r /opt/alfresco/web-server/shared/ /var/lib/tomcat7/
    # cp -r /opt/alfresco/web-server/webapps/ /var/lib/tomcat7/
    # cp -r /opt/alfresco/bin/ /var/lib/tomcat7/
    # ln -s ../../java/mysql-connector-java.jar /usr/share/tomcat7/lib/
    # mv /var/lib/tomcat7/shared/classes/alfresco-global.properties.sample /var/lib/tomcat7/shared/classes/alfresco-global.properties
    # mv /var/lib/tomcat7/shared/classes/alfresco/web-extension/share-config-custom.xml.sample /var/lib/tomcat7/shared/classes/alfresco/web-extension/share-config-custom.xml
    # mkdir /opt/alfresco/alf_data
    # chown -R tomcat7:tomcat7 /var/lib/tomcat7/ /opt/alfresco/alf_data/

  • Konfigurationsdatei /var/lib/tomcat7/shared/classes/alfresco-global.properties anpassen. Hier nur die geänderten Zeilen:

    dir.root=/opt/alfresco/alf_data
    db.username=alfresco
    db.password=GEHEIMESPASSWORT
    ooo.exe=/usr/bin/soffice
    ooo.enabled=true
    jodconverter.officeHome=/usr/lib/libreoffice/
    jodconverter.portNumbers=8101
    jodconverter.enabled=true
    img.root=/usr
    img.exe=/usr/bin/convert
    swf.exe=/usr/local/bin/pdf2swf
    db.driver=org.gjt.mm.mysql.Driver
    db.url=jdbc:mysql://DATENBANKSERVER/alfresco?useUnicode=yes&characterEncoding=UTF-8

  • Speichermanagement für Tomcat anpassen, in /etc/default/tomcat7 folgende Einstellungen hinzufügen:
    JAVA_OPTS="${JAVA_OPTS} -XX:MaxPermSize=512m -Xms128m -Xmx768m -Dalfresco.home=/opt/alfresco -Dcom.sun.management.jmxremote"
  • Tomcat starten: /etc/init.d/tomcat7 start

Danach kann man seinen Browser ganz vorsichtig auf http://SERVERNAME:8080/share oder http://SERVERNAME:8080/alfresco loslassen. Nicht vorschnell aufgeben, der erste Aufruf kann durchaus mehrere Minuten dauern. Die Zeit kann man sich zum Beispiel damit vertreiben, in der Datenbank nachzusehen ob tatsächlich die nötigen Tabellen angelegt werden. Direkt nach dem Laden der Startseite sind in der DB schon 102 Tabellen und mehrere Tausend Datensätze vorhanden.

Genau hier hat mich übrigens der Fehlerteufel eine Weile in Schach gehalten: in meinen ersten Anläufen hatte ich openjdk-6-jre installiert, so wie die meisten (zugegeben: teils alten) Howtos raten. Das führt neben einem Riesenhaufen Logs — die für einen nicht-Java-affinen Menschen erstmal nichtssagend sind — zu genau 20 Tabellen in der Datenbank, und dazu dass man unter /alfresco nur eine Fehlermeldung präsentiert bekommt. Darauf, das mal mit Java 7 zu testen muss man erstmal gestossen werden:-(

Wenn die Startseite (endlich!) sauber lädt kann man sich mit admin:admin anmelden und anfangen zu überlegen was man mit so einem schönen, neuen, großen Spielzeug anfangen kann… Aber das ist eine andere Geschichte, und die soll ein anderes Mal erzählt werden… ;-)

Geholfen haben mir bei der Installation hauptsächlich diese beiden Anleitungen, sowie dieser Thread im Support-Forum. Den Rest habe ich mir zusammengegoogled. Danke an alle die Ihr Wissen im Netz teilen!

Nachtrag (05.03.): Aufgrund eines Fehlers im Zusammenspiel zwischen Flash und dem Browser habe ich Flash-Upload abgeschaltet. Sonst hätte ich in der Weboberfläche keine Dateien hochladen können. Nutzen kann man Alfresco auch anders, aber wenn schon… Um abzuschalten in der Datei /var/lib/tomcat7/shared/classes/alfresco/web-extension/share-config-custom.xml den Wert adobe-flash-enabled auf false setzen und den Tomcat durchstarten.

Ratz Fatz - Ich und Du

Ratz Fatz – Ich und Du

Ich möchte mich mal eben öffentlich bei der Firma Haba bedanken. Die machen Kinderspielzeug, und als — sagen wir mal — altes Spielkind hatte ich auch schon eine Menge von denen in der Hand. Natürlich sind die meisten Sachen nicht für Spielkinder meines Alters, aber nach allem was ich bislang gesehen habe würde ich die uneingeschränkt weiterempfehlen. Gut durchdacht, und gut gemacht.

Meine ältere Tochter hatte Geburtstag. Sie hat sich gefreut, sogar mit der Post Geschenke zu bekommen. Ihre Tante hat ihr ein Spiel geschickt. Es war Ratz Fatz — Ich und Du, eben von besagter Firma Haba. Nach Durchsicht der Schachtel fiel aber ziemlich schnell auf dass keine Spielanleitung dabei war. Und der Inhalt — ein paar Holzfiguren und eine Menge Bilderkarten — war nicht direkt selbsterklärend.

Ich habe die Firma angeschrieben und um Hilfe gebeten. Mir wurde umgehend die Spielanleitung als PDF zugeschickt. Man kann die zwar auch auf der Seite herunterladen, aber das hat schon von Hilfsbereitschaft gezeugt. Leider bin ich nicht im Besitz eines Farbdruckers, und selbst wenn wäre so eine lose-Blätter-Sammlung nicht wirklich Kinderzimmer-kompatibel. Also habe ich nochmal nachgefragt. Die freundliche Mitarbeiterin hat lediglich nach der Adresse gefragt, sie hat mir umgehend die Anleitung per Post versprochen.

Heute — gerade drei Tage später — lag der Brief im Kasten. Ich habe den Absender gesehen und meine Tochter öffnen lassen. Sie hat sich fast so sehr gefreut wie über das Päckchen zum Geburtstag. :-)

Leider war fast Schlafenszeit, daher konnten wir bis jetzt nur eine der Spielvarianten ausprobieren, und das auch nur für eine Runde. Ich bin mir aber sicher dass wir das noch öfter spielen, und insbesondere wenn auch noch andere Kinder im ähnlichen Alter dabei sind wittere ich Spaß (… für die Kinder. Ich muss zugeben dass mich das Spiel intellektuell nicht wirklich fordert, aber ich bin auch mehr als drei Mal so alt wie die empfohlene Zielgruppe… :-D).

Ich selbst könnte mich vielleicht noch für die Kugelbahnen begeistern, insbesondere mit Blick auf die vielen Zusatzpackungen… aber ich fürchte dass dafür auch erstmal wieder Budget beantragt werden müsste…

Gruselige Benutzeroberfläche

Gruselige Benutzeroberfläche

Vor einigen Jahren habe ich mal nach einer Möglichkeit gesucht, einen USB-Stick zu bauen mit dem man mehrere Boot-Images starten kann. Leider ohne Erfolg.

Ideal fände ich eine Lösung bei der ich nur noch ISO-Files auf den Stick legen muss, meinetwegen noch mit einem Skript das die ISOs dann beim Bootloader anmeldet. So etwas scheint es aber nicht zu geben, und das scheint mit den gängigen Bootloadern auch nicht ohne weiteres möglich zu sein.

Jetzt habe ich mir aber ein Programm angesehen das der Lösung zumindest nahe kommt: mit Multisystem kann man sich einen Stick erstellen von dem mehrere Systeme gebooted werden können.

Größter Haken beim Bau des individuellen Sticks ist dabei die Benutzeroberfläche. Von weitem sieht die zwar nett aus, damit zu arbeiten ist aber wirklich eine Herausforderung. Und damit meine ich nicht dass es eine steile Lernkurve gibt weil das Programm komplex ist, sondern schlicht weil die Oberfläche nichts taugt. Dass man die Größe der meisten Fenster nicht verändern kann ist dabei das kleinste Übel…

Das Ergebnis zählt

Das Ergebnis zählt

Aber mit einem kleinen HowTo — wie es sich zum Beispiel im Ubuntu-Wiki findet — kommt man doch zum Ziel. So habe ich jetzt einen kleinen aber stabilen 8GB-Stick (SanDisk Cruzer Pop) im Portemonnaie von dem ich wahlweise Ubuntu, einen Debian-Installer oder mein bevorzugtes ich-muss-was-machen-ohne-von-CD-zu-booten-System Grml starten kann. Letzteres wird nicht aktiv von Multisystem unterstützt, das hat erst Probleme gemacht: die 96-Bit-Variante (ja, Grml hat sowas! :-D) tut’s nicht, stattdessen habe ich jetzt die 32- und die 64-Bit-Version auf dem Stick. Kommt am Ende auf’s gleiche raus.

Multisystem ‚weiß‘ wie es die einzelnen ISOs behandeln muss um sie mit einem zentralen Bootloader starten zu können. Dazu ist für jedes unterstützte ISO eine Konfiguration hinterlegt, man kann dem Programm also auch nicht beliebige Systeme vor werfen. Die Ubuntu-Images liegen jetzt einfach als ISO auf dem Stick, ich weiss nicht ob ich die einfach austauschen könnte. Grml wird wie ein ‚richtiges‘ Debian behandelt und komplett ausgepackt auf den Stick gelegt. Der Traum vom Stick mit mehreren bootfähigen ISOs ist also immer noch nicht erfüllt.

Alternativ habe ich mir übrigens auch MultiCD angesehen, aber nicht wirklich ausprobiert. Wenn ich das richtig verstehe kann man damit nur CDs oder DVDs bauen, keine Sticks.

Falls doch noch jemand eine Idee hat wie man den Stick so bestücken kann wie ich mir das vorgestellt hatte: immer her damit!

130205_raspberryZwei Fliegen mit einer Klappe: vorhin habe ich erst meinen neuen Arduino darauf getrimmt, mittels eines DHT11 die Luftfeuchtigkeit und die Temperatur zu messen. Um das mal ein paar Tage zu beobachten habe ich das Ding jetzt an meinen — ebenfalls neuen — Raspberry Pi gehängt.

Den Raspberry hatte ich schon vor ein paar Tagen in Betrieb genommen. Das Betriebsssytemimage (Raspbian, ein spezielles Debian-Derivat) ist schnell von der Homepage heruntergeladen, entpackt und auf die SD-Karte installiert. Eigentlich dachte ich, dass ich einen Samstagabend mit der Inbetriebnahme totschlagen könnte, die ganze Aktion war aber nach zwanzig Minuten durch. Fast schon enttäuschend… :-)

Mit dem Arduino hat das Ding jetzt sein erstes kleines Ämtchen bekommen: es misst Temperatur und Luftfeuchtigkeit. Die Daten werden dann von meinem Zabbix gesammelt und bei Bedarf visualisiert.

Das ist erstmal nur eine Spielanwendung, das ist keine dauerhafte Installation. Dafür wäre das mit Kanonen auf Spatzen geschossen. Sowohl für den Raspberry als auch für den Sensor habe ich andere Pläne. Aber trotzdem finde ich es nett zu sehen, dass man sich auf die Weise schnell mal eine netzwerkfähige Sensorik zusammenbauen kann. Nett!

Arduino Nano mit DHT11

Arduino Nano mit DHT11

Mit Mikrocontrollern an sich bastele ich ja schon ein paar Jahre herum. Die erste Schaltung war ein Bausatz mit allen Teilen, samt Platine. Mit Ausnahme eines Pollin AVR-Net-IO habe ich ansonsten meinen Kram immer selbst auf Platine verewigt. Die Arduino-Plattform fand ich zwar immer interessant, allerdings nie genug dass ich mir einen gekauft hätte.

Kürzlich habe ich eine Hand voll Sensoren gekauft, um damit zu spielen. Unter anderem einen DHT11, der hat eine Art One-Wire-Interface und gibt darüber die Temperatur und die Luftfeuchtigkeit aus. Dummerweise ist das nicht wirklich One-Wire, also nicht kompatibel zu dem was Dallas spezifiziert hat. So konnte ich das mit meinem Bus Pirate nicht ohne weiteres auslesen.

Um einfach mal zu sehen was der Sensor von sich gibt ist ein Arduino die perfekte Lösung: mit dem Arduino Nano und einem Steckbrett ist die Schaltung schnell zusammengesteckt (geplant hatte ich die ja letzte Woche schon :-) ). Die IDE ist auf meinem Arch Linux einfach aus dem AUR zu installieren, und die Bedienung ist trivial. Speziell für diesen Sensor hat Lady Ada ein hervorragendes Tutorial samt passender Bibliothek veröffentlicht, so konnte ich Heute nach kurzem Einlesen die Messwerte von der seriellen Schnittstelle ablesen.

Ich denke wenn ich wirklich ein Projekt verwirklichen will werde ich auch in Zukunft lieber selber basteln. Um aber nur mal schnell was auszuprobieren scheint so ein Arduino aber wirklich eine prima Plattform zu sein. Und für Einsteiger in die Materie sowieso. Meine Empfehlung!

Der Plan steht

Der Plan steht

Erstaunlich, dass ich mich damit noch nie befasst habe: Fritzing ist ein Programm mit dem man komfortabel kleinere Elektronikprojekte zeichnen kann. Und zwar nicht (nur) als Schaltplan.

Einsteiger in die Materie Elektronik sind meiner Ansicht nach gut beraten, sich ein Steckbrett und ein paar Bauteile zu kaufen und loszulegen. Will man denen vermitteln wie eine Schaltung auszusehen hat, oder wollen sie Fragen zu ihrem Projekt stellen, wird es schwierig. Ein ordentlicher Schaltplan würde vielleicht helfen, vom Steckbrett auf den Plan zu abstrahieren ist aber nicht jedermanns Sache.

An dieser Stelle kommt Fritzing zum Einsatz. Man kann mit der Software auch richtige Schaltpläne zeichnen, die besondere Stärke liegt aber im einfachen Zeichnen von Breadboards und den darauf aufgebauten Schaltungen.

Gestern habe ich beispielsweise einen Arduino Nano geordert. Sobald der hier ist werde ich die abgebildete Schaltung aufbauen, da ich etwas mit dem Sensor spielen möchte. Anhand des Bildes kann ich jedermann klar machen was ich vorhabe, und wie der Aufbau aussehen wird.

Meine größeren Schaltungen werde ich wohl weiterhin mit KiCAD zeichnen, trotzdem glaube ich dass â‚£ritzing meinen Werkzeugkasten auf jeden Fall bereichern wird.