Entertainment im Hörsaal

Unsere Dozentin demonstriert uns gerade praktisch die binäre Suche:
Sie hat ein Telefonbuch von Dortmund mitgebracht, dort hat ein Student pseudo-zufällig den Namen „Smolarek“ reusgesucht.

Unsere Dozentin hat zunächst festgestellt, dass der Teil mit den Telefonnummern im Telefonbuch von Seite 40 bis Seite 632 geht. Die Mitte davon ist auf Seite 296 (das zu berechnen hat übrigens einige Studis durchaus zum Nachdenken angeregt…). Dort steht ein Herr Kaiser. Wir stellten fest, dass der Zielname Smolarek „größer“ ist als Kaiser, also durfte ein Student das Telefonbuch an dieser Seite in der Mitte durchreißen, wir haben den vorderen Teil weggeschmissen und nur mit dem hinteren Teil mitgemacht.
Also ging es weiter mit dem Bereich 297 bis 632. In der Mitte stand eine Frau Küster. Smolarek ist größer als Küstner, also wieder durchreißen und vorderen Teil wegwerfen.
Rest: 465 bis 632, Mitte: „Prode“; Smolarek ist diesmal kleiner => durchreißen, und diesmal den hinteren Teil wegwerfen.
Rest: 465 bis 568, Mitte: „Stepniak“; Smolarek ist kleiner, hinteren Teil weg.
Rest: 527 bis 568, Mitte: „Schröder“; Smolarek größer, vorderen Teil weg.
Rest: 527 bis 537, Mitte: „Sprack“; Smolareck kleiner, hinteren Teil weg.

Ab hier habe ich irgendwie den Faden verloren… aber das ist nicht nur mir passiert, auch unsere Dozentin hat soeben festgestellt, dass „ö kleiner als o“ ist. Dann hat sie soeben (ja, das ist live-Blogging!) das Mikro fallengelassen und es damit fast kaputtgemacht.
Inzwischen schnipselt sie mit einer Schere an den letzten paar Personen herum.

Fazit der ganzen Aktion: Wir haben eine Person im etwa 300.000 Personen umfassenden Dortmunder Telefonbuch mit genau 20 Vergleichen gefunden (theoretisch hätten 19 Vergleiche gereicht, jedoch hat, wie schon erwähnt die Mittelpunkt-Berechnung teilweise kleinere Probleme dargestellt 😉 ). Der Zeitaufwand für diese gaze Aktion warzwar enorm, der Lerneffekt aber auch – jetzt sollte eigentlich jetzt jeder hier im Hörsaal etwas mit der binären Suche anfangen können.

Spruch von Jan, beim Anblich der Professorin inmitten des Stapels von auseinander geschnittenen / -rissenen Telefonbuchteilen:

Hoffentlich sucht sie privat nicht auf diese Weise die Leute – sonst hätte sie nämlich einen etwas hohen Telefonbuch-Verbrauch.

😀

Leer oder nicht leer, das ist hier die Frage

Jaja, der Frede… hatte er unsere heutige Programmiersession mit folgendem Code doch ein bisschen in die Länge gezogen:[code]public boolean isNonEmpty() { return m_container.isEmpty(); }[/code]Damit hat er uns nur etwa 1 Stunde immer verzweifelter werdende Fehlersuche beschert…

Für alle nicht-Programmierer: Unter „mehr lesen“ gibt’s eine simple Erläuterung…

Zunächst: Was ist eine Funktion in einer Programmiersprache?
Eine Funktion kann man sich im Prinzip wie eine Frage vorstellen, auf die man eine Antwort möchte. Eine Funktion könnte z.B. „runden“ heißen, man übergibt ihr als Parameter eine Zahl und die Funktion „antwortet“, indem sie die Zahl gerundet zurückgibt. Andere Funktionen wären z.B. sqrt (zieht die Wurzel einer Zahl) oder drehe_um, die eine Zeichenkette, die man ihr übergibt umgedreht wieder zurückgibt („Hallo“ => „ollaH“). Funktionen können aber auch ohne Parameter auskommen – zeit z.B., die einfach nur die aktuelle Uhrzeit zurückgibt.

Unsere Funktion hieß „isNonEmpty“, sollte also einfach nur zurückgeben, (ja / nein als Antwort), ob in dem abgefragten Container Elemente vorhanden sind (bevor man z.B. versucht, ein Element zu löschen, ist es für Programmierer immer sinnvoll, erstmal zu prüfen, ob es dieses Element überhaupt gibt).
Frede hat diese Funktion jedoch so geschrieben, dass sie zurückgibt, ob *kein* Element in dem Container vorhanden ist.

Folge: Anstelle einem Code in der Form von „Nur löschen, wenn es ein Element gibt“, haben wir (eher unwissend) einen Code in der Form von „Nur löschen, wenn es keine Elemente gibt“ geschrieben – was zu einem doch eher ungeplanten Verhalten geführt hat. :wand:
Und wir haben wirklich alles mögliche probiert und gemacht, kamen aber nicht auf die Idee, Fredes „triviale“ (Zitat Frede) isNonEmpty()-Funktion zu überprüfen…

Nicht gebloggt!?

Komisch… eigentlich hatte ich heute morgen einen kurzen Beitrag verfasst, der aber irgendwie auf dem Weg zu meinem Server verloren gegangen zu sein scheint?!
Egal. Mit fiel heute morgen in meinen Keyword-Statistiken („Über welche Suchmaschinen und Suchbegriffe sind Leute zu meinem Blog gekommen?“) der Suchbegriff „Dortmund Hauptbahnhof gesperrt“ auf. Ich machte mir Sorgen, wollte ich doch heute mit dem Zug (über Dortmund Hbf) zur Uni fahren.

Der Bahnhof war jedoch nicht gesperrt. Und weitere Suchbegriffe in der Richtung von „bombendrohung bahn dortmund“ implizieren dann auch, dass heute / gestern / in letzter Zeit eine Bombendrohung am Dortmunder Hbf eingegangen war und daher wohl der Bahnhof eine gewissen zeit lang gesperrt war. Davon habe ich heute auf meinem Weg jedoch absolut gar nichts mitbekommen. 😉
Gewisse Parallellen hierzu werden aber doch deutlich. 😉

Platzhalter-Mail

Na, war da etwa jemand zu blöd um seinen Spam-Mail-Generator zu konfigurieren?

%_SUBJ_ENZO
Guten Tag!

Zur Entwicklung von unserem Tatigkeitsbereich starten wir das Personal fur unser Team zusammenzustellen:
[…]
Wenn Sie sich fur diese Stelle interessieren, gehen Sie bitte zu unserer Internetseite: www.%_RND_DOMAIN . Hier konnen Sie mehr Information finden und den Antrag ausfullen.
Also, Sie konnen das Antragsformular ausfullen und uns es per E-Mail schicken: support@%_RND_DOMAIN

Um sich um diese Stelle zu bewerben, schicken Sie bitte Ihren Lebenslauf an: support@%_RND_DOMAIN
[…]
Danke fur Ihre Aufmerksamkeit.
support@%_RND_DOMAIN

:wand: Über die Rechtschreibung / Grammatik will ich erst gar nicht schreiben.

Kamerakurs

Ich habe mich in diesem Semester entschlossen, an dem von meiner Uni kostenlos angebotenen Kamerakurs teilzunehmen. In diesem Kurs werden einem die große Videokamera, die Tontechnik, das Schneiden von Filmen und noch vieles mehr erklärt. Man braucht diesen Kurs unter Anderem, um überhaupt erst die Erlaubnis zu bekommen, sich die große Kamera auszuleihen.

Dabei habe ich heute gemerkt, dass die Faschschaft Informatik wohl die einzige Fachschaft an der Uni Dortmund ist, die eine aktive Film-AG hat – unter den 11 Teilnehmern waren 8 Informatiker…

Displays

Von den Zeitreise- und Selbsttest-Displays in der S1 hatte ich ja schonmal berichtet. Ich finde Displays in Zügen und Bussen insgesamt wirklich praktisch. Gerade für nicht ortskundige Passagiere, die sich dort einfach informieren können, wie die nächste Haltestelle heißt oder wann welche Anschlusszüge fahren.
Leider scheint die Bahn immer wieder kleinere Probleme mit diesen Displays zu haben. In der Reginalbahn, die mich von Schwerte nach Dartmund bringt, hängen im Türenbereich richtig moderne Farbdisplays, auf denen der Fahrplan dieses Zuges, Umstiegsmöglichkeiten am aktuellen Bahnhof und noch einige Infos mehr anzeigen.
Bis auf das eine Display, welches ich heute entdeckt habe. Dieses meldete nämlich nur:

Operating System not found.

😀

Go, go, Linux!

So, und ich versuche wieder einmal, mich mit Linux anzufreunden. Ist ja bei weitem nicht mein erstes Mal – ich habe schon mehrfach Linux als Parallel-Installation auf meinem Desktop-PC gehabt, leider hatte ich da jedoch regelmäßig das Problem, dass ich dann einfach Windows statt Linux gestartet habe, wenn mal etwas nicht ging…
Also habe ich mir gestern mal eben ein komplettes Festplatten-Image von meinem Laptop gemacht und dann mal eben die Festplatte geplättet und Kubuntu 5.10 in der AMD64-Version draufgespielt.
So weit, so gut.

Meine Probleme haben damit aber eigentlich auch erst angefangen… wenn ich z.B. im KDE eine höhere Auflösung als 1024×768 einstellen will (in meinem Falle 1240×800), so sehen die linken 80% des Bildes normal aus… in die verbleibenden 20% am rechten Rand des Displays wird jedoch der linke Teil noch einmal hineinkopiert!?
Außerdem ist die Einrichtung der WLAN-Karte nicht ganz so einfach: Mein Notebook hat vorne so einen Knopf zum WLAN-Aktivieren. Erst wenn dieser gedrückt wurde, ist die WLAN-Karte überhaupt aktiv. Um diesen jedoch effektiv drücken zu können, muss ich erst einen Treiber installiert bekommen, der sich jedoch bei mir nicht kompilieren lassen will… :wand:

Aber ich bin doch ganz zuverlässig, mit der Zeit mit dem Linux klarzukommen – gerade an der Uni laufen ja doch genug Leute rum, die Ahnung von Linux haben. 😉
Oder ich besuche einfach mal den Linux-Stammtisch…

Auf jeden Fall habe ich, da ich noch mit einigen mehr Einträgen zu diesem Thema rechne, eine neue Kategorie namens „Linux“ geschaffen. 😀