Ich konnte jetzt im November/Dezember sowohl die Schulung als auch die Prüfung zum Certified Professional for Software Architecture im Foundation Level erfolgreich ablegen.
Ich konnte jetzt im November/Dezember sowohl die Schulung als auch die Prüfung zum Certified Professional for Software Architecture im Foundation Level erfolgreich ablegen.
Sabrina hat endlich ihren Gutschein für ihren Hubschrauberflug über Hamburg einlösen können. Wir konnten kurzfristig einen Termin machen und es war auch noch klasse Wetter. Vom Hamburger Airport ging es los. Sabrina konnte viele der Hamburg Sehenswürdigkeiten auch endlich mal von oben Erblicken. Sie hat viele Fotos gemacht und hier gibt es ein paar der Fotos von ihrem Rundflug…
Nachdem Sabrina und ich ja beim Klettern und Bouldern reichlich Blut geleckt haben wollten wir nun auch ein wenig Kletterfeeling zu Hause haben. Gesagt, getan. Das Projekt Boulderwand war geboren. Mit Hilfe von Tatenpante 😀 wurden mal schnell 6 Siebdruck-platten besorgt und diverse Schrauben.
Dann konnte es auch los gehen.128 Löcher gebohrt mal 6 Platten macht 768 Löcher insgesamt. Die wollten dann noch versiegelt werden und die Einschlagmuttern entsprechend in die Löcher geschlagen werden. Der Arm lässt grüßen…
Danach nur noch schnell die Platten richtig an die Schuppenwände montiert und das Routen bauen konnte los gehen.
Das Ergebnis seht ihr auf den folgenden Bildern.
Ab jetzt kann dann auch endlich zu Hause gebouldert werden 😀
Hier ein paar Bilder von der SAP Schulung aus Kopenhagen letzte Woche.
Eines sei noch erwähnt: SAP is the FUTURE 😀 (haha)
Ich bin gerade dabei für Knowledgeroot2 die Datenbank Dumps zu erstellen. Für PostgreSQL hab ich dies nun schon fast fertig. Über MySQL musste ich mich gestern mal wieder richtig ärgern.
In Knowledgeroot2 soll diesmal automatisch für Inhalte, Seiten und Dateien eine Historie mit geführt werden. Dies hab ich in PostgreSQL mittels Trigger und Stored Procedures gelöst. Es funktioniert und kann sicherlich noch optimiert werden. Nun wollte ich das gleiche in MySQL machen und musste feststellen, dass dies nun überhaupt nicht so geht wie ich dachte.
Für PostgreSQL habe ich folgendes Dump: https://github.com/lordlamer/knowledgeroot/blob/master/data/dumps/postgresql.sql
Anhand des Dumps kann man auch meine Idee sehen. Wenn ich einen Datensatz in die content/page/file Tabelle einfüge oder ändere wird mittels eines Triggers eine Funktion aufgerufen die dann auch einen Eintrag in die entsprechende Historie-Tabelle tätigt.
Soweit sogut. Jetzt kommt MySQL mit seinen Fesseln. Es sollte ja schon bekannt sein, dass ich in MySQL nur einen Trigger je event an eine Tabelle hängen kann. Dies ist für mich zum Glück kein Problem. Aber ein Problem ist, dass ich nicht in einem Rutsch einen Trigger für mehrere Events anlegen kann. Nein, hier muss ich für jedes Event dann einen Trigger anlegen. OK. Etwas mehr schreibarbeit. Damit kann man auch noch leben wenn man dann NEW und OLD an eine Funktion in MySQL durchreichen könnte. Aber falsch gedacht. Auch dies geht nicht…
Willkommen und schon müssen wir Code duplizieren.
Für mich zeigt dieser Umstand leider nur, dass man MySQL leider nicht in Umgebungen einsetzen kann und sollte wo viel mit Triggern und Stored Procedures gearbeitet wird.
Klar, es geht irgendwie auch in MySQL aber Spass macht das nicht! Hier besteht wirklich noch Nachholbedarf!
PS: Hier noch mein aktuelles Dump dann in MySQL: https://github.com/lordlamer/knowledgeroot/blob/master/data/dumps/mysql.sql – Verbesserungen nehme ich gerne entgegen
Der Schnee und Frost sind weg und unser Matsch auf dem Grundstück da. Da haben sich Alexa und Papa mal den Matsch genauer angesehen…
Die Erschliessung der Hausanschlüsse fängt langsam an. Der Graben ist schonmal da.
Die Haustür ist auch entkleidet, die Fliesen sind da und wurden teilweise ins OG geschaft und im HWR waren wir beim Abschleifen.
Irgendwann kommt der Zeitpunkt da ist einem die Suche seines Programmes über die Datenbank zu langsam oder gewisse Features sind nur schwer über die Datenbank zu realisieren oder die Suche skaliert einfach zu schlecht. Gründe gibt es viele sich mal umzuschauen nach Alternativen. Aber was gibt es da? Eine Lösung könnte Apache Solr sein.
Apache Solr ist eine Enterprise Plattform für Suchen. Solr baut auf dem Apache Lucene Projekt auf und bietet Features wie Highlighting, Faceting, Clustering, Volltextsuche, REST-Schnittstelle und andere tolle Sachen die man auch von Google her kennt.
In diesem Artikel möchte ich euch bei den ersten Schritten mit Apache Solr unterstützen. Vielleicht gibt es zu dem Thema in Zukunft auch noch weitere Artikel.
Also, was haben wir vor. Ich möchte eine Multicore-Installation von Solr mit Tomcat zeigen. Dazu muss man wissen, dass man mit Solr nicht nur eine “Datenbank” zum dursuchen haben kann sondern mehrere parallel(Multicore) und das auch mit unterschiedlichen Konfigurationen. Aber dazu später mehr.
OK. Was brauchen wir?! Apache Solr und Apache Tomcat. Beides können wir als tar.gz herunterladen:
http://tomcat.apache.org/
http://lucene.apache.org/solr/
Weiterhin benötigt ihr Java. Das heißt, ihr solltet euch entweder Java herunterladen oder über eure Distribution installieren.
Kommen wir zu unserem Arbeitsbereich. Hierfür nutze ich den Ordner /www/solr bei mir. Ihr könnt auch irgend ein Ordner eurer Wahl nehmen. In diesem Ordner entpackt ihr dann das Solr.tar.gz und das Tomcat.tar.gz. Danach benennt ihr noch das Solar Verzeichnis direkt in “solr” und das Tomcat Verzeichnis direkt in “tomcat” um. Fertig wäre Step 1.
Und weiter geht es mit Step 2. Jetzt legen wir den Ordner “solr-multicore” in /www/solr an. Danach kopieren wir alles aus solr/examples/multicore nach /www/solr/solr-multicore:
cp -a /www/solr/solr/examples/multicore/* /www/solr/solr-multicore/
Im Step 3 kümmern wir uns endlich um Tomcat. Wir müssen Tomcat zum einen mitteilen wo er unsere Multicore Installation findet und zum anderen müssen wir Solr im Tomcat veröffentlichen. Wir öffnen also tomcat/conf/catalina.properties und fügen folgende Zeile hinzu:
solr.solr.home=/www/solr/solr-multicore
Jetzt legen wir noch einen Benutzer für die Verwaltung von Tomcat an. Dazu öffnen wir tomcat/conf/tomcat-users.xml und legen die Datei so an:
<?xml version='1.0' encoding='utf-8'?> <tomcat-users> <role rolename="manager-gui"/> <user username="admin" password="admin" roles="manager-gui"/> </tomcat-users>
Jetzt sind wir auf der Zielgeraden. Wir müssen jetzt noch Solr im Tomcat veröffentlichen. Dazu kopieren wir die WAR-Datei aus Solr in das Tomcat webapps Verzeichnis.
cp /www/solr/solr/dist/apache-solr-3.3.0.war /www/solr/tomcat/webapps/solr.war
Jetzt brauchen wir nur noch Tomcat starten. Dazu gehen wir in das Verzeichnis tomcat/bin und führen startup.sh aus. Nach dem starten öffnen wir unseren Browser und öffnen folgender URL:
http://localhost:8080/solr/
Damit sollten wir einen Überblick über alle konfigurierten Cores in Solr sehen und können jetzt anfangen mit Solr zu spielen. Dazu kommen wir aber in einem neuen Artikel. Zum Schluss noch kurz erwähnt. In solr-multicore/solr.xml könnt ihr weitere Cores konfigurieren und in jedem Core Ordner gibt es einen conf Ordner mit einer schema.xml über welche ihr den Core konfigurieren könnt. Dazu dann aber mehr in einem neuen Artikel.
Ich lese zur Zeit gerade High Performance LAMP von Mirko Giese.
Ich konnte mir ein gebrauchtes Buch bei Amazon für 14 Euro besorgen. Ich muss sagen die 14 Euro war es auch Wert. Ich weiß nicht ob ich die vollen 34,90 Euro dafür zahlen würde aber 14 Euro sind schon OK.
Auf den Knapp 200 Seiten geht es eigentlich nur um das Thema Performance. Dabei werden Einstellungen des Apaches behandelt, Best Practices zu PHP, MySQL Tuning und Query Optimizing gefolgt vom Load Balancing und noch ein paar Kleinigkeiten.
Es geht also auf den 200 Seiten gut zur Sache. Vor allem sehr schön wird immer mit Praktischen Beispielen gearbeitet und verglichen. Der Autor zeigt hier schön was sich bei ihm in der Praxis bewährt hat und was nicht.
Für mich gab es den oder anderen “AHA”-Effekt in diesem Buch. Ich kann damit dieses Buch nur wärmstens Empfehlen.
Hier auch noch der Link zu Amazon:
http://www.amazon.de/High-Performance-LAMP-Lastsituationen-PHP-Webseiten/dp/3868020047/