Redmine auf aktuellen Stand gebracht, so ist es abgelaufen

Es braucht gar nicht weiter gelesen werden. Ich habe die Aktion abgebrochen. Ich habe eigentlich jede Hürde gemeistert. Ruby in korrekter Version, Rails und Passenger. Passenger ohne Fehlermeldungen. Mysql2 und weitere Dinge, alles hinbekommen. Keine Fehlermeldungen. Aber es funktioniert dennoch nicht. Auch /public ist korrekt.  Redmine will einfach nicht starten. Nachdem ich derart viel Zeit mit dem Thema verbracht habe, musste ich mir wieder ehrlich gestehen, dass man sowas nicht „mal eben“ macht und man sich mehr als gedacht in die Sache rein hängen muss.

Sollte ich sowas noch einmal in Angriff nehmen, denke ich daran schon mal viel Zeit zu reservieren. Und: Ruby On Rails ist nicht meine Welt.


 

Welche Umgebung liegt vor?

Welche Linux-Version?

zulu1902:~# uname -a
Linux zulu1902.*******.de 2.6.32-5-amd64 #1 SMP Tue May13 16:34:35 UTC 2014 x86_64 GNU/Linux

Welche Distribution?

zulu1902:~# lsb_release -a No 
LSB modules are available.
Distributor ID: Debian
Description: Debian GNU/Linux 6.0.10 (squeeze)
Release: 6.0.10
Codename: squeeze

Welche Ruby-Version ist installiert?

zulu1902:~# ruby -v
ruby 1.8.7 (2010-08-16 patchlevel 302) [x86_64-linux]

Welche Rails-Version ist installiert?

zulu1902:~# rails -v
Rails 2.3.5

 Welche Umgebung ist erforderlich?

ruby 1.9.33, 2.0.02, 2.1, 2.2.1
Rails 4.20

Demnach muss Ruby wie auch Rails zunächst aktualisiert werden. Ich habe es zunächst mit RVM probiert, aber irgendwie ursächlich fieser Fehlermeldungen im Zusammenhang mit MySQL den Faden verloren. Nichts ging mehr. extconf.rb:67:in `<main>‘: uninitialized constant Config (NameError) ist zwar relativ sprechend, auch habe ich erfahren, es es nicht mehr Config sondern RbConfig ist. Aber ist habe die Probleme nicht lösen können. Ein beherztes

rvm implode 

hat dieser Geschichte, deren Sinn ich im Nachhinein gar nicht mehr nachvollziehen kann, ein entsprechendes Ende gesetzt. 

 

1. Update Ruby On Rails

Ich habe Ruby zunächst vom System entfernt. Mit
sudo apt-get remove ruby1.8
war das schnell erledigt. Dann habe ich nach dieser Anleitung Ruby komplett neu eingerichtet. Mit
wget ftp://ftp.ruby-lang.org/pub/ruby/2.3/ruby-2.3.0.tar.gz
heruntergeladen und mit folgenden Kommandos kompiliert und installiert:

cd ruby-1.9.3-p547
./configure --enable-pthread --prefix=/usr/local 
make && checkinstall --type=debian --install=yes --fstrans=no --pakdir='~'

Ein erneuter Versuch… 

Ich laufe noch immer auf viele Fehler, also versuche ich es erneut:

rvm install 2.2.1
rvm use 2.2.1
rvm install rails

Probleme mit Passenger

Leider gibt es erhebliche Probleme bei der Installation des Passenger Application Servers. /mod_passenger.so ist nicht zu finden. Ein beherztes

find -iname mod_passenger.so 

hat mir dann den wahren Ort den Apache-Moduls verraten und ich konnte, abweichend von der Installationsdokumentation, den korrekt Pfad eintragen. Und siehe da, Webserver Apache läuft wieder. Nun mit geladenem Passenger-Modul.

Nun kann das Update Redmine durchgeführt werden

Die Anleitung hierzu habe ich hier gefunden: http://www.redmine.org/projects/redmine/wiki/RedmineUpgrade

1. Backup

Da sowieso jeden Tag ein Backup durchgeführt wird, beschränke ich mich auf die Kontrolle, ob es denn heute auch funktioniert hat. Wobei nur die Datenbank gesichert und auf einen anderen FTP-Server übertragen wird, jedoch nicht die Dateien. Dies mache ich sicherheitshalber auch fix per WinSCP manuell. Zu finden in /usr/share/redmine/files

2. Das Update

Es gibt 2 Varianten: Download des Stable Releases oder Checkout aus einen SVN -Repository. Da Letzteres sehr einfach erscheint, es sind nun 2 Befehle an der Kommandozeile, versuche ich zunächst die 2. Option.

svn update
bundle update

Was ist an unserer Sprache so schlimm? #paydirekt

Ok, ich habe nun verstanden, warum man so ein Gemansche machen muss, es nicht paydirect heisst, sondern paydirekt. Denn es gibt es schon:

paydiekt

Aber warum nennt man das Kind nicht ZahleDirekt. Ach ja, weil man sich international aufstellen will. Ok, aber dafür einen Rechschreibfehler akzeptieren? Hmmm….

Bin ich zu engstirnig? Oder kann der geschätze Nichtdeutsche sich nicht auch an ein deutsches Wort gewöhnen, wie wir uns an PayPal und Konsorten gewöhnt haben?

 

 

 

 

 

[Umbraco] System.OverflowException: Value was either too large or too small for an Int32.

Umbraco ermöglicht es XSLT-Macros zu erstellen. In diesen können Variablen mit Werten belegt werden. Nun benötigt man häufig IDs von Seiten  um bspw. per

<a href="{umbraco.library:NiceUrl($IdEinerSeite)}">

zu verlinken.

$IdEinerSeite

soll nun per

<xsl:variable name="IdEinerSeite" select="Eigenschaft"/>

zugewiesen werden. Soweit so gut. Doch unerwarteter Weise erscheint die Fehlermeldung

System.OverflowException: Value was either too large or too small for an Int32

, obwohl tatsächlich eine korrekte Nummer in $IdEinerSeite enthalten ist.

Die Lösung ist einfach und mutet kurios an:

<xsl:if test="Eigenschaft!= '' ">
  <xsl:variable name="IdeinerSeite" select="Eigenschaft"/>
    <a href="{umbraco.library:NiceUrl($IdEinerSeite) }">Mehr Info</a>
</xsl:if>

Allein der Test auf das Vorhandensein eines Wertes verhindert bereits die Fehlermeldung.

 

BIRT-Reports ohne Eclipse anzeigen, exportieren und drucken

eclipse birt viewer Mit BIRT lassen sich in Eclipse sehr professionelle und ansprechende Reports erstellen. Insbesondere für die Darstellung im Webbrowser bieten sich interessante Funktionen. Teils gibt es Dinge, die in anderen Designern gar nicht, oder nur mit sehr viel Aufwand funktionieren.

Normalerweise verwende ich den Sybase PowerBuilder, aber eine mir aktuell gestellte Aufgabe lässt sich partout nicht damit erledigen, wenngleich sie recht simpel erscheint: Es sollen Grafiken bzw. Bilder in einer Tabellenzeile immer vertikal zentriert positioniert werden. In Eclipse BIRT ist das nur eine Eigenschaft, in PowerBuilder wäre Programmierung erforderlich. Auch in SAP Crystal Reports ist es mir nicht gelungen, dies zu bewerkstelligen.

Nun habe ich den Report fertiggestellt, kenne inzwischen BIRT ganz gut, aber die einfache Frage, wie liefere ich den Bericht nun aus, so dass auch der Auftraggeber diesen jederzeit mit Daten füllen kann, war unbeantwortet und auch nicht „mal eben“ erledigt.

Da ich diese Aufgabe vermutlich noch öfter zu erledigen habe und ich Details gerne vergesse, schreibe ich den Weg vom fertigen Report bis zum Viewer und dem Druck hier einmal chronologisch nieder. Im Ergebnis erhält man einen BIRT Viewer, welcher im Browser geladen wird. Der Report wird präsentiert und man kann ihn als PDF, Word und Excel-Datei exportieren und natürlich drucken.

Webserver einrichten

Zunächst muss eine Webserver inkl. Applicationserver eingerichtet werden. Hört sich schlimmer an, als es ist:

  • Tomcat herunterladen http://tomcat.apache.org/
  • Tomcat in beliebiges Verzeichnis entpacken
  • Java JDK installieren. Wichtig, JRE reicht nicht aus.
  • Umgebungsvariable %JAVA_HOME% auf JDK-Verzeichnis setzen (bspw. c:\Program Files\Java\jdk<version>\). Dabei Besonderheiten der 64bit und/oder Vista/Windows 7-Umgebung berücksichtigen.
  • Per ..\apache-tomcat-<version>\bin\startup.bat den Server starten
  • Mit http://localhost:8080/manager/html prüfen, ob der Server funktioniert
  • Server mit ..\apache-tomcat-<version>\bin\shutdown.bat beenden

BIRT Viewer im Server installieren

  • BIRT Viewer (birt-runtime-<version>.zip) herunterladen und entpacken
  • Darin enthaltenes Verzeichnis \WebViewerExample nach \apache-tomcat-<version>\webapps\ kopieren
  • Dieses Verzeichnis sinnvoller in birt-viewer umbenennen
  • birt.war in das Verzeichnis \apache-tomcat-6.0.29\webapps\birt-viewer\WEB-INF\lib\ kopieren

Wenn Tomcat 6 zum Einsatz kommt, ist noch die commons logging library hier herunterzuladen zu installieren.

JDBC Treiber installieren

Da die Reports sich meist mit Datenbanken verbinden, ist ein entsprechender JDBC-Treiber zu installieren. Da ich Sybase ASA 9 verwende, beziehe ich mich hier auf diesen.

  • Treiber jconn3d.jar nach ..\webapps\birt-viewer\WEB-INF\platform\plugins\org.eclipse.birt.report.data.oda.jdbc\drivers kopieren

BIRT Viewer testen

Eigenen Report testen

  • <Reportname>.rptdesign nach \webapps\birt-viewer\report\ kopieren
  • Report mit http://localhost:8080/birt-viewer/<Reportname>.rptdesign laden

Parameter übergeben

  • Sind für den Report zu übergebende Parameter erforderlich, werden sie in einer erscheinenden Dialogbox abgefragt
  • Sie können jedoch auch alternativ direkt per URL-Parameter übergeben werden

Fazit

Die Installation ist trivial, lediglich die Installaitin des Java SDK ist ein wenig abschreckend, weil extrem viele unnötige Verzeichnisse und Dateien installiert werden müssen. Hier handelt es sich dann auch wirklich um „installieren“, während Tomcat und BIRT eigentlich nur kopiert werden.

Weitere Informationen sind unter folgender Adresse zu finden:

http://www.eclipse.org/birt/phoenix/deploy/viewerUsage.php

RTM ist offline, mal wieder was zum Thema „Cloud“

Remember The Milk Offline Heute ist Remember The Milk offline, vergangene Woche war Twitter offline. Mal wieder zu beachtende Zeichen für mich, nicht vollends auf die berühmte Cloud zu setzen. Nun habe ich meine wichtigsten Aufgaben auch im Kopf, aber ich nutze RTM auch für Notizen, da sie so praktisch auf alle Geräte synchronisiert werden, aber ist der Dienst nicht verfügbar, nutzt es natürlich nichts. Die Tatsache, dass mich solche Ereignisse in meiner Arbeit behindern, lässt mich weiter davon überzeugt sein, dass eiegentlich alles nach wie vor offline verfügbar sein muss.

Auf das ich meine Artikel hier hin und wieder erneut lese und meine Meinung so schnell nicht ändern werde.