Steam für Linux ist fertig

steam_linux

Gestern Abend haben Valve und Ubuntu das fertige Steam für Linux vorgestellt. Ich glaube das ist der größte Schritt für Linux seit … ich würde fast sagen der größte Schritt überhaupt. In den letzten Jahren haben viele Faktoren dazu beigetragen Linux dem Massenpublikum näher zu bringen, dazu gehören allen voran die Entwicklung von Ubuntu, das es aller Kontroversen zum Trotz geschafft hat Linux für die breite Masse interessant zu machen. Steam für Linux ist fertig weiterlesen

Foto Manager für Windows

Seit ich ernsthaft digital fotografiere wird meine Bildbibliothek immer größer, und um der immer größer werdenden Bilderflut Herr zu werden habe ich mich jetzt doch mal dazu durch gerungen mir diverse Programme zum Verwalten von Fotos anzuschauen. Bisher habe ich die Bilder einfach in Ordnern liegen gehabt, strukturiert nach Jahr/Monat/Jahr-Monat-Tag-Ereignis, was eigentlich schon recht übersichtlich ist.

photo_import_icons

Dabei geht es mir gar nicht groß um das (Nach-)Bearbeiten von Fotos, das mache ich so gut wie nicht. Ich möchte einen komfortablen Import von der Kamera oder Speicherkarte, die Bibliothek gut durchsuchen und durchstöbern können und ausgewählte Bilder möglichst einfach bei Flickr und Facebook hochladen können. Dabei fallen erstmal die üblichen Verdächtigen ein: Foto Manager für Windows weiterlesen

Bye bye, Rockmelt

Ziemlich genau zwei Jahre lang habe ich jetzt als primären Browser Rockmelt genutzt, und es tut mir schon ein bisschen weh wieder zu Chrome zurück zu wechseln. Leider lassen mir die Entwickler keine Wahl: Die größte Stärke von Rockmelt, der darunter liegende Chrome und die damit einhergehende Kompatibilität zu Erweiterungen leidet seit geraumer Zeit darunter dass die PC-Version nicht mehr gepflegt wird, immer mehr Erweiterungen verweigern den Dienst. Rockmelt findet es in der Zwischenzeit wichtiger eine Version für das iPad oder ein neues Logo zu entwickeln. Nichts gegen etwas neues, aber darunter sollte das ursprüngliche Produkt nicht leiden.

Mittlerweile macht es keinen Spaß mehr Rockmelt zu benutzen, einige Erweiterungen sind mir wichtiger als die tolle Integration von Social Features die von Anfang an meine Begeisterung für Rockmelt ausgelöst hat. Ein bisschen hat es vielleicht auch damit zu tun dass ich nicht mehr so viel Wert auf Benachrichtigungen aller Updates lege.

Ich hoffe dass die Entwickler sich irgendwann wieder besinnen und zumindest mal die aktuelle Chrome-Version in Rockmelt integrieren. Auf neue Features selbst bin ich gar nicht mal so scharf. Aber bis dahin … bye bye Rockmelt, hello Chrome.

Deutsches Datum in MySQL-Format konvertieren

Mit einem SQL-Einzeiler lassen sich Daten im deutschen Format in das MySQL DateTime-Format umschreiben.

UPDATE `table` SET `DateSQL`=STR_TO_DATE(`DateDeutsch`, "%d.%m.%Y");

Der zweite Parameter von STR_TO_DATE gibt dabei an in welchem Format das Datum im Feld DateDeutsch steht. %d steht für den Tag, %m für den Monat und %Y für das (4-stellige) Jahr.

Email aus

In den letzten Monaten bin ich ich immer wieder über Blogbeiträge und Artikel von Leuten gestoßen, die testhalber alle Email-Benachrichtigungen abschalten und nur noch ab und an nach neuen Emails schauen. Alle berichten übereinstimmend, dass sie mit dem Ergebnis sehr zufrieden sind. Am Anfang ist es etwas gewöhnungsbedürftig, wenn man es gewohnt ist dass jede ankommende Email sofort an PC, Laptop, Handy, Tablet eine Benachrichtigung auslöst, aber nach kurzer Zeit freut man sich darüber dass man nicht mehr ständig unterbrochen wird, sich besser auf die aktuelle Tätigkeit konzentrieren kann und mehr von allem anderen mitbekommt.

Am 06.09.2012 habe ich beschlossen das auch mal auszuprobieren. Auf dem Handy habe ich Benachrichtigungston und Vibration abgeschaltet, so dass nur noch das Email-Symbol in der Benachrichtigungsleiste auftaucht. So sehe ich noch dass etwas neues da ist wenn ich ohnehin auf das Handy schaue. Am PC habe ich im Outlook/Postbox den Benachrichtigungston, das Fenster sowie das Icon in der Taskleiste abgeschaltet, so dass ich auch hier neue Emails erst sehe wenn ich das Mailprogramm öffne.

Zwei Monate später ist es Zeit für ein Fazit. Kurz gesagt: Es funktioniert. Bereits nach recht kurzer Zeit (vielleicht zwei Wochen oder so) habe ich nichts mehr vermisst, ich hole das Handy deutlich seltener aus der Tasche, konzentriere mich mehr darauf was ich gerade tue und habe dabei nicht das Gefühl ich würde irgend etwas verpassen. Nachdem ich mich daran gewöhnt hatte bin ich noch weiter gegangen und habe Benachrichtigungen von Facebook, Twitter etc. ebenfalls abgeschaltet, so dass ich nur noch Benachrichtigungen bekommen wenn mich jemand direkt anschreibt.

Ebenfalls vorteilhaft dabei ist übrigens (auch das hatte ich schon mal irgendwo gelesen) dass ich mir bereits vor einiger Zeit wieder angewöhnt hatte eine Armbanduhr zu tragen. Jahrelang hatte ich darauf verzichtet nachdem ich mich daran gewöhnt hatte dass ich die Uhrzeit ja auch auf meinem Pager und später auf meinem Handy ablesen konnte. Spätestens beim Smartphone ist der kurze Blick nach der Uhrzeit jedoch meistens mit einem “Oh, da gibt es ja eine Benachrichtigung” verbunden, was dann wieder eine größere Ablenkung schafft. Mittlerweile möchte ich die Armbanduhr schon aus diesem Grund nicht mehr missen, ich bin mal gespannt wie sich das entwickelt wenn meine bestellte Pebble Smartwatch endlich ankommt, hier werde ich wohl genau schauen müssen welche Benachrichtigungen ich mir auf der Uhr anzeigen lasse und welche nicht.

Active Directory LDAP-Zugriffe mit mehreren Domain Controllern

Auch in einer Windows-Domänen Umgebung kommt man früher oder später darauf, dass es eine Anwendung gibt die nicht auf Windows und IIS, sondern auf einem Apache läuft, vielleicht mit PHP oder einer anderen Skriptsprache. Sowohl PHP als auch der Apache direkt bieten über LDAP die Möglichkeit einen Domain Controller abzufragen, Beispielsweise zur Authentifizierung.

Spätestens wenn ausgerechnet der Domain-Controller ausgefallen (oder wegen Wartungsarbeiten nicht erreichbar) ist, den die PHP-Scripte zur Authentifizierung benutzen, stellt sich die Frage wie man es einrichtet dass irgend ein verfügbarer Domain Controller genutzt wird. Glücklicherweise sind sowohl PHP als auch das Apache-Modul für diesen Fall vorbereitet, und nutzen sogar das gleiche Prinzip dafür. Man muss lediglich an der Stelle wo der Servername steht mehrere Adressen durch Leerzeichen getrennt eintragen.

PHP-Aufruf:

$conn = ldap_connect("dc01.domain.local dc02.domain.local");
ldap_bind($conn, $username, $password);

Eintrag in der Apache-Konfiguration:

AuthLDAPUrl "ldap://dc01.domain.local:3268 dc02.domain.local:3268/dc=domain,dc=local?sAMAccountName?sub?(objectClass=*)" STARTTLS

Hier muss man darauf achten dass der LDAP-String in Anführungszeichen steht (solange kein Leerzeichen vorkommt funktioniert es auch ohne).

Auf diese Art werden alle angegebenen Server durchprobiert bis einer gefunden wird der erreichbar ist.

Quellen: mod_auth_ldap Dokumentation, Kommentar in der PHP-Dokumentation zu ldap_connect()

Schwarz-Weißes Bild beim Anschluss vom Raspberry Pi an einen analogen Fernseher

Der Raspberry Pi hat bekanntlich neben dem HDMI-Ausgang noch einen Composite Video-Ausgang mit dem man ihn an einen analogen Fernseher anschließen kann. Dafür benötigt man lediglich ein Cinch-Kabel, die für Video gedachten Kabel haben in der Regel gelbe Stecker.

Schließt man den Pi so an den Fernseher an dann kann es passieren dass auf dem Fernseher nur ein leicht verzerrtes Schwarz-Weiß Bild ankommt. Schwarz-Weißes Bild beim Anschluss vom Raspberry Pi an einen analogen Fernseher weiterlesen

Maximale Feldlänge im Active Directory

Bereits Freitag beschäftigte mich das Problem, dass ich bei einigen Usern keine neuen Einträge in das Notizfeld im Active Directory schreiben konnte (das Feld wird von uns als Protokoll für den Benutzer betreffenden Aktionen genutzt). Anfangs ging es recht problemlos mit diesen Befehlen:

$user = Get-QADUser -Identity $uid
$note += "`r`n" + $user.Info
Set-QADUser $user -Notes $note

Hier wird einfach das Info-Feld ausgelesen, die neue Zeile davor gesetzt und dann beim User wieder gesetzt.

Neuerdings trat dabei immer wieder der recht wenig aussagekräftigen Fehler A constraint violation occurred auf. Ein Umschreiben auf die entsprechenden Befehle von Microsoft gab dann eine etwas brauchbarere Meldung: A value for the attribute was not in the acceptable range of values.

$user = Get-ADUser -Identity $uid
$note += "`r`n" + $user.Info
$user |Set-ADUser -Replace @{Info=$note}

Diese Information brachte mich auf die richtige Spur: Attribute im AD haben (nicht wirklich überraschend) eine Maximallänge, beim Info-Feld sind es anscheinend 1024 Zeichen.

Als Workaround habe ich das Skript so umgeschrieben, dass direkt im Notizfeld nur die letzten 10 Meldungen gespeichert werden. Die Meldungen wurden ohnehin schon zusätzlich in einer Datenbank abgelegt, so dass hier nichts verloren geht. Hier das vollständige Skript:

param( [string]$uid, [string]$note )
# Fehler abfangen und als sauberen Text ausgeben
trap [Exception] { 
"ERROR: " + $_.Exception.Message
exit
}
# Einschränken was vom AD-Modul geladen wird
$env:ADPS_LoadDefaultDrive = 0
Import-Module ActiveDirectory -Cmdlet Get-ADUser,Set-ADUser
# User-Objekt holen
$user = Get-ADUser -Identity $uid -Properties Info
# Neue Notiz am Anfang einfügen
$note += "`r`n" + $user.Info
# notiz in zeilen auftrennen, erste 10 nehmen, wieder zu string zusammenfügen
$note = (($note -split '[\r\n]+') | Select-Object -First 10) -join [environment]::NewLine
# Neue Notizen wieder ins User-Objekt schreiben
$user |Set-ADUser -Replace @{Info=$note}
"SUCCESS: Die Notiz wurde hinzugefuegt"