Sonntag, 5. März 2017
[*]

Wie man die Fastenzeit nicht beginnt …

, 17:53

… ist mit einem Firmenevent.

Ausgerechnet am Aschermittwoch waren wir mit der Abteilung in Klausur. Und nach Stundenlangen Vorträgen war das Abendprogramm der Veranstaltung ein Rittermahl auf Burg Steinsberg. Da gab es echt leckere Sachen in etwas rustikaler „ritterlicher“ Aufmachung; viele Gerichte kamen z.B. auf Platten und in Schüsseln zum selbst aufegeben, und auch die Getränke wurden in Steingutkrügen serviert.

Das Mahl wurde die ganze Zeit begleitet von einem Gaukler (hat ein wenig jongliert und Zaubertricks vorgeführt) und einem Zeremonienmeister, der auch auf sehr vielen verschiedenen mittelalterlichen Instrumenten gespielt und dazu ziemlich gut gesungen hat. Ich zeig hier mal die Speisenfolge:

Brot mit Quark vun vil gut Wyrtzkreytern, hier zu sehen zusammen mit der sprachlich an-ge-mittelalterlichten Speisekarte.

Speisekarte und Brot

Ziegenfrischkäse im Blätterteig und knackige Salate aus dem Burggarten

Ziegendrischkäse und Salat

Sud vun Lauch serviert im Brottopf

Lauchsuppe im Brottopf

Ganze Enten in der Schenke tranchiert mit Gemüse und Semmelknödel

Ente, Gemüse und Semmelknödel

Strudel aus Epfeln mit eyner Salse vun fremdlendisch Vanille

Apfelstrudel

Und von der Käsevariation konnte ich dann schon nichts mehr essen.

So eine Veranstaltung kann ich weiterempfehlen, aber sie hat zu einem kurzen Ausschlag nach oben im 321 Blog! geführt.

Samstag, 17. Oktober 2015
[*]

Die zwei Wochen mit dem Jobwechsel

, 23:41

Huch! Schon ist die Woche nach der zweiten Woche fast wieder vorbei, es wird also wieder allerhöchste Zeit für den Zweiwochenrückblick. Das Blog hier kann sich jedenfalls nicht beschweren, denn in der Zwischenzeit sind doch einige andere Artikel erschienen. Aber zurück zu Woche 40 und 41, denn diesmal habe ich echt was zu berichten.

Woche 40

Ich habe mich abwerben lassen. Der eine oder die andere hat es vielleicht schon auf Xing gelesen oder sonstwie mitbekommen: statt ein „Consultant“ bei einem Systemhaus zu sein, der von seinem Arbeitgeber mal hierhin und mal dorthin geschickt werden könnte, bin ich jetzt fest bei einem großen Automobilkonzern.

Das ist auch der Hauptgrund für den Wechsel, denn obwohl ich in letzter Zeit mit meinen Aufträgen immer Glück hatte, war ich auch schonmal plötzlich ein Dreivierteljahr in Konstanz ohne vorher gefragt zu werden. So mit Familie mit zwei Kindern habe ich keine Lust mehr drauf, für längere Zeit die Wochen irgendwo im Hotel zu verbringen.

Außerdem: eigentlich macht mir das, was ich gerade mache, Spaß, und das wollte ich gern weitermachen. Als der bisherige Kunde und jetzt neue Arbeitgeber dann einen Abwerbeversuch startete, war ich nicht abgeneigt. Dabei bin ich eigentlich eine sehr treue Seele. In der vorherigen Anstellung war ich (wenn auch mit wechselnden Namen der Firma) seit mehr als 11 Jahren. Eigentlich ziemlich genau so lang wie dieses Blog existiert.

Um den alten Arbeitgeber mit leerem Überstundenkonto zu verlassen, hatte ich am Anfang der Woche (so wie in der Woche davor) noch Zwangsurlaub, und dann musste ich nur am Mittwoch noch einmal ins Büro und alle Sachen abgeben. „Sachen“ beinhaltete auch das Auto, denn das war ja ein Dienstwagen. Deshalb bin ich am Dienstag noch einmal nach Grafing gefahren und habe ein paar sperrige Gegenstände (Kinderfahrrad, Tonbandgerät) nach Stuttgart geholt.

Am Donnerstag war dann der erste Arbeitstag mit neuem Arbeitgeber. Da ich in genau dem Team aber schon seit mehr als drei Jahren ständig arbeite, fühlte sich das erstmal nicht erheblich anders an als aus dem Urlaub zurückzukommen.

Am Sonntag gab es dann eine weitere Jobübergabe: da ja auch Kind.zwei inzwischen nicht mehr in den Kindergarten geht, haben wir zum letzten mal bei der Organisation der zweimal jährlich stattfindenden Kleiderbasars geholfen. Wir mussten also die dringend verbleibenden Mitgliedern des Elternbeirats die Bedienung der Großküche (insbesondere Kaffee- und Spülmaschine) erklären, damit die damit in Zukunft alleine klarkommen.

Kaffeemaschine Spülmaschine

Woche 41

Die folgende Arbeitswoche war ich dann doch damit beschäftigt, alle zur täglichen Arbeit notwendigen Rechte (z.B. durch Türen gehen, auf Ticketsystem, Code-Repository, … zugreifen) Stück für Stück wieder zusammenzusammeln. Ein Teil war über den Wechsel von Arbeitnehmerüberlassung in Festanstellung hinweg erhalten geblieben, einen anderen Teil hatte ich verloren — und das ohne dass ich hinter der Aufteilung in diese beiden Kategorien Plan oder System erkennen könnte.

Am Wochenende stießen wir dann beim Einkaufen überraschend auf Bürgerbeteiligung: der nahegelegene Bismarckplatz soll umgestaltet werden, und wir stolperten eher zufällig in einen öffentlichen Planungsworkshop. Das war dann echt interessant, und ich bin ganz begeistert davon, wie solche Vorhaben hier angegangen werden.

Bürgerbeteiligung in Stuttgart West

Wie viel von den Bürgerwünschen dann am Schluss tatsächlich umgesetzt werden, das muss natürlich erst abgewartet werden.

Mittwoch, 14. Mai 2014
[*]

Heute schon gestempelt?

, 16:21

Zum letzten Monatswechsel gab es im Büro eine Änderung in der Zeiterfassung für interne Mitarbeiter. Seitdem hängen dort überall Erinnerungszettel mit dem Text „Heute schon gestempelt?“:

Heute schon gestempelt?

Daneben ist die „Stempeluhr“ abgebildet, die auch in der Nähe jeder Eingangstür hängt.

Das Gerät enthält Leser für Magnetstreifen und RFID, eine Folientastatur, eine Matrixanzeige und wahrscheinlich sogar einen kleinen Rechner aber ganz sicher keinen Stempel.

So ist das eben mit den Metaphern: sie bleiben länger an den Funktionen haften als die Gegenstände existieren (vgl. Diskette für Speichern)

Freitag, 10. Januar 2014
[*]
[*]
Donnerstag, 28. März 2013
[*]
[*]
Donnerstag, 28. Juni 2012
[*]
[*]
Dienstag, 4. Oktober 2011
[*]
[*]
Mittwoch, 3. August 2011
[*]
[*]
Dienstag, 5. Juli 2011
[*]

higher-order functions in Java

List<Integer> input = Arrays.asList(new Integer[]{1, 2, 3, 4, 5});

Integer output = Functionals.foldr(new Function<Integer, Integer>() {

@Override
public Integer call(final Integer t1, final Integer t2) {
return t1 + t2;
}
}, 0, input);

System.out.println(String.format("Sum: %s", output));

(adrianwalker.org)
aus Delicious/steinhobelgruen

Tags , , ,   Kommentare  Kommentare deaktiviert für higher-order functions in Java
Montag, 7. März 2011
[*]
[*]
Dienstag, 8. Februar 2011
[*]

Linux-Server im Windowsnetz (Teil 1,5: OpenVPN)

, 15:41

Die in Teil 1 schon erwähnte Sicherheitsrichtlinie schreibt auch vor, dass VPN-Zugänge logisch nicht an Maschinen sondern nur an Personen gebunden sein dürfen. Bisher hatten wir OpenVPN mit X.509-Zertifikaten zur Zugangsbeschränkung benutzt. Die Zertifikate lassen sich zwar mit einem Passwort verschlüsseln, das kann aber vom Besitzer des Zertifikats leicht geändert werden. Eine echte Zweifaktorauthentifizierung geht anders.

Da trifft es sich gut, dass OpenVPN auch nach Benutzername und Passwort fragen kann. Die können direkt hinterlegt sein, mit einem entsprechenden Plugin kann man aber PAM mitbenutzen:

plugin /usr/lib/openvpn/openvpn-auth-pam.so login

Auf client-Seite muss die bestehende Konfigurationsdatei durch eine Zeile ergänzt werden, damit der Benutzer nach dem übermittelnden Passwort gefragt wird:

auth-user-pass

PAM hatten wir ja in Teil 1 schon an Active Directory angebunden, was wir hier jetzt problemlos mitbenutzen können. Fertig.

Einschränkung: da der OpenVPN-Endpunkt oft ein Rechner ist, auf dem sich die so „entstandenen“ Benutzer gar nicht interaktiv anmelden sollen, empfiehlt sich die Einrichtung einer restricted Shell und die entsprechende Anpassung der smb.conf:

template shell = /bin/rbash
template homedir = /home/restricted

(und wenn man schon dabei ist, dann sollte man dort auch alle Services entfernen).

Donnerstag, 3. Februar 2011
[*]
[*]
Dienstag, 1. Februar 2011
[*]

Die Datenrettung

, 23:24

Es war eine Verkettung unglücklicher Umstände, eine Redundante Auslegung der Single Points of Failure.

Im großen Fileserver ging eine Platte kaputt. Plötzliche Ein-/Ausgabefehler auf der Systempartition. Das kommt bei der Gesamtzahl von Platten in unserem Serverraum öfter mal vor und stellt normalerweise kein Problem dar; schließlich hat der Rechner einen RAID-Controller. Der kriegt eine neu Platte, und dann soll er die redundanten Daten neu schreiben … dumm nur, dass es sich diesmal ausgerechnet um ein RAID0 handelte.

Wer richtet denn sowas ein?! Tja, keine Ahnung mehr, die Maschine lief so schon einige Jahre, und wer liest sich schon die ganzen BIOS-Meldungen beim Reboot genau durch (macht man ja bei Linux sowieso nicht so oft). Kein Problem, wir haben ja Backups. Also kauften wir zwei neue, größere Platten, richteten sie diesmal als RAID1 ein :-P, und installierten das Betriebssystem neu. Dummerweise ist der ausgefallene Server gerade der Backupserver.

Hätte ich das Backup mal ordentlich eingerichtet, dann hätte ich an einem anderem Ort eine Kopie der Konfiguration des Backupsystems gehabt und eine Bootstrap-Datei, mit der der Dateikatalog ohne den Dateikatalog wiederhergestellt werden kann. Das wollte ich mal machen, wenn ich dazu mal Zeit hätte.

So musste ich den Inhalt des letzten Bands mit dem Notfallwerkzeug bextract (autsch!) auslesen und konnte das Backupsystem mit etwas Handarbeit wieder zum laufen bringen … um dann festzustellen, dass im Backup /var (der Webserver! die Subversion-Repositories!!) und auch einige der Homeverzeichnisse in /export/home fehlen.

Hätte ich das Backup mal ordentlich eingerichtet, dann hätte ich auch die Konfiguration verifiziert (statt nur mal sporadisch die eine oder andere Datei wieder auferstehen zu lassen). Das wollte ich mal machen, wenn ich dazu mal Zeit hätte.

Jetzt gab es keine Alternative mehr; die Platten mussten zum Datenretter. Gut, dass Kroll Ontrack von unserem Büro aus direkt um die Ecke ist. Die haben mir am Telefon schon sehr freundlich und kompetent den Ablauf erklärt, Formulare mit Fragen geschickt und einen ungefähren Preis genannt. Am nächsten (Arbeits-)Tag waren die Platten dort, und nach etwas mehr als einer weiteren Woche hatten wir fast alle Daten wieder zurück. In der Zwischenzeit wurden wir ständig über den Fortschritt der Rettung informiert. Tolle Sache, nicht ganz billig und besser man braucht’s nie.

(Ein paar zusätzliche kleine Haken hat die Rettung übrigens noch: die externe Platte, auf der die Daten wiederhergestellt wurden, ist mit NTFS formatiert. Die UNIX-Rechtestruktur ist damit weg. Ein Teil der Umlaute in Dateinamen ist auch weg. Trotzdem kann ich eine uneingeschränkte Empfehlung aussprechen, denn ohne manche dieser Daten wären wir echt aufgeschmissen gewesen…)

Montag, 31. Januar 2011
[*]
[*]
Mittwoch, 24. November 2010
[*]

Studie zur mobilen Datennutzung

, 23:21

Die Forschungsgruppe wi-mobile der Universität Augsburg beschäftigt sich mit der Analyse und Bewertung von Technologien und Konzepten rund um Mobile Business und Mobile Commerce — und ist zufällig auch der Arbeitgeber meines Bruders. Der bittet mich jetzt, Euch mobile Datennutzer (seid Ihr doch alle!) zur Teilnahme an einer Studie einzuladen:

Im Rahmen der internationalen Studie „Worldwide Mobile Data Services Study (WMDSS)“ untersucht die Forschungsgruppe wi-mobile der Universität Augsburg bereits im dritten Jahr die Handynutzung in Deutschland. Schwerpunkte der wissenschaftlichen Studie sind die Identifikation der Gründe für die Nutzung mobiler Datendienste sowie für die Wahl bzw. den Wechsel des Mobilfunkanbieters. Die Forschungsgruppe bittet Sie dabei um Ihre Teilnahme.

Zur Studie.

Also, helft mal mit — gibt auch was zu gewinnen.

Montag, 15. November 2010
[*]

Einrichtung eines SVN-Spiegelservers

, 12:01

Der Subversion-Server des Kunden ist der langsamste seiner Art. Das sorgt für Frust; nicht nur blickt man in Eclipse oft minutenlang auf „Pending…“, wenn man Teilbäume aufklappen möchte, es schlagen auch Hudson-Builds fehl, weil svn update nicht durchgelaufen ist.

Für Hudson könnte man sich behelfen, indem man mit svnsync eine lokale (readonly-)Kopie des Repositories einrichtete, aber in der Entwicklungsumgebung hilft das nicht weiter. Seit Subversion 1.5 ist es zum Glück möglich, das dav_svn-Modul im Apache so zu konfigurieren, dass schreibende Zugriffe direkt auf ein zentrales Repository (den Master) umgeleitet werden während lesende Operationen auf einer lokalen Kopie ausgeführt werden.

Die im Netz zu diesem Thema zu findenden Anleitungen gehen größtenteils davon aus, dass man Master- und Slaveserver unter seiner eigenen Kontrolle hat. Wir können aber am Master nichts konfigurieren und werden deshalb eine etwas sparsamere Variante einrichten müssen.

Voraussetzungen:

  • Apache (min. 2.2)
  • svn (min. 1.5)
  • Apache mod_dav_svn und mod_proxy (sowie Module, von denen die jeweils abhängen)
  • Apache mod_ssl (wenn das Master-Repository per https erreichbar ist)

Schritt 0:

Benutzer anlegen (nennen wir ihn mal svnsync), mit dessen Account später die Synchronisation laufen wird. Weil der sich den Zugriff auf das Repository mit dem Webserver teilen wird, habe ich ihn in einer gemeinsamen Gruppe angelegt.

Schritt 1:

Repository anlegen (als root):

svnadmin create /var/www/svn/projekt

Die einzelnen Benutzer müssen wir nicht anlegen, weil das Benutzermanagement und die Commitrechte weiterhin vom Masterserver verwaltet werden.

Schritt 2:

Schreibenden Zugriff aufs Repository für alle Benutzer außer svnsync verbieten. Das geht mit einem „pre-revprop-change“-hook:

#!/bin/sh
USER="$3"

if [ "$USER" != "svnsync" ]; then
    echo >&2 "Only the svnsync user can change revprops"
    exit 1
fi

exit 0

Schritt 3:

Synchronisation starten:

Als Benutzer svnsync muss man die Synchronisationsverbindung erst erstellen (init) und dann die erste Synchronisation durchführen (sync). Je nachdem, wieviele Revisionen es im Master-Repository schon gibt kann das seine Zeit dauern.

 svnsync init file:///var/www/svn/projekt https://subversion.kunde.de/svn/projekt
 svnsync sync file:///var/www/svn/projekt

Passwörter für das Master-Repository müssen in dieser Phase eventuell eingegeben werden und werden dann im Home-Verzeichnis des Synchronisationsbenutzers im .svn-Verzeichnis gespeichert — das ist also mit der notwendigen Vorsicht/Sicherheit zu behandeln.Ständige Synchronisation einrichten:

Da uns, wie gesagt, das Master-Repository nicht gehört, können wir es nicht dazu bringen, uns von Änderungen zu unterrichten. Den sync-Befehl lassen wir deshalb von cron einmal pro Minute ausführen:

* * * * * svnsync sync file:///var/www/svn/projekt > /dev/null 2>&1

Schritt 4:

Zugriff über Apache einrichten:

In schmerzhaften Versuchen musste ich feststellen, dass der Zugriff über den Spiegel nur dann zuverlässig funktioniert, wenn sich die beiden Server möglichst ähnlich sind. Mit verschiedenen Repository-URLs (also wenn der „Verzeichnisname“ des Spiegels sich vom Original unterschied) hatte ich z.T. seltsame Fehlermeldungen („405 Unsupported Operation“,…). Auch der Wechsel von https (auf dem Kundenserver) auf http sorgt für unerklärliches Verhalten bei Verschiebe- und Umbenennoperationen. Wenn das Master-Repository über https erreichbar ist, benötigt man aber ohnehin mod_ssl (und muss den Parameter „SSLProxyEngine“ auf „on“ stellen).

Module laden (dies ist der Mindestumfang, und die Syntax unterscheidet sich je nach Linux/Apache-Distribution):

LoadModule dav_svn_module mod_dav_svn.so
LoadModule proxy_module mod_proxy.so
LoadModule proxy_http_module mod_proxy_http.so
LoadModule ssl_module mod_ssl.so

Konfiguration (Schnipsel an für diesen Apache geeignete Stelle einfügen):

SSLProxyEngine on

<Location /svn/projekt>
    DAV svn
    SVNPath /var/www/svn/projekt
    SVNMasterURI https://subversion.kunde.de/svn/projekt
</Location>

Jetzt kann man mit dem schnellen lokalen Server statt mit der weit entfernten lahmen Ente arbeiten (aber Achtung: nur per http(s) zugreifen, sonst entsteht Chaos!).

Freitag, 12. November 2010
[*]
[*]
Dienstag, 9. November 2010
[*]
[*]
Freitag, 15. Oktober 2010
[*]

Die Linux-Server im Windowsnetz (Teil 1)

, 12:16

Als wir noch nicht Microsoft-Gold-Partner waren, und uns die Windowslizenzen noch nicht nachgeworfen wurden, wurden hier ein paar Linux-Server als Fileserver aufgebaut. Mit Linux kann man (über NIS und den Automounter) sehr einfach die Benutzerverzeichnisse und -dateien über mehrere Rechner verteilen. Die Windows-Arbeitsplatzrechner hatten zu der Zeit noch keine Anbindung an eine zentrale Benutzerverwaltung sondern lokale Benutzerkonten.

Mit der Einführung von Exchange (statt Lotus Domino) wurde später eine Active Directory-Domäne eingerichtet, so dass Benutzernamen und Passwörter jetzt auf allen Windowsrechnern einheitlich funktionieren. Die Linux-Rechner blieben bisher außen vor (weil wir aber auf dem Fileserver einige Unix-Eigenheiten nutzen, weil es dort eine sehr gute vollautomatische Backupsoftware gibt, und weil außerdem inzwischen auch einige andere Dienste auf den Maschinen laufen kommt eine Umstellung auf Windows nicht ohne weiteres in Betracht).

Diese Gesamtkonstruktion sorgt dafür, dass für jeden Benutzer (mindestens) drei Passwörter existieren (AD, Unix/NIS, Samba). Wenn ein Benutzer nur eins davon ändert, dann wird er an (für ihn) unvorhersehbaren Stellen plötzlich nach einem (welchem?) Passwort gefragt. Die Lösung dafür war bisher einfach: die Benutzer änderten ihre Passwörter nicht (gibt es eigentlich Untersuchungen darüber, ob häufiger Passwortwechsel die Sicherheit eher erhöht oder verringert?). Jetzt sind wir aber seit kurzem mittelbares Tochterunternehmen einer Bank, und die hat einen Katalog an IT-Sicherheitsrichtlinien, zu dem auch eine Mindestkomplexität (8 Zeichen, große und kleine Buchstaben, Zahlen und Sonderzeichen) und eine Höchstgültigkeitsdauer (90 Tage) für Passwörter gehören.

Zeit also für eine Anbindung zwischen Linux und Active Directory:

mehr…

Dienstag, 29. Juni 2010
[*]

Chaos auf dem Schreibtisch

, 22:31

Mit Stöckchen ist es leider so, dass ich die oft so lang liegen lasse, bis ich ständig drüber stolpere. Dieses hier kam per DM vom @admartinator und liegt jetzt auch schon wieder viel zu lange im Weg.

Die Aufgabe, den Schreibtisch zu zeigen ist aber auch gemein; immer möchte ich eigentlich erst aufräumen, und immer ist dazu keine Zeit (oder es ist zumindest immer irgendwas anderes interessanter…).

Schluß damit! Ich arbyte nun einmal grundsätzlich im Chaos, da müssen wir jetzt gemeinsam durch.

(sowas ähnliches gab es hier schon einmal aufgeräumt und mit Legende — aber nicht mehr auf dem aktuellen Stand)

 1 2 3 4 5 »