Raspberry PI mit SVN Sync

Raspberry ist bekannt dafür ziemlich viel Leistung aus dem kleine 3,5 Watt Gerät heraus zu kitzeln. Ich finde es immer wieder spannend neue Tools auszuprobieren und auch unser SVN zu synchronisieren.  Zum einen geht es ziemlich schnell und per Cronjob auch dauerhaft.

Schritt 1  – Installation SVN auf dem Raspberry

Um SVN auf den Raspberry zu installieren geht’s mal wieder flott über apt-get oder aptitude. In meinem Fall nutze ich meistens aptitude auch wenn es oft nicht nötig ist.

sudo aptitude install svn

Nach ein paar Minuten ist SVN installiert und kann verwendet werden.

Schritt 2 – Anlegen eines SVN- Verzeichnisses

Ich verwende für meinen svn meistens ein Verzeichnis unter var

sudo mkdir /var/svn/

Anschließend erstellen wir per svnadmin unsere repositories die wir synchronisieren wollen.

cd /var/svn/
mkdir repo1
svnadmin create repo1

Schritt 3 – Initialisierung der Repositories

Fürs synchronisieren muss anschließend das Repository dem externen Server bekannt gemacht bzw. initialisiert werden. Hierfür habe ich ein kleine Script geschrieben und über den ersten Parameter wird der Reponame übergeben.

#!/bin/sh

REPO=$1
SRC_PATH=/var/svn
SERVER=svn://SERVERADDRESS
LOG=/var/svn/log
AUTH="--source-username USER --source-password PASS --sync-username USER --sync-password PASS"

echo "CREATE: $SRC_PATH/$REPO"
mkdir $SRC_PATH/$REPO

echo "SVNADMIN CREATE $REPO"
svnadmin create $SRC_PATH/$REPO

echo "COPY Hooks"
touch $SRC_PATH/$REPO/hooks/pre-revprop-change
chmod +x $SRC_PATH/$REPO/hooks/pre-revprop-change
echo '#!/bin/sh' > $SRC_PATH/$REPO/hooks/pre-revprop-change

echo "INIT: $REPO"
svnsync init $AUTH file://$SRC_PATH/$REPO $SERVER/$REPO >> $LOG/init_$REPO.log
./initRepo.sh repo1

Schritt 4 – Sync der Repositories

Fürs synchronisieren habe ich ebenfalls ein kleines Script geschrieben. Hierbei sind aber die Repos in der Datei vorhanden.

#!/bin/sh

SERVER=svn://SERVERADDRESS
LOG=/var/svn/log
AUTH="--sync-username USER--sync-password PASS"
DATE=$(date -d today)

echo "-----------------------";
echo "Start Sync: $DATE";

REPO=repo1
echo "Sync: $REPO"
svnsync sync $AUTH file:///var/svn/$REPO >> $LOG/sync.log

DATE=$(date -d today)
echo "End Sync at $DATE";
echo "--------------------------";
./sync.sh

Dieses Script verwende ich anschließend auch für den cronjob.

Schritt 5 – Cronjob einrichten

crontab -e
0 1 * * sudo /var/svn/sync.sh >> /var/svn/crontab.log

Raspberry PI als Druckerserver mit Samsung Treibern

Schon seit längerem bin ich stolzer Besitzer eines RaspberryPi. Ich finde das 30€ Gerät super und durch die SD- Karte ist es möglich ziemlich schnell ein neues System zu auszusetzen. Für mich habe ich den Raspberry als Druck, VPN, SVN- Backup und Nagios- Server installiert.

Aber zuerst ein kleines Tutorial für euch um den Raspberry als Druckserver einzurichten. Es gibt zwar einige Tutorials zum Installieren des Raspberry Pis als Printserver aber meistens mit herkömmlichen Druckern die aktuelle Treibersetze liefern für ARM. Samsung hat da bisher immer etwas geschlafen. Seit ein paar Wochen gibt es jetzt aber auch aktuell ARM treiber für den PI.

Eine gute Anleitung für den Printserver findet ihr hier:

http://thomas-leister.de/allgemein/raspberry-pi-als-printserver/

Anschließend erkläre ich euch noch wie ihr die aktuellen Samsung Treiber installiert um den Raspberry zum drucken zu bekommen. Da hatte ich ein paar Startschwierigkeiten.Bildschirmfoto 2013-11-17 um 10.05.17

Ladet euch zum einen die aktuellen Linux Treiber von Samsung für euren Drucker. Ich glaube zur Zeit liefert Samsung eine gaze Library  Universal Driver für die Systeme in der alle möglichen Treiber hinterlegt sind.

Ladet euch die drei Pakete auf den Pi entpackt das ganze z.B. in euer /home/pi directory. Dabei bekommt ihr über das entpackte ULD V1.00.06 Paket den Ordner uld im Homedirectory angezeigt.

Jetzt müsst ihr die Datei bearbeiten:

root@raspberrypi:/home/pi/uld# nano noarch/packet.sh

Geht in die Zeile 59 und fügt euren Raspberry ARM Architektur Typ hinzu. In meinem Fall: armhf

        elif [ "$ARCH" = "arm" -o "$ARCH" = "armhf" ]; then
                ARCH=$ARCH_ARM
        else

Anschließend könnt ihr über ./install.sh das Setup starten. Im Normalfall sollte das Setup die aktuellen Treiber installieren und anschließend über die CUPS Oberfläche auswählbar sein. Alle anderen Treiber von CUPS sind veraltet und werden nicht funktionieren, so meine Erfahrung.

Anschließend geht ihr noch in das Verzeichnis: /udl/arm/ und kopiert alle files in das cups/library dir um dem DruckerService die rastertospl verfügbar zu machen.

root@raspberrypi:/home/pi/uld/arm# cp * /usr/lib/cups/filter/

Anschließend den CUPS Server neu starten. Sobald ihr jetzt den Drucker dem Service hinzufügt sollte das Ding auch laufen.

root@raspberrypi:/home/pi/uld/arm# /etc/init.d/cups restart

HTC One X Reparatur

Um euch alle auf den aktuellen Stand zu bringen. Mein HTC One X erfreut sich aller bester Gesundheit. Es ist uns zwar nicht gelungen ausschließlich das Glass zu tauschen aber nachdem wir die Display- Kompletteinheit getautscht haben ist es wie neu. Das Orginal HTC One X Display haben wir von einem Kompetenten Deutschen Händler auf eBay erhalten. Ledglich 8€ teurer als der Konkurrent aus „Taiwan“ 😉 … Da gebe ich lieber ein paar Cent mehr aus.

Nach ca. 45 Minuten vorsichtigen Einbaus haben wir das Gerät erfolgreich starten lassen. Leider habe ich vergessen ein paar schöne Bilder zu schießen aber ich denke die wichtigsten Infos habt ihr jetzt. 😉

HTC One X gescheiterte Reparatur

Ach ja, mein schönes HTC One X. Mit dem neuen Update auf eine relativ neue Android Version hat sich mein One X zu einem schönen Smartphone geupdated für den täglichen gebrauch. Egal ob Feed oder auch mein Kalender meine täglichen Telefonate und das wirklich intensiv gebrauchte Headset haben mir gut gedient. Leider ist es mir letzte Woche aus der Tasche gefallen und auf die Kante. Das Resultat daraus könnt ihr euch ja denken.

DSCN0178 DSCN0177 DSCN0176 DSCN0169 DSCN0168 DSCN0167 DSCN0179

 

 

Jetzt kommt das fatale Ende, wir haben es nicht geschafft. Das LCD- Display ist gebrochen und ausgelaufen. Jetzt kommt Lösungsschritt zwei. Die Kombi- Einheit von Glass und Display ist bestellt und kommt hoffentlich rechtzeitig.

Ciao, bis die Tage. :((

osRetail – Primefaces 4 Upgrade

Wir sind wieder einen Schritt weiter. osRetail in der finalen Primefaces 4.0 Version. Und als Maven Projekt. osRetail das erste open Source ERP System für den Handel. Wir versuchen das starre Korsett eines fertigen ERP System aufzubrechen. Dem Kunden eine möglichst große Vielfalt an Standardfunktionalität zu bieten und auch kostspielige Funktionen wie der Katalogerstellung frei Haus mitzuliefern.

Vor ca. einem Jahr haben wir uns dazu entschlossen ein großes Refactoring der Software durchzuführen. So haben wir nicht nur die Entwicklungsumgebung von Netbeans auf Eclipse geändert. Wir haben auch IceFaces ausgetauscht und – mit dem leistungsstarken Framework – Primefaces einen weiteren Schritt zu einer moderneren Arbeitoberfläche geebnet.

jee7-standard

Ebenso wurde der Code überarbeitet. Derzeit verwenden wir den JEE7 Standard um den aktuellsten Stand der Enterprise Entwicklung von Java nutzen zu können. Autodeployments über Jenkins erleichtern uns die Arbeit erheblich da wir alle Code Commits und Änderungen auf den Testsystem schnellst möglich dem publishen können.

maven-overview-plugin

Maven unterstützt uns bei der Library Auswahl. Mit einfachsten Mitteln ist es möglich neue oder ältere Bibliotheken auszuwählen und automatisch in der Entwicklung und beim Deployment zu verwenden.

Glassfish 4 bietet uns einen schnellen Application- Server der leicht zu handeln ist. Skalierbarkeit, effizientes Arbeiten und schnelle Deployments standen dabei im Vordergrund. Durch einfache Erweiterbarkeit ist es uns möglich schnell auf Kundenwünsche zu reagieren.

Maven- Aufbau eines JEE Projekts

Automatisches Deployment ist so eine Herausforderung die man nicht einfach mal so nebenher macht. Allgemein gesehen geht es recht fix wenn man mal verstanden hat wie alles funktioniert.

Zum einen wird ein funktionsfähiges Maven Projektgruppe benötigt. Das heißt eine JEE Anwendung mit ihren Komponenten:

  • JPA
  • EJB
  • Web
  • EAR

Container. Das Ganze mit vernünftigen pom.xml Files die auch richtig funktionieren.

POM.XML für  JPA Projekt.


  4.0.0
  com.kuw.example
  ExampleJPA
  0.0.1-SNAPSHOT
  ExampleJPA
  Java Persistence for Example
  
    src
    
      
        src
        
          **/*.java
        
      
    
    
      
        maven-compiler-plugin
        3.0
        
          1.6
          1.6
        
      
    
  
  
    
		org.eclipse.persistence
		eclipselink
		2.5.0
	
  

POM.XML für EJB Projekt:


  4.0.0
  com.kuw.example
  ExampleEJB
  0.0.1-SNAPSHOT
  ejb
  
    ejbModule
    
      
        ejbModule
        
          **/*.java
        
      
    
    
      
        maven-compiler-plugin
        3.0
        
          1.6
          1.6
        
      
      
        maven-ejb-plugin
        2.3
        
          3.1
        
      
    
  
  
  	
	 	com.kuw.example
		ExampleJPA
		${project.version}
		provided
		jar
	   
	
		javax.mail
		mail
		1.4.7
	
	
		org.apache.commons
	  	commons-lang3
	  	3.1
	
	
		org.eclipse.persistence
		eclipselink
		2.5.0
	
	
		javax.ejb
		javax.ejb-api
		3.2
	
  
  QuatEJB

POM.XML für Web Projekt inkl. Primefaces


  4.0.0
  com.kuw.example
  Example
  0.0.1-SNAPSHOT
  war
  Quat
  
    src
    
      
        src
        
          **/*.java
        
      
    
    
      
        maven-compiler-plugin
        3.0
        
          1.6
          1.6
        
      
      
        maven-war-plugin
        2.3
        
          WebContent
          false
        
      
    
  
  
	  
		javax.faces
		jsf-api
		2.1
	
  	
  		org.apache.directory.studio
  		org.apache.commons.io
  		2.4
  	
  	
		commons-fileupload
		commons-fileupload
		1.3
	
	
	 	com.kuw.example
		ExampleEJB
		0.0.1-SNAPSHOT
		provided
		ejb
	
	
	 	com.kuw.example
		ExampleJPA
		0.0.1-SNAPSHOT
		provided
		jar
	
  	
		org.primefaces.extensions
		primefaces-extensions
		0.7.1
	
   
		org.primefaces.extensions
		resources-ckeditor
		0.7.1
	
	
		org.primefaces.extensions
		resources-codemirror
		0.7.1
	
		
		org.primefaces.extensions
		all-themes
		1.0.8
	
      
	    org.primefaces  
	    primefaces  
	    3.5  
	                                 
  
  
	  
	    prime-repo  
	    PrimeFaces Maven Repository  
	    http://repository.primefaces.org  
	    default  
	  
  

POM.XML für EAR.


  4.0.0
  com.kuw.example
  ExampleEAR
  0.0.1-SNAPSHOT
  ear
  
    
      
        maven-ear-plugin
        2.8
        
          EarContent
          false
          6
          lib
        
      
    
  
  ExampleEAR
  www.ka-und-we.de
  
  	
  		com.kuw.example
  		ExampleEJB
  		${project.version}
  		ejb
  	
  	
  		com.kuw.example
  		QsMPrime
  		${project.version}
  		war
  	
  	
  		com.kuw.example
  		ExampleJPA
  		${project.version}
  		war
  	
  

Primefaces 3.5 inkl. Upload im Internet Explorer 10

Für alle die Primefaces in der Version 3.5 verwenden und auch den Internet Explorer 10 nutzen gibt es leider einen kleinen Bug im Upload. Der Fehler ist aber sehr schnell zu beheben mit einem kleinen Workaround im CSS.

.fileinput-button input {
    -moz-transform : none !important;
    border : none !important;
    border-width : 0 !important;
    transform : translate(-300px, 0) scale(4) !important;
    font-size : 23px !important;
}
* + html .fileinput-button {
    line-height : none !important;
    padding : 2px 15px !important;
}

Bandscheibenvorfall, so ein Schmerz

Was nichts neues sein dürfte für andere ist für mich eine sehr unangenehme Erfahrung. Bisher habe ich wirklich schon einiges an Brüchen, Verletzungen etc davon getragen aber so ein Bandscheibenvorfall hat es in sich.

Schlimmer als mein Autounfall… Ja so könnte man es nennen. Die dauerhaften Schmerzen zermürben einen regelrecht. Stehen und Laufen fällt einem schwer und im Bayreuther Medcenter hab ich viele andere gesehen denen es nicht viel besser zu gehen scheint. Eine Spritze später und ca. eine endlose Stunde zur Überwachung im Wartezimmer konnte ich wieder gehen. Naja sofern man es gehen schimpfen kann.

Aber erstmal zu meinem Autounfall…

Bei meinem Autounfall vor ein paar Jahren wurde mir meine Hüftgelenk links ausgekugelt. Dabei hat sich ein kleines Knochenstück gelöst und ich hatte tierische Schmerzen ohne Schmerzmittel. Nach dem Einrenken war alles wie verflogen. Noch ein paar Tage Bettruhe im Krankenhaus und danach auf Krücken nach Hause. Ja, ich war wie zuvor auch schon ziemlich unausstehlich die 4 Wochen auf Krücken und ohne Bewegung. Aber da ging es nicht anders.

Mein Medcenter Aufenthalt…

Beim Bandscheibenvorfall ist es etwas anders. Du versuchst unter ziemlich starken Schmerzen deine Gymnastik zu machen. Deinen Willen zu behalten diese vermalledeite Gelenk wieder in Schwung zu bekommen und wirst bestraft mit Schmerzen. Bis einem schlecht wird. Das Gefühl hatte ich gestern am 2.7.13 das erste mal. Tierische Schmerzen weil ich ohne Schmerzmittel ins Medcenter bin und versucht habe korrekte Antworten dem  , ich würde durchaus sagen kompetenten Doktor zu geben und auf meine Fehlstellung bzw. pelzigen Fuß hinzuweisen. Nachdem ich ein paar motorische Übungen machen musste um die Beweglichkeit und Einfühlsamkeit nachzuweisen durfte ich mich direkt auf einer Liege platzieren. Keine OP notwendig solange keine motorischen Schäden erkennbar sind, das ist doch schon mal eine „gute“ Nachricht. Nachdem ich auch einen sehr kompetenten Osteopathen kenne der mir sehr gerne helfen würde wurde mein Wunsch auf ein Rezept für den Osteopathen leider verwehrt. Jetzt werde ich doch noch mal meine Hausärztin kontaktieren dürfen. Markus, der Osteopath hat mir einiges meiner Meinung logisch wunderbare Sachen vor Augen geführt die man in diesem Bereich angehen könnte. Mittlerweile habe ich auch schon viele kennen gelernt denen zum einen der Ostepathe oder auch Akupunktur geholfen hat. Ich werde mir ersterem jetzt starten und nichts unversucht lassen.

Ein paar interessante Sachen zum Thema Bandscheibe habe ich noch gefunden bei Youtube. Ziemlich interessant und auch effektiv habe ich vor allem diese Video hier empfunden. Zum teil sind nicht alle Übungen für einen empfehlenswert aber wenn man ausprobiert was einem Gut tut kann man sehr gut in seinen täglichen Ablauf integrieren.

Für alle anderen die das auch schon durchgemacht haben meinen Respekt es ist wirklich sehr anstrengend es durchzuhalten und auf seinem Arsch einfach liegen zu bleiben.

Aufschlussreich und interessant könnte auch dieser Beitrag sein. Regt einem doch etwas zum Denken an…

 

JEE Anwendung: QUAT

Es ist ein attraktives Entwicklungsumfeld im JEE Bereich. Webapplications mit EJB3 Anbindung und Managed- Beans.

Im Standard JEE6 wurde viel Aufmerksamkeit auf Annotations gelenkt und die vereinfachte Kommunikations der Beans mit dem Frontend. Der neue JEE7 Standard, erst ein paar Wochen alt wird jetzt speziell die Ausrichtung im Bereich Ajax im Blick haben. Light- Weight Communication mit dem Backend wenn man so will. Wenige Daten die geliefert werden und somit die Performance von Applikationen beschleunigt.

Ich werde euch hier ein kleines Beispiel für eine JEE Anwendung erstellen inkl. der aktuellen Version von Eclipse Kepler und Glassfish 4.

Die JEE Anwendung wird mit dem Plugin von Primefaces 3.5 laufen. Einem leistungsstarken Ajax- Framework das basierend auf jQuery UI viel interaktive Bearbeitungsmöglichkeiten bietet.

Nachteil von Primefaces. Die jQuery UI hat, meines erachtens nicht gerade ein business orientiertes Interfaces Design. Die Buttons und Eingabemasken wirken sehr groß und für ein schlankeres Aussehen müssen einige CSS Classes überarbeitet werden.

Auch muss man sich vor Augen führen das durch den zusätzlichen CSS und Javascript Aufwand die einzelnen Seiten etwas Content- lastiger werden und somit die Ladezeit im Gegensatz zu reinem JSF2 länger sein können. Da man aber sehr viele Daten nachladen kann wird nur der Erstaufruf etwas länger benötigen. Sobald alle Daten Clientseitig gecached wurden wird die Performance deutlich besser sein.

Maven wird in diesem kleinen Projekt eine weiter Rolle spielen. Um möglichst einfach alle Komponenten bauen zu lassen ohne sich um die Libraries kümmern zu müssen oder die Libraries im SVN bereit zu stellen werde ich mich darum kümmern das das Projekt mit Maven gebaut werden kann.

Vorteile:

  • Versionierung des Projektes anhand von Maven- einstellungen.
  • Einfaches Updaten von Libraries
  • Schnelles Bauen von Projekten

Nachteil:

Langwieriges einstellen der Maven Poms um einen erfolgreichen Build zu generieren. Mittlerweile habe ich auch festgestellt das nicht alle POM Einstellungen Plattformunabhängig sind. Es kann sein das Builds teilweise unter Windows laufen und auf dem Mac Fehler verursachen weil Abhängigkeiten fehlen.

Projektname: QUAT

Das Projekt das ich seit längerem realisiere nennt sich QUAT. Mittlerweile stecken knappe 2 Jahre Entwicklung in dem System. Angefangen hat es mit einer einfachen PHP Anwendung die mittlerweile ihre Alter erreicht hat und dank unzähliger PHP Updates auch einiges an Funktionen nicht mehr unterstützen bzw. nur noch per Workaround laufen.

QUAT wird z.B. für ein Callcenter verwendet werden können das sich mit der Qualitätssicherung von Mitarbeiter beschäftigt. Überall wo die Leistung vom Mitarbeiter eine Bewertung benötigt und die Qualität in Gesprächen oder direkter Kommunikation am Telefon geprüft werden muss um den Erfolg der Firma zu steigern oder gezielt Schulungen für Mitarbeiter anzubieten.

Aber erstmal genug um den Nutzen der Software. Wir möchten uns die technische Seite etwas genauer ansehen und somit den Aufbau der Software.

[HIER WERDEN ALLE ZUKÜNFTIGEN ARTIKEL ZU QUAT GELISTET UND VERLINKT|

 

So ein schmerzhafter Rücken ist nicht schön

Jaaaaaaa… ich weiß. Die Weicheier wieder, Männer. Wenn Männer Leidenschaft und Feuer haben dann beim Jammern. Aber zu Recht. So ein Bandscheibenvorfall ist kein Spaß. Es gibt auch tausende vor mir die sowas schon hatten sogar jüngere und viele, viele nicht sogar unzählige ältere. Leider nervt es mich nur noch. Daher bekommen meine Blogleser etwas Frust ab.

Ich finde es halb so dramatisch wenn man sich mal was bricht. Da ist der Ärger auch groß aber man kann abschätzen das nach ca. 6 Wochen der Schmerz vorüber ist und die Knochen wieder einen guten Zustand haben. Beim Bandscheibenvorfall kommt es mir momentan so vor als wäre es ein Rätselraten von Arzt zu Arzt. Nicht das ich was gegen Ärzte hätte… Neeeeiiin. Ich liebe es Stunden in überfüllten Wartezimmern zu sitzen und die Bakterien anderer wirklich kranker Menschen einzuschnaufen. Denn wenn ein Fenster geöffnet werden würde die ersten > 80 Patienten vom Stuhl knallen. Frischluft oder Kälteschock. Wer weiß. Das Phänomen tritt aber auf, egal ob Sommer oder Winter. Daher gehe ich von ersterem aus. Ja, auch ich werde mal alt. Vorgenommen sind die 120 zu erreichen. Bis dahin sollten Austauschorgane doch kein Problem mehr darstellen. 😉

Aber zurück zum Thema. Was mache ich mit so einem doofen Bandscheibenvorfall.Doof ist der der ihn bekommt werden jetzt ein paar böse Zungen sagen aber laut meinem tollen Orthopäden ist es ein Zufallsereignis. Ach wie toll.

22.05.2013 Kaum zu glauben. Aber …

meine erste Krankengymnastik war super. Die Massagen sind toll und die Wirbelsäule wird dabei wunderbar entspannt. Abgesehen von der Entspannung konnte ich jetzt seit Wochen das erste mal wieder ruhig sitzen ohne jede 5 Minuten hin und her zu rutschen. Das schlimme daran war nur das ich vom Vorfall bis hin zur Krankengymnastik das ganze sich über einen Monat gezogen hat. Wenn ich noch den Schritt zum Neurologen gemacht hätte würde ich immer noch keine Prävention bekommen stattdessen immer noch alle 5 Minuten die Position des Gesäß ändern.

Mehr demnächst …