Posts tagged: DBC

Warum manchmal unerklärliche Dinge geschehen

“Schon traurig, dass von mir als Informatiker manchmal als einziger Lösungsvorschlag ‘Stecker ziehen und wieder reinstecken’ kommt. — Und noch trauriger ist es, dass das auch noch hilft.”

Manchmal passieren Dinge, die uns unerklärlich, ja unglaublich erscheinen. In den letzten paar Tagen, durfte ich an ein paar WLANs rumbasteln und dabei sind diverse solcher Dinge passiert. Und das hat mich dann dazu gebracht, obiges zu meinem Cousin zu sagen. Das will ich mal zum Anlass nehmen und etwas darüber sagen, wie diese unerklärlichen Dinge geschehen.

Aber was ist denn nun passiert?

  • Der neue WLAN-Router tut nicht so, wie er soll. Zuerst kommt er ins Internet, aber das WLAN geht nicht. Dann geht WLAN aber kein Internet mehr. Nach ein paar mal neu Booten und Stecker ziehen und wieder reinstecken, tut es wieder.
  • Ein anderer WLAN-Router (gleiches Modell) hat laut LED eine Verbindung mit dem Internet. Das Kabel steckt aber nicht im WAN-Port. Netzstecker ziehen und wieder reinstecken und es geht.
  • Der selbe WLAN-Router ist per Ping zu erreichen, zeigt bei Eingabe der IP in den Browser keine Konfigurationsoberfläche (Timeout). Ein Reset behebt das Problem.
  • Bei selben Gerät ein Admin-Passwort eingerichtet (händisch in beide Edit-Felder eingetragen und gespeichert). Danach nimmt er das Passwort beim Anmelden aber nicht mehr an. Nach einem Reset nochmal versucht (diesmal langsam eingetippt). Selbes Problem. Dann Dummy-Passwort “abc” zum Probieren. Lustigerweise funktioniert das jetzt. Dann das Wunsch-Passwort nicht eingetippt, sondern per Copy’n'Paste jeweils eingefügt. Wieder “Benutzername oder Kennwort falsch”.
  • Einen WLAN-AccessPoint als Repeater konfiguriert. Datendurchsatz ca. 40kbps (ja 40kbps bei 802.11n und ner Entfernung von 20cm). Neu Starten hilft diesmal nicht. Zum Testen als AP-Client konfiguriert: selbes Problem. Zum Testen mit anderem AccessPoint verbunden: Klappt problemlos. Wieder zurück zum eigentlich gewünschten AccessPoint: Wieder ewig lahm. Neu Starten hilft immer noch nicht. Einen Tag später nochmal versucht: Klappt auf Anhieb.
  • Bei Verwendung des neues Repeaters friert der Rechner ein (Maus und Tastatur reagieren nicht mehr). Der Rechner war per Ethernet-Kabel mit dem Repeater verbunden. Selbst nach Abziehen des Kabels (also der Rechner ist mit dem Repeater nicht mehr verbunden. Beide stehen nur nebeneinander) besteht das Problem weiterhin. Ein bisschen WLAN lässt den Rechner einfrieren.
  • Auch ein DSL-Router war mal per Ping zu erreichen und per Browser nicht. Wieder behob ein Steckerziehen das Problem.

Aber wie kann das alles sein? Und was hat das mit Software-Entwicklung zu tun? Ich wage mich mal an eine Erklärung des Unerklärlichen. weiter lesen »

Eiffel: Das Esperanto unter den Programmiersprachen

Ich gehöre zu denjenigen, die sich gerne immer mal wieder eine neue Programmiersprache ansehen. Nicht um in jeder dieser Programmiersprachen letztendlich auch produktiv zu arbeiten, aber um mal “übern Tellerrand zu gucken”.

Das Ganze ist nicht nur interessant, sondern hat auch den Vorteil, dass man sehr viel über unterschiedliche Herangehensweisen und Programmierkulturen erfährt. Die einzelnen Sprachen unterscheiden sich nicht nur in der Syntax, sondern auch in der Denkweise, wie Probleme gelöst bzw. Code geschrieben wird. Sowas ist manchmal augenöffnend und kann auch mal helfen, kreative Lösungen für schwierige Probleme zu finden, die man in “seiner” Programmiersprache hat.

Das heißt natürlich nicht, dass man anfangen sollte, die eigene Sprachkur zu missachten. Im Gegenteil: Manchmal ist es sinnvoller, eine schlechte, aber allseits bekannte Lösung zu verwenden, als eine elegante, die für andere Entwickler “fremdartig” wirkt. Code schreibt man i.d.R. ja nicht nur für sich selbst, sondern auch für die anderen Entwickler im Team, etc.

Aber für schwierige, nicht-alltägliche Probleme kann man auch mal eine kreative Lösung gebrauchen. Und dafür ist es ganz gut, wenn man mit anderen Sprachen und Programmierkulturen in Kontakt kommt. Außerdem ist es mit Programmiersprachkulturen ähnlich wie mit natürlichen Sprachen: Sie verändern und beeinflussen sich gegenseitig und das ist eine Bereicherung. [1]

Ich bin nicht der einzige, der so denkt. In “The Pragmatic Programmer” [2] geben Andy Hunt und Dave Thomas den Rat: “Learn at least one new language every year.” Und da komm ich sogar in etwa hin. Die meisten davon kann ich nicht (mehr) wirklich gut. Wirklich produktiv einsetzen kann ich momentan davon nur ne Hand voll. Aber darum gehts ja auch nicht.

Nun, ich hab mich jetzt ein bisschen mit Eiffel beschäftigt. Aus Zeitgründen leider nur oberflächlich. So hab ich praktisch keinen echten Code geschrieben sondern nur Tutorials und Code gelesen. Das bedeutet natürlich, dass viel von der Syntax bald wieder verflogen sein wird. Aber wie gesagt: Darum gehts mir gar nicht.

Ich hab also einen Eindruck von Eiffel bekommen. Um jetzt mehr als ein Bauchgefühl vermitteln zu können, müsste ich wohl wirklich mal ein paar hundert Zeilen Code schreiben. Aber dafür hab ich momentan keine Zeit. Hier also nur mal ein erster Eindruck. weiter lesen »

Gefangen, nicht gefunden! #11

Mein letzter Blogeintrag ist schon ne Weile her. Das liegt u.a. daran, dass ich ein vergleichsweise arbeitsreiches Semester hinter mir habe… und jetzt noch zwei Klausuren vor mir. Mit ein bisschen Glück gibts jetzt aber wieder etwas öfter was von mir zu lesen. In der Zwischenzeit haben sich eine Hand voll halb-fertige Artikel angesammelt. Ebenso wie einige interessante Links…

Informatik

  • Mein Vortrag für die diesjährigen Delphi-Tage ist angenommen worden. Auf der “Agenda” steht was von “Was die OOP-Tutorials verschweigen”. Es geht grob gesagt darum, wie man objektorientiert denkt. Die Folien werde ich online stellen, wenn ich sie fertig habe.
  • How Not To Sort By Average Rating. Ein interessanter Artikel über das richtige Sortieren von Bewertungen (via).
  • Ich hab jetzt mal auf WordPress 3 aktualisiert. Ging überraschend reibungslos. So wie ich das sehe, gehen alle Plugins noch, obwohl die meisten davon nicht für die 3er-Version aktualisiert wurden. Eigentlich sollte das bei gutem Design ja normal sein. Eigentlich…
  • Wer sich ein bisschen für Security interessiert, sollte sich vielleicht mal “Tatort Internet” ansehen. Bisher gibt schon 4 Folgen. Alle sind sehr interessant und kurzweilig geschrieben. Da sieht man mal wie Malware wirklich funktioniert. Wenn man mitkommen möchte, sollte man aber ein paar grundlegende Assemblerkenntnisse mitbringen.
  • “software is like sewage pipes, I want it to work reliably and I don’t want to know about the details” (gefunden bei Martin Fowler). Das Bild passt auch ganz gut auf Module. Denn genau so funktioniert Kapselung (“I want it to work reliably”) und Information Hiding (“and I don’t want to know about the details”). Der Artikel ist übrigens auch ganz interessant.
  • Ich finde ja Assertions sehr praktisch. Also wenn man sie richtig anwendet. Vor einiger Zeit hab ich dazu einen interessanten Artikel gelesen: Design by Contract and Unit Testing. Die Frage ist nämlich u.a. wie das mit Unit-Tests zusammenpasst. Es gibt da noch ne Menge dazu zu sagen. Da werde ich aber wohl separat mal dazu bloggen. Wenn ich hoffentlich bald mal dazu komme…
  • Zehn Zentimeter: In diesem kurzen Blogpost erklärt Isotopp sehr schön, welchen Beschränkungen verteilte Systeme hinsichtlich der Performance ausgesetzt sind.

Anderes

  • Nein, heute gibts nichts anderes…

powered by WordPress | QuickLaTeX | WordPress Themes