Vorbereitung Informatik Tutorium
Ich bereite gerade das Tutorium zum Thema Rekursion vor. Natürlich darf da die rekursive Traversierung eines Baumes nicht fehlen.
Der Baum:
1 2 3 4 5 6 7 8 9 10 | public class Node { List<Node> children = new ArrayList<Node>(); String name; public void print(String indent) { System.out.println(indent + name); for (int i = 0; i < children.size(); i++) { children.get(i).print(indent + " "); } } } |
Da ich in den vorangegangenen Aufgaben oft auch eine iterative Implementierung gefordert habe (z.B. Fibonacci Zahlen) durfte folgende Aufgabe nicht fehlen:
3.4
Ist es möglich 3.3 [Ausgabe des Baumes - rekursiv] auch iterativ (ohne Rekursion) zu implementieren?
Wäre diese Implementierung einfacher oder komplizierter?
Warum ist das so?
Wikipedia dazu:
Jede primitiv-rekursive Definition kann unter Zuhilfenahme eines Stapels durch eine Schleife (z.B. For-Schleife oder While-Schleife) ersetzt werden.
Ja, es geht. Ich denke aber, dass das niemand im Tutorium verstehen wird, oder doch?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | static void print_i(Node node) { class StackItem { public Node node; public int index; public String indent; public StackItem(Node n, String indent) { this.node = n; this.indent = indent; this.index = -1; } } Stack<StackItem> stack = new Stack<StackItem>(); stack.push(new StackItem(node, "")); while (!stack.isEmpty()) { StackItem top = stack.peek(); Node topNode = top.node; if (top.index == -1) { System.out.println(top.indent + topNode.name); } else if (top.index < topNode.children.size()) { stack.push(new StackItem(topNode.children.get(top.index), top.indent + " ")); } else { stack.pop(); } top.index++; } } |
Neuer Heimserver
Endlich ist es geschafft. Der neue Heimserver ist komplett geliefert, zusammengebaut und installiert.
Nach anfänglichen Ärgernissen
- beim Einbauen des Mainboards (wie erwartet war es wieder eine Frickelei)
- beim Einsetzen des Hauptspeichers (dazu braucht man 3 Hände)
- bei der Debian Installation vom USB-Stick
- beim Einrichten des LVM (das ‘grafische’ Menü der Debian Installation ist an dieser Stelle … verbesserbar)
fuhr das System nicht hoch. Erst nach Umstellung des SATA Modus von ‘IDE Emulation’ auf AHCI konnte Debian gebootet werden.
Das Resultat:

Endlich gibt es wieder mehr Platz!
Der alte Server kann dann als kalte Reserve verwendet werden.
Außerdem ist der neue Server ziemlich stromsparend:
Das Energie-Messgerät zeigt momentan (Idle) 20W an.
Der alte Server hat über 50W benötigt.
Die Schriftart machts!
Soeben habe ich beschlossen, dass mein Blog deutlich mehr Georgia verträgt. Artikelüberschriften und Überschriften in der Sidebar erfreuen sich nun einer neuen Schriftart.
vorher war Arial
jetzt ist Georgia in kursiv
Office 2007 Aktivierung: Wahre Angaben führen nicht immer zum gewünschten Resultat
Als ich soeben Office 2007 installiert habe und aktivieren wollte meldete der Aktivierungsassistent, dass Office nicht mehr über das Internet aktiviert werden könne.
Auf der Schachtel steht: Aktivierung gültig für 3 PCs.
Also auf zur Telefonaktivierung. Als ich alle Zahlen eingetippt hatte kam die Frage: Ist ihr Produkt auf mehr als einem PC installiert? Ich habe ’2′ für ‘ja’ gedrückt. Die Antwort: “Ihre Version von Windows kann nur auf einem PC installiert werden.” Aufgelegt.
Auf der Schachtel steht: Aktivierung gültig für 3 PCs.
Also noch mal angerufen und nun bei der Frage die ’1′ für nur ein mal installiert gedrückt. Dann gab es auch Zahlen zum Aktivieren.
Fazit
Ich werde bei der Telefonaktivierung nie wieder angeben, dass ich irgendein Microsoft Produkt auf mehr als einem PC installiert habe.
Ich dachte bislang, dass nur die Telekom zu so etwas fähig ist.
Das Datenmonster muss gefüttert werden: Facebook – Jetzt auch Email
Endlich kann man nicht nur all seine Freunde / Bekannte / Termine / religiöse Ansichten / seinen aktuellen Aufenthaltsort / Lebenslauf mit Facebook verwalten. Jetzt gibt es auch Facebook-Email. Toll!
Endlich kann Facebook auch alle persönlichen Emails mitlesen.
Mark Zuckerberg
Datenschutz ist nicht mehr Zeitgemäß [Sinngemäß]
Vom Facebook Gründer, ist also garantiert nichts zu befürchten. Der will sicherlich nur das Beste für die Leute und sich nicht mit ihren Daten bereichern.
Trotzdem hab ich mir mal meine Facebook-Email Adresse ‘gesichert’ (es gibt sowieso niemand der genauso heißt wie ich).
Probiert es doch einmal aus und schickt eine Mail an
simon.ottenhaus (at) facebook.com
Mal sehen was der Spam-Filter taugt.
Achso: So alten Kram wie POP, IMAP und SMTP gibt es bei Facebook-Mail natürlich nicht!
Telekom: VDSL Störung am 11.5.2011
Mein Blog wird immer mehr zu einer endlosen Ansammlung von VDSL Störungsmeldungen. Dieses Mal war es eine größere Störung, so dass die Telekom schon von der Störung selbst wusste als ich anrief. Der Kundenberater konnte mir dann nur noch bestätigen, dass er mit dieser Verfügbarkeit selbst auch nicht zufrieden wäre. Natürlich konnte er nicht ausschließen, dass es in nächster Zeit zu weiteren Störungen kommen kann.
Sind 3 Telekom-seitige Störungen in 35 Tagen normal?
Die Verfügbarkeit ist eindeutig mangelhaft.
Wer endgültig genug von seinem jetzigen Internetanbieter hat oder nach einem günstigeren Angebot such kann sich unter
billig-tarife.de/internettarife
über die Tarife aller Anbieter informieren.
Telekom: Störungen ohne Ende (Update)
Nun war das VDSL wieder für über 24h nicht verfügbar. Welche Hardware die Telekom wohl einsetzt? Andauernd Probleme…
Update
Offenbar hat die Telekom ein Update eingespielt und musste dafür alle Kundendaten neu laden. Unsere Daten wurden dabei leider falsch geladen und dann tat nichts mehr. Als der Rückruf der Telekom kam wurden wir natürlich zunächst genötigt unsere Kundendaten im Router neu einzutragen. Als ob wir die geändert hätten…
Liebe Telekom: Wenn wir eine Störung melden ist einer der 2 Fälle aufgetreten:
1) Der billig produzierte Router ist kaputt gegangen.
2) Es liegt eine Telekom-Seitige Störung / Fehlkonfiguration vor!
Anmerkung zur internen Verwaltung der Telekom
Offensichtlich werden Kunden-, Anschluss-, Auftrags- und sonstige Daten bei der Telekom in verschiedensten Datenbanken (oder Textdateien?!) gespeichert. Auf jeden Fall ist alles herrlich inkonsistent.
Mitarbeiter Telekom: Nein an ihrem Anschluss ist kein VDSL geschaltet, nur ein Telefon – Moment, wenn ich auf den Knopf da drücke ist da doch was!
Bugsuche: Die verschollenen 3px
Gegeben sei folgender Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | protected override void CalculateSize(CalculationArguments args) { float lastMarginRight = 0; bool first = true; foreach (RdAbstractNode node in listNodes) { node.CalculateSizeBase(args); if (!first) { width += Math.Max(lastMarginRight, node.MarginLeft); } width += node.OuterWidth; [...] lastMarginRight = node.MarginRight; } } |
Wo ist der Fehler?
Genau: first = true. !first = false.
Damit ist if(!first) äquivalent zu if(false)
Eine Compiler-Warnung wäre hier echt nett gewesen.
Der Bug existiert schon seit längerem, war aber nie wirklich aufgefallen, da node.MarginLeft maximal 3px ist. Die fehlenden 3px sind bisher nicht wirklich aufgefallen…
Ich bin nur froh, dass es dieses Mal mein Fehler war und ich nicht stundenlang verschollene Pixel suchen muss.
Telekom: Die unendliche (Störungs-) Geschichte (Update)
Die Störung
Gestern um 16 Uhr war es wieder an der Zeit. Der Speedport W722V meldete
12.04.11 08:09:03 PPPoE-Fehler: Zeitüberschreitung. (R020)
12.04.11 08:08:50 Internetverbindung wurde getrennt. (R009)
1. Anruf bei der Telekom
Da bisher 2 Router beziehungsweise deren eingebaute Modems an unserem Anschluss kaputt gegangen sind habe ich sofort bei der Telekom ein Tauschgerät angefordert. Leider konnte von Seiten der Telekom gestern keine Messung unserer Leitung durchgeführt werden, da an unserem Anschluss kein VDSL gelistet war.
Die “Wunderheilung”
Allerdings passiert heute Morgen um 8:55 etwas wunderliches:
12.04.11 08:55:58 Internetverbindung wurde erfolgreich hergestellt. IP-Adresse: [...] (R010)
12.04.11 08:55:47 DSL ist verfügbar (DSL-Synchronisierung besteht mit 51376/10048 kbit/s). (R007)
12.04.11 08:55:31 DSL-Synchronisierung beginnt (Training). (R008)
12.04.11 08:53:45 DSL antwortet nicht (Keine DSL-Synchronisierung). (R006)
12.04.11 08:53:42 Internetverbindung wurde getrennt. (R009)
Auf Deutsch: Der Router hatte sich wieder eingewählt. Dies weckte dann mein Interesse, hatte ich doch mit einem Hardware Defekt in unserem Router gerechnet und sich dieser normalerweise nicht durch Abwarten lösen lässt.
2. Anruf bei der Telekom
Ein erneuter Anruf bei der Telekom brachte neue Erkenntnisse: Die Störung war auch bei der Telekom verzeichnet: Im besagten Zeitraum war die Leitung tatsächlich gestört.
Zusätzlich gab es noch eine Ankündigung eines Rückrufs der Technikabteilung – die hoffentlich mehr Einblicke in die Leitung hat. Es war sogar von einem potentiellen Tausch der Baugruppe im Verteiler die Rede. Vielleicht bringt das ja Besserung?
Bisherige Störungs-Geschichte
Alle Artikel zur Telekom
Leider hat sich meine Vorhersage aus dem letzten Störungs-Post nicht bewahrheitet. Sie lautete bisher: Störung zu Weihnachten. Offensichtlich wurde der Termin vorverlegt. Auf jeden Fall bleibt die Geschichte spannend!
Update: Rückruf der Telekom
Anscheinend gab es eine größere Störung seitens der Telekom. Dann kann ich den Tausch-Router – sobald er ankommt – OVP zurückschicken.