Monthly Archives: February 2015

leben reisen

Leistungswandern

FußgängertunnelVergangenen Sonntag habe ich mich, noch angeschlagen von einer Bronchitis, die mich seit Dienstag plagt, wieder auf Wanderschaft begeben. Bewegung an der frischen Luft tut gut und auf meinen Wanderschuhen gilt es auch weiterhin herumzutreten.

Die Wege der Umgebung haben wir durch und sind ins Unbekannte aufgebrochen. In Hattingen waren wir ca. 1h relativ strammen Schrittes unterwegs. Meine Begleitung in Laufschuhen und ich in meinen Bergstiefeln. Der weg war völlig eben und planlos sind wir in die falsche Richtung spaziert, die dann nicht mehr in den Wald abzweigte und ich laufe am liebsten durch den Wald. Naja, nächstes mal.

Durch den fehlenden Anstieg blieb meine Ferse dann auch von merklicher Belastung verschont. Einzig, ich hab den Rest des Tages auf dem Sofa verbracht, mein bronchitisierter Körper war für solche “Höchstleistungen” noch nicht bereit.

programmieren

Geheimnisprinzip

Wer kennt es nicht, nachdem man sich in einem Thema eigentlich ganz gut auskennt und vielleicht auch schon mehr als die ersten Gehversuche hinter sich hat, geht einem bei etwas Grundlegendem ein ganzer Kronenleuchter auf. Das dann folgende Gefühl ist eine Mischung aus Freude, über die Erkenntnis und Zweifeln an der eigenen Intelligenz, weil man sowas Grundlegendes nicht schon früher Begriffen hat.

Von einem solchen Moment möchte ich an dieser Stelle berichten. Seit ca. einem Jahr, bin ich raus aus der Uni und drin im Berufsleben. Dort basteln wir an einer Platine, auf der ein Microcontroller werkelt, einem eingebetteten System, wie man so schön sagt. Da man an der Uni von den sog. Best Practices nur wenig mitbekommt, hab ich mir zwei Bücher geshoppt, von denen sich eins auf eingebettete Systeme und das andere auf reine Programmierung bezieht. In beiden, geht es im Grundsatz darum wie man Dinge macht und warum man sie so macht. Und bei der Lektüre ist mir ein Licht aufgegangen im Bezug auf das Geheimnisprinzip.

An der Uni wurde mir in der Informatikvorlesung die Programmiersprache Java serviert und in diesem Rahmen wurde uns früh begebogen, dass wir das Geheimnisprinzip zu wahren haben. Das hieß hauptsächlich, dass wir vor die Variablen der Attribute in unseren Klassen das Schlüsselwort “private” geschrieben haben. Seit jeher hat sich in meinem Hirn der Gedanke manifestiert, dass das Geheimnisprinzip hauptsächlich aus Sicherheitsgründen wichtig ist. Gleichzeitig fand ich das sonderlich, weil auch wenn andere Klassen innerhalb eines Programms durch “private” nicht direkt auf die Variablen zugreifen konnten, programmierte man doch immer Get-Funktionen, die den Wert dennoch zurück lieferten.

Erst vor ein paar Monaten, bei der Lektüre eines der beiden Bücher – keine Ahnung bei welchem genau – fiel der Groschen. Beim Geheimnisprinzip geht es nicht hauptsächlich um Sicherheit, sondern um Modularität.

Was ich vorher schon verstanden hatte, war, dass man um das Geheimnisprinzip einzuhalten seine Klassen so programmieren musste, dass eine andere Klasse die Innereien nicht einfach lesen kann, sondern über eine Funktion gewissen Informationen anfragen muss. Das beschränkt sich aber nicht auf Java und objektorientierte Sprachen. Auch z.B. in C gibt es z.B. das Schlüsselwort “static”, mit dem man Variablen und Funktionen innerhalb einer Datei (nicht Klasse) vor dem Zugriff aus anderen Dateien schützen kann.

An hardwarenaher Programmierung lässt sich der gewonnene Vorteil gut veranschaulichen. Nehmen wir eine Digitaluhr mit Display. Das Programm enthält dabei sinnvollerweise mehrere Abstraktionsebenen. Auf der unteren ebene befinden sich die Treiber für die verwendete Hardware. Um z.B. Zeichen auf dem Display auszugeben, müssen erst die angeschlossenen Pins des Prozessors als Eingang oder Ausgang programmiert werden. Auch möchte man eine Tabelle Hinterlegen welche Segmente des Displays eingeschaltet werden müssen, um z.B. eine 2 darzustellen. Ziel ist ein Treiber, der die nötigen Pins initialisiert und wenn man ihm eine Uhrzeit übergibt diese auf dem Display darstellt. Von außen betrachtet reichen dafür 2 Funktionen, init() und printTime() könnten sie heißen.

Das aber ist die Sicht von Außen auf den Treiber. Im Inneren deutlich mehr Funktionen geben, z.B. eine um die Datenrichtung der Pins festzulegen, eine um die Ausgabepins auf die richtigen Werte für die Initialisierung des Displays zu setzten, usw. Sorgt man jetzt dafür, dass anderer Code von außen wirklich nur auf die init()- und printTime()-Funktionen zugreifen kann, sprich, man hält sich an das Geheimnisprinzip, ergibt sich extrem modularer Code.

Wechselt man z.B. auf ein Display eines andren Herstellers, dessen Hardware anders angesteuert werden muss, so muss trotzdem nur der Treiber neu geschrieben werden und solange der neue Treiber wieder init() und printTime() zur Verfügung stellt, muss der Übergeordnete Code nicht geändert werden.

Es geht also beim Geheimnisprinzip hauptsächlich darum den Code Modular zu halten, um Teile möglichst Rückwirkungsfrei austauschen zu können. Indirekt führt das wahrscheinlich auch zu mehr Übersicht und zu besserem und besser wartbarem Code und dient somit bestimmt auch der Sicherheit. Hauptgrund dafür ist aber Modularität.

Und ich frage mich immer noch: “Hat uns das wirklich keiner gesagt? Hat man es uns gesagt und ich hab es nicht verstanden und wenn ja, warum?”

leben reisen

Bergschuhe

alte WanderstiefelIm Artikelbild sind alte Wanderschuhe von mir zu sehen. Alt heißt in dem Fall so ca. 15 Jahre. Diese Treter begleiten mich also schon eine ganze Weile, waren in den Alpen, in Schweden und Norwegen und den heimischen Wäldern. In diesen Schuhe, kann ich auch nachdem sie ein halbes Jahr im Keller standen loslaufen und mir sicher sein, dass ich mir keine Blasen laufe. Wunderbar!

Leider ist ihre Zeit nun gekommen. Es lösen sich die ersten Nähte auf und die Metallteile fangen an zu rosten. Hinzu kommt, dass diesen Sommer noch mal ein richtiger Wanderurlaub auf dem Programm steht. Es geht in die Dolomiten. Bis zum Sommerurlaub sind es noch ein paar Monate. Ein guter Zeitpunkt um sich neues Schuhwerk zu organisieren, bleibt doch mehr als genug Zeit es einzulaufen und festzustellen, was ich anstellen muss, um blasenfrei wandern zu können.

Alles nicht so einfach, denn meine Füße sind komisch. Halt! Stimmt nicht. Mein rechter Fuß ist komisch. Das mach sich in der Regel dadurch bemerkbar, dass mir linke Schuhe auf Anhieb passen, rechte Schuhe aber, trotz der richtigen Größe an der Ferse nach ein paar Kilometern scheuern. Je nach Schuh ist das mehr oder weniger extrem. Gegen leichte Laufschuhe gewinnt meiner Ferse. Skaterschuhe sind so dick und weich gepolstert, dass nicht viel passiert. Darüber hinaus wird es schwierig.

Solchermaßen befußt stapfte ich also vor ein paar Wochen ins örtliche Outdoorfachgeschäft. Alles kein Problem, denn abgesehen vom komischen rechten Fuß bin ich der personifizierte Durchschnitt. Dazu war der Verkäufer in sofern kompetent, dass er mit dem Wissen um meine Schuhgröße und die Schuhe, die er verkauft mit auf Anhieb die richtige Größe herausgab. Die Teile passten nix drückte und auch bergab stieß der große Zeh nicht an. Soweit so gut.

Gekauft habe ich den Lhasa von Hanwag und zwar aus folgenden drei Gründen:

Erstens handelt es sich um einen Schuh der Kategorie B. Die Kategorien reichen von A bis D und bezeichnen das Einsatzgebiet des Schuhs. Im Grunde wird der Schuh mit steigender Kategorie immer höher und härter, um immer mehr Halt zu geben. Allerdings läuft es sich in weniger schwierigem Geländer mit brettharter Sole auch eher bescheiden. Wie auch immer sowohl der Verkaufsmensch, als auch ich waren der Meinung dass für den Sommerurlaub Kategorie B die richtige war.

Zweitens der Schuh hat drei Haken zum am Schaft. Bei Wanderschuhen, werden die Schnürsenkel im oberen Bereich nicht durch Ösen gezogen, sondern in Haken eingehakt. Das erste Paar sitzt im Knick/Gelenk des Schuhs und dann folgen am Schaft zwei oder drei weitere Hakenpaare. Ich habe die Erfahrung gemacht, dass sich die Probleme mit meinem rechten Fuß in Grenzen halten, wenn ich hohes Schuhwerk trage. Da der Schaft dann teilweise das hält, was eigentlich Aufgabe der Ferse wäre. Also war mein Motto “Mehr Schaft = mehr Gut”. Also mehr Ösen -> mehr Schaft -> … ist klar denke ich.

Drittens der Schuh hat ein Lederfutter. Die Alternative wäre ein Schuh mit GoreTexfutter gewesen, aber zum einen neigt meine Problemferse dazu den Schuh im Fersenbereich durchzuscheuern und ich erwarte von Leder dort mehr Widerstandskraft als von Textil-Mebran-Gedöns. Zum anderen hege ich die Hoffnung, dass sich ein Vollederschuh noch wirklich einlaufen lässt. Werde ich dann ja sehn.

Stand derzeit ist, dass ich mir natürlich am rechten Fuß bei der ersten kurzen Wanderung eine Blase gelaufen habe. Eine längere Wanderung ein paar Tage später hat diese dann mit Blut gefüllt. Seit dem habe ich eine runde braune Stelle an der rechten Ferse und bin wegen schlechtem Wetter und zu viel Arbeit nicht wieder zum Wandern gekommen.

Mein Ziel ist es jetzt vor dem Sommerurlaub die Schuhe soweit es geht einzulaufen und mit diversen Kombinationen, aus Socken und anderen Dingen die optimale Kombination für mich zu finden, um schmerzfrei wandern zu können.

To be continued …