Donnerstag, 22. Dezember 2016

Jahresendzeitworte

Meine Jahresendzeitworte richten sich weder an das Klima, noch die Politik, noch die Weltlage. Es gibt wahrlich schon (zu?) viele Interpretationen und Meinungen zu diesen Themen. Ich möchte ein paar Gedanken zu Stimmungen und Werten teilen.

Ich bin der Überzeugung, dass sich alles auf allen Ebenen wiederholt. So bestehen wir aus vielen einzelnen Zellen und sind doch ein Individuum. Eine Zelle ist eine Stadt mit Fabriken, Rechenzentren und Kraftwerken. Zellwände sind Grenzen - durchlässig für bestimmte Substanzen, für andere nicht. Städte und Strassen sehen auf Luftbildern aus wie Nervenzellen oder Blutbahnen. Die Funktionen sind ähnlich: Waren und Stoffe werden transportiert, Informationen werden ausgetauscht. Zellen mit einem verwandten Zweck bilden Organe und diese wiederum die Komplexe Maschine "Körper", der mit einem Bewusstsein durchflutet ist, welches dem Organ oder der Zelle vermutlich schwer zugänglich ist. Durch Verwitterung gezeichnete Gebirge, Flussdeltas sehen aus grosser Höhe aus wie Farne oder Blattstrukturen oder feiner Sand am Meer, der durch den Wind verweht, Strukturen am Strand bildet. Alles findet sich in sich selbst wieder - nur auf unterschiedlichen Ebenen. Alles hängt zusammen.

Unsere Gruppen, Gesellschaften und Nationen sind ebenfalls Wesenheiten. Ihr Bewusstsein ist uns einzelnen nur schwer zugänglich. Man fühlt den Zeitgeist, die Trends, lebt die Kultur und in der Kultur und wird so vom Hauch des grösseren erfasst. Aber die eigentlichen Intentionen sind grösser als wir. Das können wir nicht ganz erfassen, nur erahnen.

Doch die Sorgen und Ängste des Einzelnen haben Einfluss auf die Stimmung des Grösseren. Sie wandern vom einen zum anderen - manchmal nicht einmal verbal, sondern rein auf der emotionalen Ebene. Eine Stimmung in einem Team oder in einer Organisation kann da durchaus Einfluss nehmen - die Gruppe "erkranken" lassen, durch zum Teil schwer nachvollziehbare Faktoren. Sind Missstimmungen gross genug, werden sie in Worte und Parolen gefasst, Schuldige gesucht und angeprangert - sehr oft leider die falschen. Durch das neue Nervensystem der Gesellschaften - das Internet - verstärkt, schiessen diese durch die Gemeinschaften und verändern sie. Ebenso überträgt sich die Stimmung des Grösseren auf uns alle - kann uns mitunter niederdrücken, obwohl wir mit vollem Magen in einem geheizten Wohnzimmer sitzen.

Mir scheint, derzeit sind die Gesellschaften erkrankt. Sie haben mehr als nur einen Schnupfen. Sie zicken rum, sind unvernünftig - zumindest ein laut hörbarer Teil. Sollten wir uns nicht alle mal ein bisschen zurücknehmen? Schauen was wir haben, was wir geben können? Sollten wir uns nicht in Gelassenheit üben und versuchen mit klarem Kopf und Herz die Dinge anzugehen? Sollten wir nicht versuchen unsere Werte hochzuhalten: Nächstenliebe, Freiheit, Gerechtigkeit, Toleranz, um nur einige zu nennen? Im Alltag, bei den Nachbarn, den Freunden, in der Familie, bei Fremden?

Vielleicht kann das Grössere von Innen her gesunden? Wir stehen an einer Schwelle zu einem neuen Zeitalter. Die intelligenten Gegenstände, die in naher Zukunft in unseren Alltag dringen, die künstliche Intelligenz und alles was damit zusammenhängt, werden in den nächsten Jahren die Welt noch mehr umkrempeln und vermutlich noch schneller, als es bis jetzt geschah. Könnte in diesem Wandel nicht die Menschlichkeit als Konstante stehen? Die Werte, die unsere Gemeinschaften zusammenhalten und vielleicht endlich zu einem Weltbewusstsein zusammenwachsen? Wir sind Menschheit! Wir sind im Wandel, aber wir sind und bleiben Menschheit. Eine Menschheit mit Werten, die jedem Einzelnen Chancengleichheit und Gerechtigkeit einräumen sollen! Eine bunte Menschheit mit vielen Facetten, Kulturen, Hautfarben, Religionen und einem gemeinsamen Fundament.

Diese Werte sind grösser als der Einzelne. Man kann es spüren, erahnen. Sie sind derzeit oft still, zu still in meinen Ohren. Und selbst wenn wir an ihnen immer wieder versagen, ihnen nicht gerecht werden können, so lohnt es sich, sie vor Augen zu haben und ihre Verwirklichung anzustreben. Das Kleine kann auf das Grössere Einfluss haben.


Ich fürchte, so ganz kam ich nicht an der Weltlage vorbei und bitte um Entschuldigung :)

Ich wünsche allen besinnliche Feiertage und einen guten Rutsch ins neue Jahr. Möge es uns mit Gelassenheit, Besonnenheit und Frieden beschenken.

Andreas Kardin

Donnerstag, 18. Februar 2016

Sliverstipe - XAMPP Windows - Lowercase Database Tables Cause Troubles With Upload To Production Sites On Linux

Using XAMPP on Windows is a very comfortable thing to develop and test web sites locally. My favourite CMS system is Silverstripe which has an awesome framework to map class-models to database tables automatically.

However if you install XAMPPP the default behaviour of MySQL is to create all tables with lower-case names. That causes troubles if you want to export the DB to a production site running under Linux. There all files and also MySQL tables are case sensitive. In the case of Silverstripe it will not find any of its own tables. Fortunately I have found a quite elegant way to solve this problem.

1) Make MySQL table names case sensitive under Windows

Stop your MySQL-server. Open your my.ini and look for the section [mysqld]. Add a line to the end of that section: lower_case_table_names = 2.

It should look like this...
[mysqld]
...

lower_case_table_names = 2
This option changes the behaviour in that way that tables are created with upper and lower case names (file names). But MySQL server will still treat names in SQL statements as cases-in-sensitive. That means the table names test, Test and TEST would address the same table and there can only be one table with the name Test or test or TEST etc. in a DB.

2) How to correct the table names of an existing Silverstripe DB?

There must be a more elegant way than correcting the names by hand. First...

...MAKE A BACKUP OF EVERYTHING (Database and Silverstripe-Installation) !!!

Here are the steps...
  1. If you have upgraded your Silverstripe CMS from older versions. Please read Chapter 3 of this post.
  2. Export the DATA only of the existing DB with Phpmyadmin.
  3. Delete the file _config.php in your mysite directory of the Silverstripe installation.
  4. Copy the install.php file back into your Silverstripe folder. You can get it from a clean Silverstripe install (of the same Silverstripe version!).
  5. Delete all tables in your Silverstripe Database.
  6. Open <your site URL>/install.php and make a clean install. After that you will have all tables with upper and lower-case names.
  7. Empty all tables with Phpmyadmin.
  8. Import the exported data from step 2 back into your DB.
  9. Restore your old _config.php in your mysite folder and delete the install.php file.
After this procedure your database should be restored with mixed case names and your old data. Your old site should run perfectly.

3) Clean-up a Silverstripe DB if Silverstripe was upgraded one or more times from an older version

Silverstripe has a stunning upgrade feature. I have upgraded my site through several versions. Very cool how the database structure will be updated by the framework. But it has a small draw back: Silverstripe does not delete obsolete tables and columns and that will cause problems with the procedure of restoring the data of an old DB into a new one which was created from a clean install. The structures do not match.

Surf to Silverstripe Artefactcleaner. This extension has done the job perfectly in my case. Install it and clean-up your DB before doing the procedure of Chapter 2. In my case it has removed dozens of obsolete tables and a lot of obsolete columns. After that the structure was identical to the one of a new installation (of the same Silverstripe version of course).

I wish you good luck with your Silverstripe DB and remember: a backup is your friend ;)

Donnerstag, 11. Februar 2016

Fuji X-T1 Autosave übers WLAN und Autoimport in Lightroom

Ich bin ein Amateurphotograph und mache unter normalen Umständen keine bezahlten Aufträge. Doch wenn man sich mit Herzblut einer Sache verschreibt und Zeit investiert, so wachsen mit der Zeit die Herausforderungen. In meinem Fall: Ich hatte plötzlich einen Photoauftrag für Produkte-Photographie.

Wie auch immer: Nachdem Licht-, Hintergrund- und Kamerasetup und einigen Testshoots mit Transfer zum PC via SD-Karte kam bald das Bedürfnis nach einer direkteren Lösung, um die Bilder auf den PC bzw. ins Lightroom zu bringen, auf. Zum einen gibt es da ein Plugin welches eine Software von Fuji voraussetzt, welche laut Netz nur in Japan erhältlich ist und eines zum Kaufen. Letzteres ist nicht sonderlich teuer, aber irgendwie hatte ich auch nicht so ein gutes Gefühl dabei.


Die neue Funktion Autosave der X-T1 soll laut Fujifilm in der Lage sein, Bilder direkt auf einen PC zu übertragen. Dazu muss sich die Kamera in dasselbe WLAN einklinken, wie der PC und auf dem PC muss Fujis Autosave-Software installiert werden. Ich mag die Oberfläche der Software nicht besonders und die Einrichtung macht auch nicht wirklich Spass. Aber mit etwas probieren, bringt man das zum Laufen.

Fujifilm Software Download Page (Autosave für PC und MAC)

Achtung!

Auf der Kameraseite (X-T1) muss man sich im Wiedergabemenu befinden (also Playtaste drücken, so dass die aufgenommenen Bilder auf der Kamera gesichtet werden können und dann ins Menu), um die Bildübertragung zu starten.

Im normalen Menu befindet sich nur der Eintrag für das Setup der Autosave-Funktion.

Hat man die Bildübertragung mal gestartet, so legt Fuji für jeden Import einen eigenen Ordner nach Datum an. Das ist ärgerlich, da so die Auto-Import-Funktion von Lightroom nicht greift. Um das zu umgehen, habe ich ein kleines Powershell-Script geschrieben, welches die Bilder vom PC-Autosave-Ordner in einen Lightroom-Import-Ordner kopiert. Diesen wiederum kann man im Lightroom für den automatischen Import konfigurieren. Damit ist nun die direkte Brücke von der X-T1 direkt ins Lightroom gebaut.

Power Shell Script für Fujifilm PC Autosave Lightroom Autoinport

Script downloaden und oben im Script die beiden Ordner anpassen. Dann Script starten, Lightroom starten (dort Autoimport für den entsprechenden Ordner konfigurieren) und auf der Kamera die Bilder via Autosave übertragen. Dann sollte automatisch Bild für Bild in Lightroom erscheinen. Ist man fertig, einfach das Powershell-Fenster schliessen. Die Powershell ist übrigens seit Vista dabei und damit sollte das Script auf allen aktuellen Windows-Versionen laufen. Ggf. muss man noch an den Berechtigungen schrauben.

Ein derzeitiger Nachteil des Scripts ist, dass man von Zeit zu Zeit die leeren Ordner nach Datum, welche vom Autosave-Programm erzeugt werden, löschen sollte. Vielleicht baue ich das in eine spätere Version des Scripts noch ein.

Was ich mir von Fujifilm wünschen würde:
  • Eine Option, um den Programm beizubringen, alle Bilder in ein und denselben Ordner zu kopieren. Dann wäre mein Script nicht mehr nötig.
  • Wenn auf der X-T1 das gespeicherte Profil für Autosave gewählt wurde, sollte sich die Kamera mit dem WLAN und anschliessend mit den PC verbinden (ist ja im Profil gespeichert) und gleich mit der übertragung loslegen. Jetzt muss man nach dem Connect zum PC nochmals die Aktion quittieren, was sehr lästig ist.
  • Mehr Speed beim Kopieren ;)
  • Background Autosave: D.h. man sollte Bilder machen können und die Kamera sollte im Hintergrund gleich die Bilder auf den PC übertragen. Das wird dann vielleicht etwas für die X-T3 ;)
Viel Spass und ich freue mich über Kommentare, ob das so bei anderen auch zum Laufen gebracht werden kann.