Anderes

Ich hab mal ein wenig umdekoriert. Das letzte Design hat fast sechs Jahre durchgehalten, jetzt ist mal was Neues fällig. Ich bin soweit ganz zufrieden. Nicht perfekt, aber sieht auch bei den Textwüsten, die ich normalerweise so produziere ganz ordentlich aus und ist ganz angenehm zum Lesen. Die Startseite ist leider noch nicht responsive, aber das will ich noch machen. Sagt Bescheid, wenn irgendwas nicht funktioniert oder schlecht lesbar ist.

Update: So, responsive sollte jetzt auch alles sein.

Zahlen sind abartig. Einen Forenthread nehm ich mal zum Anlass und versuch bildhaft dar zu stellen, wie groß die Zahl 2^{4096} ist. Ich kann gleich schon vorweg nehmen, dass mir das nicht wirklich gelingen wird. Aber sehen wir und das mal an:

2^{4096} das ist eine Zahl mit 1235 Dezimalstellen. Das kann sich kein Mensch vorstellen. OK, angenommen wir wollen bis dahin zählen. Wie lange würde es dauern? Natürlich machen wir das nicht selbst. Wir nehmen einen Computer dafür. Der aktuell schnellste Supercomputer ist der Tianhe-2 mit einer theoretischen Maximalleistung von 55 Petaflops, also 55 \cdot 10^{15} Rechenoperationen pro Sekunde. Da wir für das Rechenbeispiel ja keine Kostenbegrenzung haben, nehmen wir doch gleich diesen Supercomputer. Wobei. Wir sollten nicht zu geizig sein. Wir kaufen jedem der 7 Milliarden Erdenbürger einen solchen Supercomputer und lassen die alle zählen. Kostet ja nur ca. 2,7 Trillionen Dollar (das sind knapp dreißig mal so viel wie die Gesamtmenge der Schulden). Wie lange würde das dauern?

2^{4096} / (55 \cdot 10^{15}) / (7 \cdot 10^9) / 60/60/24/365 \approx 8,6 \cdot 10^{1198} Jahre

Hm… hat irgendwie nicht sonderlich geholfen. Kann sich auch noch niemand vorstellen. Wir müssen da schon größere Geschütze auffahren. Die Planck-Zeit ist die physikalisch kleinste Zeiteinheit. Kürzere Zeitabschnitte gibt es nach aktuellem Stand der Physik nicht. Das sind ca. 5,3 \cdot 10^{-44} Sekunden. Angenommen wir hätten einen Supercomputer, der innerhalb dieser Zeit einen Zählschritt machen kann. Angenommen wir hätten nicht 7 Milliarden also pro Mensch einen, sondern einen pro Stern im Universum. Oder nee, angenommen wir hätten einen dieser unvorstellbar schnellen Supercomputer pro Atom im Universum. Davon gibts ca. 10^{85} und das Universum ist ca. 13 Milliarden Jahre alt. Wie viele Universen mit je einem unmöglichen Supercomputern pro Atom bräuchte man, für die Zählerei?

2^{4096} / (5,3 \cdot 10^{44}) / 10^{85} / 60/60/24/365 / (13 \cdot 10^9) \approx 4,8 \cdot 10^{1085} Universen

Auch nicht viel besser. Jetzt muss ich mich schon echt anstrengen: Unser Universum ist ja echt leer. Das meiste da drin ist Vakuum. Langweilig. Angenommen, wir würden nun unser Universum lückenlos mit den unvorstellbar schnellen Supercomputern vollpacken. Die kleinste Längeneinheit, die unser Universum nach aktuellem Stand der Physik so kennt, ist die Planck-Länge. Das sind ca. 1,6 \cdot 10^{-35} Meter. Das sind quasi die Pixel unseres Universums. Kleiner geht nicht. Angenommen wir könnten unseren unvorstellbar schnellen Supercomputer unvorstellbar klein machen, sodass er innerhalb einer Kubik-Planck-Länge Platz hätte.

Unser Universum hat einen Durchmesser von ca. 78 Milliarden Lichtjahren. Das sind

(78 \cdot 10^9) \cdot (9,4 \cdot 10^{15}) / (1.6 \cdot 10^{-35}) \approx 1,1 \cdot 10^{62} Planck-Längen

Vereinfachend nehmen wir an, das Universum sei kugelförmig, dann ergibt sich ein Volumen von

\frac{1}{6} \pi (1,1 \cdot 10^{62})^3 \approx 6.9 \cdot 10^{185} Kubik-Planck-Längen

Wir lassen jetzt mal außen vor, dass das Universum früher kleiner war.

Wie viele Universen, bei denen jeder noch so kleine Teil einen Supercomputer enthält, der so schnell ist, wie es die Physik auch nur im entferntesten maximal zulassen würde, bräuchten wir um bis 2^{4096} zu zählen?

2^{4096} / (5,3 \cdot 10^{44}) / (6,9 \cdot 10^{185}) / 60/60/24/365 / (13 \cdot 10^9) \\ \approx 6,9 \cdot 10^{984} \text{ Supercomputer-Universen}

Ich fürchte, das ist immer noch nicht ganz vorstellbar. Nur leider gehen mir jetzt die Vergleichsgrößen aus. Was bitte hat mehr Rechenkraft als ein Universum, das ausschließlich aus Supercomputern besteht?

Das einzige, was mir noch bleibt, ist die Aufgabe kleiner zu machen. Angenommen, wir wollten „nur“ bis 2^{2048} zählen. Dann wären es nur 1.4 \cdot 10^{300} Supercomputer-Universen. Bei 2^{1024} wären wir bei 1,1 \cdot 10^{60} Supercomputer-Universen. Erst wenn wir auf 830 Bit runter gehen, wären wir bei 47 Supercomputer-Universen und das können wir uns nun endlich wirklich vorstellen. Oder so.

Was lernen wir daraus? Niemand wird jemals in der Lage sein, RSA durch einen naiven Brute-Force zu knacken. Absolut. Keine. Chance. Niemals.

Ist RSA deshalb für alle Zeiten sicher? Nein. Das Problem ist, dass niemand ausschließen kann, dass nicht irgendwann ein findiger Mathematiker eine zündende Idee hat, mit der man so abartig große Zahlen effizient faktorisieren kann. Es sagt ja niemand, dass man das einzeln durchprobieren muss. Wir können ja schließlich auch mit so großen Zahlen rechnen. Nichts anderes tut unser Computer, wenn wir eine HTTPS-Seite ansurfen.

Die vielleicht interessantere Aussage: Es gibt Dinge, die können wir uns einfach nicht vorstellen, weil sie einfach so dermaßen abartig unvorstellbar sind, dass unser Geist hier kapituliert. Aber es ist ganz lustig, das fest zu stellen. 😉

Informatik

  • Tolle Präsentation zum Thema OO: Ein Name ein name und ist kein String
  • Die wohl beste Definition für verteilte Systeme ist die folgende: „A distributed system is one in which the failure of a computer you didn’t even know existed can render your own computer unusable.“ So wahr! Diese Definition ist bekannt als Leslie Lamports Definition des Begriffs. Per Zufall bin ich auf den Ursprung der Definition gestoßen: distribution.
  • Wie man Versionsnummern aufbauen sollte.
  • Technical Debt ist ja schon weithin bekannt. Letztens hab ich noch von einer anderen Art der „Schulden“ in der Softwareentwicklung gelesen: Competence Debt. Sehr gutes Konzept!
  • Some thoughts on build tools and application builds. Interessanter Artikel. Die Kernthese des Artikels ist sicherlich diskussionswürdig. Aber das Bemerkenswerteste daran ist eigentlich etwas anderes. Nämlich die folgende Überlegung: „[T]he natural evolution of mastering programming skills: 1. Can I do this? 2. Can I do this more easily? 3. Can I do this more elegantly? 4. Can I not do this?“
  • Lustige Info: Theoretisch darf der Localpart einer E-Mail-Adresse Sonderzeichen enthalten. Selbst ein @-Zeichen. So etwas muss dann excapet werden.
  • Gute Beispiele sind viel Arbeit. Sehr viel Arbeit. Wer mal ein wirklich gut ausgearbeitetes Beispiel sehen will, sollte sich den Vortrag Practical Refactoring ansehen. Und alle anderen am besten auch. Denn genau das, was der Titel ausdrückt, wird in knapp zwei Stunden gezeigt. Refactoring an einem praktischen Beispiel. Keine Spielzeug-Beispiele. Kein Trivialkram. Und trotzdem durchweg verständlich und nachvollziehbar.

Anderes

  • Kurzresümee zu den Doctor Who Specials:
    • The Night of the Doctor: Eine Mini-Episode, die mit der Regeneration vom 8. in den „War Doctor“, eine Lücke füllt. Durchaus sehenswert. Insbesondere Paul McGann ist toll in seiner Rolle. Aber: Inhaltlich bringt die Episode die Verbitterung des Doctors nicht rüber. Er hat viele Menschen sterben sehen. Und aufgrund des Todes einer einzelnen Person, die er kaum gekannt hat, entscheidet er sich, ein Krieger zu werden und seine komplette Lebensweise übern Haufen zu werfen? Das nehm ich ihm nicht ab. Besser man hätte den Doctor in den Wirren des Krieges gezeigt anstatt auf einem einsamen, kargen Planeten. Schade. BTW: Bester Satz: „Will it hurt?““ in Anspielung auf John Hurt. Klasse!
    • The Day of the Doctor: Gut aber nicht überragend. Verschiedene Zeitlinien. So etwas finde ich immer spannend. Und hier ist es ganz gut umgesetzt. Diverse Referenzen auf die vergangen 50 Jahre Doctor Who. Wie zu erwarten prima. Optisch hat mir insbesondere die Hütte auf dem Wüstenplaneten gefallen. Sehr schön. Auf der anderen Seite gab es diverse Szenen, die offensichtlich nur für die Schauwerte da waren. Beispielsweise die Szene zu Beginn mit der Tardis am Hubschrauber. Man hätte darauf verzichten und Zeit und Budget besser für den Plot nutzen können. Insbesondere wird nur behauptet, dass die Time Lords so schlimm wie die Daleks geworden waren. Es wird nie gezeigt und die Folgen des Time Wars sind kaum zu erahnen. Wovon ich leider auch etwas enttäuscht war, ist der „War Doctor“. Vielleicht auch, weil ich falsche Vorstellungen hatte. Aber ich hätte mir einen vom Krieg, vom „Time War“, gezeichneten, verbitterten, müden, vielleicht mürrischen Doctor gewünscht. Das hätte ein toller Kontrast zu den anderen beiden beiden Inkarnationen gegeben. Leider sind die meisten Dialoge mit dem War Doctor lustige Szenen geworden. Da wurde meines Erachtens viel Potenzial verschenkt. Leider. Insgesamt natürlich trotzdem eine tolle Folge. Aber lange nicht so gut, wie sie hätte sein können.
    • The Time of the Doctor: Auch diese Folge hat mich nicht ganz überzeugt. Richtig toll fand ich „Handles“ den Cyberman-Kopf. Hier hätte ich mir eine Mini-Episode als Prequel gewünscht, die dessen Vorgeschichte beleuchtet. Die Nacktheits-Geschichte ist albern, aber verglichen mit Strax aus dem vorangegangenen Weihnachts-Special echt lahm. Stattdessen hätte die Sache mit Handles weiter ausgebaut werden können. Da wäre Potenzial gewesen. zwischendurch gibt es einzelne Szenen, die mit einer Erzählerstimme als Voice Over realisiert wurden. Hier wirkt die Geschichte fast wie ein Märchen und das ist auch gut gelungen. Passt zu einer Weihnachts-Folge. Das hätte man weiter ausbauen können. Ansonsten ist der Plot insgesamt etwas zu „gewollt“ und insbesondere die Silence sind nur Beiwerk und nicht richtig genutzt. Obwohl diese ja eigentlich zentraler Teil der Story waren. Oder hätten sein sollen. Auf der anderen Seite sind die Weeping Angles total unnötig gewesen. Verschenkte Zeit. Also nicht die gesamte Episode. Die Angles-Szene. Insgesamt mittelmäßig. Schade.

Psst! Man beobachtet mich. Ja! Wirklich. Man hört mir bei meinen Selbstgesprächen zu. Ehrlich. Ich bin nicht verrückt. Ich bin nicht paranoid. Aber man lauscht… mit den Augen. So irgendwie. Letztens hab ich nämlich den Beweis erhalten, dass ich tatsächlich Leser habe. Kaum zu fassen, aber wahr. Ich war auf den Delphi-Tagen in Leipzig und da hat mich jemand angesprochen und behauptet, dass mein Blog schon die ein oder andere Mittagspause gefüllt hat. — Hi Marco! [1]

Das hat mich echt gefreut. Ui, ich hab Leser. 🙂 Meine Selbstgespräche hier scheinen tatsächlich auch noch andere Leute zu interessieren. Woa… Auf der anderen Seite hat mich das auf eine merkwürdige Frage gebracht: Warum tue ich das hier eigentlich? Irgendwie ist es nicht ganz leicht, diese Frage zu beantworten. Ursprünglich hab ich ja einfach Tutorials geschrieben. Und die Gründe dahinter sind recht einfach. Zum einen war da ein praktischer Nutzen: Ich war sehr aktiv in einem Webforum und dort fragen Leute Fragen. Und manche Fragen oder Missverständnisse bzw. Wissenslücken wiederholen sich. Statt also alles mehrmals zu erklären, kann ich das einmal ausführlich tun und dann immer wieder darauf verlinken. Zum zweiten war das natürlich auch irgendwie Ausdruck meiner vorlauten „Mitteilungsbedürfigkeit“, die mir damals anhaftete und die auch heute noch zu nem gewissen Grad habe. Um es schön auszudrücken: Ich mag es einfach, etwas zu erklären. Oder anders gesagt: Ich bin ein Besserwisser.

Zum Bloggen bin ich dann gekommen, weil Tutorials so viel Arbeit machen und ich das Gefühl hatte, zu wenig zu schreiben. Im Nachhinein betrachtet, hat das aber auch die Inhalte entsprechend geändert. Tutorials schreibt man mit einem konkreten Thema, einer konkreten Absicht und für eine konkrete Zielgruppe. Mit meinen Blog-Artikeln ist es irgendwie anders. Das sind tatsächlich mehr Selbstgespräche. Ich finde etwas interessant und statt es nur für mich interessant zu finden, schreibe ich es ins Netz. Und vielleicht finden es ja auch andere Leute interessant. Zum Teil ist das ein externer Notizzettel, auf den ich selbst manchmal gucke, um nen Link zu finden. Zum Teil ist es auch eine Art Visitenkarte nach außen. Eine Art „schaut mal her, ich bin zumindest mal nicht total blöd, denn ich kann schreiben und manchmal finde ich auch etwas interessant und manchmal kommt das zusammen.“ Sowas macht sich ganz gut in Bewerbungsunterlagen — denke ich. Zumindest hats mir nicht geschadet.

Etwas, das so ein bisschen aus dem Fokus geraten ist, ist das „und vielleicht finden es ja auch andere Leute interessant“. Momentan schreibe ich nicht oder zumindest nicht primär für Leser. Ich schreibe einfach. Ob ich das ändern soll? Ich weiß nicht. Ob ich das ändern werde? Unwahrscheinlich. Trotzdem kann ich mal fragen: Liebe Leser: Wenn ihr euch traut, dann schreibt mir doch einfach mal in den Kommentaren, was und warum ihr so hier lest, was ihr gut und was schlecht findet, etc. Oder sagt einfach mal Hallo.

Ich kann nicht versprechen, dass ich aufgrund eines Kommentars irgendwas ändern werde. Aber ich werd mich zumindest mal darüber freuen.

[1] Ich hoffe, ich erinnere mich richtig, an den Namen. Mein Namensgedächtnis ist leider abartig schlecht. 🙁

… endlich mal wieder ein Linux-Artikel …

Meine Mutter lernt gerade Computer. Vieles von dem, was für mich selbstverständlich ist, muss sie erst lernen. Und manches fällt ihr schwer. Scrollbalken z.B. Oder generell die Maus. Oder, dass es mehrere Fenster gibt.

Ich habe ihr jetzt einen eigenen Rechner eingerichtet. Einen, der möglichst einfach zu bedienen ist. Und damit so ein Rechner wirklich einfach zu bedienen ist, muss man ne ganze Menge beachten:

  • Scrollbalken sind schwer. Man muss mit der Maus den Balken an der richtigen Stelle treffen und das Ding richtig bedienen. Alternativ kann man zwar auch Pfeiltasten oder Scrollrad verwenden. Dazu muss die Box oft aber den Fokus haben. Und Fokus ist ein kompliziertes Konzept.
  • Doppelklicks sind schwer. Man muss schnell genug sein. Und die Maus darf dabei nicht wackeln.
  • Alles, was irgendwie anders ist, als sonst, ist verwirrend und beängstigend.
  • All die vielen Knöpfe verwirren.
  • Man muss Updates machen, damit das System aktuell bleibt und sich keine allzu großen Sicherheitslücken auftun. Und das wird noch komplizierter, wenn das bei jedem Programm anders funktioniert.
  • Virenscanner, Firewall und was weiß ich nicht alles drücken sich manchmal einfach so in den Vordergrund. Das ist verwirrend.
  • Ordnerhierarchien sind kompliziert.

Ein Anfänger-Rechner muss *wirklich* einfach sein. Also hab ich Linux drauf gemacht. Meine Mutter verwendet eh nur Browser, Mailclient und Textverarbeitung. Da gibt es keinen Grund, warum man Windows verwenden müsste. Und so hab ich die Möglichkeit, alles so einzurichten, dass alles möglichst einfach ist… (mehr …)

Kann ein Quietscheentchen bei der Softwareentwicklung helfen? Kann es Probleme lösen, die man alleine nicht lösen konnte? Wäre eine ausgestopfte Ente besser geeignet?

OK, Spaß beiseite. Ob die Ente aus Gummi ist oder ausgestopft, spielt keine Rolle. Hauptsache sie ist tot. Wobei eine lebende Ente vielleicht auch…

Nein, ich hab keine Rauschmittel zu mir genommen. :mrgreen: Ich will damit tatsächlich etwas Ernsthaftes sagen: Manchmal ist es hilfreich, ein Problem einfach nur mal detailliert zu erklären; und auf einmal löst es sich wie von selbst.

Mir ist das des öfteren schon selbst passiert. Ich stand vor irgend nem Problem und mir wollte die Lösung partout nicht einfallen. Also hab ich mich entschlossen, die Frage anderen zu stellen und auf ne hilfreiche Antwort zu hoffen. Sowas tue ich gerne auch in Webforen. Und in solchen Webforen muss man sein Problem genau erläutern:

– Was ist der Kontext?
– Was ist das Problem?
– Was hab ich gemacht?
– Was hätte passieren sollen?
– Was ist stattdessen passiert?

Dazu noch ein paar schöne Zeilen Code oder ein Beispiel und dann weiß jeder was mein Problem ist. So werden die anderen User in die Lage versetzt, hilfreich zu antworten. Und manchmal versetzt man sich so auch selbst in die Lage, das Problem zu lösen. In so einem Fall ist es gar nicht mehr nötig, die Frage auch wirklich zu posten. Man hätte die Frage genauso gut ner ausgestopften Ente stellen können.

Oftmals sitze ich auch auf der anderen Seite. Ich lese Fragen und beantworte sie. Manchmal lese ich Fragen, bei denen sich der Fragensteller augenscheinlich keine große Mühe bei der Formulierung gegeben hat. Das ist nicht nur unhöflich (jemand erwartet eine kostenlose Antwort, die mitunter Mühe kostet, will sich aber selbst keine Mühe machen), sondern erschwert auch die Hilfe. Und auch das Quietscheentchen wird einem nicht weiter helfen, wenn man es nicht erst nimmt und das Problem nicht genau erläutert.

Dazu fällt mir noch ein Erlebnis aus meiner Schulzeit ein: Im Physikunterricht hatten wir den Druck in Flüssigkeiten durchgenommen. Ich hatte mir schon einige Zeit vorher vorgenommen, bei Gelegenheit ne Frage zu stellen: Druck hat man ja früher in „Millimeter-Quecksilbersäule“ gemessen. Warum geht das? Müsste das nicht von der Bauart des Barometers abhängen?

Ich stellte also meine Frage. Der Lehrer wiederholte die Frage und auf einmal schoss mir die Antwort durch den Kopf. Ich konnte die Frage ja mit meinem eigenen Physikwissen beantworten! Des Rätsels Lösung ist das Hydrostatische Paradoxon, das wir schon kennen gelernt hatten. Ich hatte die Frage gestellt ohne selbst nochmal darüber nachzudenken. Kaum hatte ich die Frage gehört, war die Antwort sonnenklar. Hätte ich die Frage vorher ner Gummiente erzählt, wär mir ne kleine Peinlichkeit erspart geblieben.

Zu den Quietscheentchen:

(via)

Aaaalso, liebes Entchen, ich hab da mal ne Frage…

Die Frage hab ich mir grad letztens mal wieder gestellt. Man will ja die Lebensdauer seiner Akkus nicht unnötig verkürzen. Dass es den berüchtigten Memory-Effekt bei den aktuellen Lithium-Akkus nicht mehr gibt, ist ja mehr oder weniger bekannt. Was aber nun wirklich zu beachten ist, ist gar nicht so leicht heraus zu finden. Im Netz findet man teilweise widersprüchliche Informationen. Auch kann sich durch den technischen Fortschritt so einiges geändert haben (und so wie ich das sehe, hat es das auch). So findet man massig Material aus zweifelhaften Quellen und weiß hinterher nicht mehr so richtig, was man denken soll. Und weils so schön ist, spendiere ich dem Netz eine weitere fragwürdige Quelle. 😉

Hier erstmal zwei Links, die vielleicht ganz interessant sind:

Folgendes meine ich, herausgefunden zu haben: (mehr …)

Momentan komm ich nicht so ganz hinter dem her, was ich mir eigentlich vorgenommen hab. Hab zur Zeit ne Menge Arbeit und so ist hier im Blog in letzter Zeit kaum was Größeres gelandet. Auch wenn ich dazu schon diverse Ideen und halbfertige Erzeugnisse hab.

Gestern bin ich jedenfalls endlich mal dazu gekommen auf den Call for Papers für die Delphi-Tage 2011 zu antworten. Wenn also alles klappt, d.h. wenn die Organisatoren meinen Vortrag haben wollen, dann bin ich am 10. September also in Köln und werde was übers Bugs erzählen und wie man sie vermeiden kann.

Letztendlich wird das nix Weltbewegendes, keine Forschung, keine neuen Erkenntnisse, dafür aber wohl hoffentlich brauchbare Praxis. Es wird da wohl nen größeren Teil über Exceptions und Assertions geben und wieder ein paar von meinen heißgeliebten Daumenregeln.

Alle Delphianer können sich also mal den 10. September rot im Kalender anstreichen. Ob um mir zu zu hören oder um mir aus dem Weg zu gehen, darf jeder selber entscheiden. 😉

Aber warten wir erstmal ab, ob mein Vortrag überhaupt genommen wird. Da ist noch lang nix entschieden.

Zu Weihnachten erhält man ja manchmal E-Mails mit Weihnachtsgrüßen. Soll vorkommen sowas. Dieses Jahr hab ich aber eine technisch gesehen interessante Mail erhalten. Neben dem eigentlichen Text gabs einen Anhang mit dem Namen „winmail.dat“.

Im Text wird ein „Weihnachtsbrief“ als Anhang erwähnt. Dem Absender konnte ich vertrauen und der Text war auch erkennbar kein Produkt irgendeiner Malware. Also sollte es möglich sein, den „Weihnachtsbrief“ irgendwie lesbar zu machen.
(mehr …)