I spent the day tracing some really bad bugs. Here are some good 1972 quotes from Dijkstra, who recognized the danger of unmanaged software complexity that early.

“Finally, although the subject is not a pleasant one, I must mention PL/1, a programming language for which the defining documentation is of a frightening size and complexity. Using PL/1 must be like flying a plane with 7000 buttons, switches and handles to manipulate in the cockpit. I absolutely fail to see how we can keep our growing programs firmly within our intellectual grip when by its sheer baroqueness the programming language —our basic tool, mind you!— already escapes our intellectual control. And if I have to describe the influence PL/1 can have on its users, the closest metaphor that comes to my mind is that of a drug. I remember from a symposium on higher level programming language a lecture given in defense of PL/1 by a man who described himself as one of its devoted users. But within a one-hour lecture in praise of PL/1. he managed to ask for the addition of about fifty new “features”, little supposing that the main source of his problems could very well be that it contained already far too many “features”. The speaker displayed all the depressing symptoms of addiction, reduced as he was to the state of mental stagnation in which he could only ask for more, more, more… When FORTRAN has been called an infantile disorder, full PL/1, with its growth characteristics of a dangerous tumor, could turn out to be a fatal disease.”

[…]

I now suggest that we confine ourselves to the design and implementation of intellectually manageable programs.

[…] Argument one is that, as the programmer only needs to consider intellectually manageable programs, the alternatives he is choosing between are much, much easier to cope with.

Argument two is that, as soon as we have decided to restrict ourselves to the subset of the intellectually manageable programs, we have achieved, once and for all, a drastic reduction of the solution space to be considered.

[…] We all know that the only mental tool by means of which a very finite piece of reasoning can cover a myriad cases is called “abstraction”; as a result the effective exploitation of his powers of abstraction must be regarded as one of the most vital activities of a competent programmer. […] Of course I have tried to find a fundamental cause that would prevent our abstraction mechanisms from being sufficiently effective. But no matter how hard I tried, I did not find such a cause. As a result I tend to the assumption —up till now not disproved by experience— that by suitable application of our powers of abstraction, the intellectual effort needed to conceive or to understand a program need not grow more than proportional to program length.

[…] Up till now I have not mentioned the word “hierarchy”, but I think that it is fair to say that this is a key concept for all systems embodying a nicely factored solution. I could even go one step further and make an article of faith out of it, viz. that the only problems we can really solve in a satisfactory manner are those that finally admit a nicely factored solution. At first sight this view of human limitations may strike you as a rather depressing view of our predicament, but I don’t feel it that way, on the contrary! The best way to learn to live with our limitations is to know them. By the time that we are sufficiently modest to try factored solutions only, because the other efforts escape our intellectual grip, we shall do our utmost best to avoid all those interfaces impairing our ability to factor the system in a helpful way.

[…] Hierarchical systems seem to have the property that something considered as an undivided entity on one level, is considered as a composite object on the next lower level of greater detail; as a result the natural grain of space or time that is applicable at each level decreases by an order of magnitude when we shift our attention from one level to the next lower one. We understand walls in terms of bricks, bricks in terms of crystals, crystals in terms of molecules etc. As a result the number of levels that can be distinguished meaningfully in a hierarchical system is kind of proportional to the logarithm of the ratio between the largest and the smallest grain, and therefore, unless this ratio is very large, we cannot expect many levels. In computer programming our basic building block has an associated time grain of less than a microsecond, but our program may take hours of computation time. I do not know of any other technology covering a ratio of 1010 or more: the computer, by virtue of its fantastic speed, seems to be the first to provide us with an environment where highly hierarchical artefacts are both possible and necessary.

This quote was originally published in the journal “Commununications of the ACM”, 15 (1972), 10th edition, on pp. 859–866. Sources:

I’m jus’ sitting here, listening to some Reggae on Radio Paradise and having dinner. Doing so, I solved the squaring of the circle problem.

This happened when I was slicing a cylindric piece of sausage. Tired of round slices, I put the piece upright and noticed that the slices are now rectangles of different sizes. Then, I transfered this to the circle as something like an “infinitely thin piece of sausage”. Cutting it in “upright position” (sounds strange with height=0, though) and cutting inifinitely thin slices gives rectangles of height zero, that is, lines. Now, you can connect the lines piece by piece to one infinitely long line, and cut that into an infinite number of other lines, each the lenght of one edge of the desired square. Now put the lines next to each other like matches in a box (but only one layer) and you have the square.

I looked the problem up in Wikipedia afterwards, and solutions like this one are probably meant where they state: “Bending the rules by allowing an infinite number of compass-and-straightedge operations […] also makes squaring the circle possible.” (English Wikipedia, on the impossibility of squaring the circle).

The static reach of the world’s exploitable Uranium is 70 years. Which means it’s fairly easy to solve the problem of nuclear weapons once and for all.

A state would have to devote itself to consume as much nuclear material in reactors as possible. They’d build new reactors and buy nuclear material worldwide. That way we’d get rid of all consumable Uranium worldwide within 15-30 years. Nobody could build a nuclear weapon again. Forever.


Start date: 2009-01-19
Post date: 2009-01-19
Version date: 2009-01-19 (for last meaningful change)

Wooohhaa …. it works 🙂 While in the last few I had to travel through -100°C (felt coldness) weather jus’ to access Internet in my “private Internet café” (a WLAN I’m allowed to participate in), I have now again my own Internet access. Nothing to be that enthusiastic about? Well, wrong 😉 I’m using a new technology, and that’s always reason enough for a technophile to be enthusiastic (for a short time).

The day before yesterday, I  ordered a Option GT 3G+ EMEA (“Option Globetrotter 3G+”) PC-Card from eBay, for 59 EUR (immediate buy, new … you pay less if you have time, but I had not). And before half an hour it arrived, and I configured it, and was connected to the Internet at first try. Using Linux!!! I’m speechless … . I also ordered the relatively new “Simyo Internetpaket 1GB”, which means you pay 9,90 EUR for each 1GB of Internet traffic that you can consume in up to 30 days. That’s, probably by far, the best offer for non-contracted spontaneous mobile Internet use currently. The Simyo card is not yet there, so I used my O2 UMTS SIM card with Homezone Surf Option to connect (which is rated at 0,03 EUR/min). And, according to kppp, I got connected with 1,8 MBit, that is, HSDPA at full speed (see screenshot below). Though, I don’t know if that’s the actual speed I can use … I’ll see … but the 8Kbit/s in the kppp statistic window seem to be not correct either.

Here are the screenshots of my first HSDPA session ever … it worked like a charm 🙂

Ok, now we have three days later, and I’m more sober instead of THAT enthusiastic about the whole matter 🙂 It turned out that the 8kbit/s were the correct value … shame on me, that I cannot subjectively feel the speed difference of 8 kbit/s to 1800 kbit/s Internet … . The 8 kbit/s connection was due to the datacard being in GPRS mode. I finally found the comgt utility to set it to “3G preferred” mode, and then finally made my first UMTS Internet connection ever. After some testing, the speed turned out to be about 386 kbit/s, the typical UMTS rate (no HSDPA in my small town here … how did I dare to expect that …).

Ok, and here’s the real real real screenshot of my first UMTS internet connection ever 😉


Start date: 2009-01-07
Post date: 2009-01-10
Version date: 2009-01-10 (for last meaningful change)

Da gibt’s ein Dokument der Jesus Freaks Remscheid das laut Aussage seines eigenen Footers gern auf Blogs erscheint. Tun wir ihm den Gefallen und setzen es mal auch in diesen Blog. Da gibt es einen Service namens Scribd, mit dem man ganz schick PDFs direkt in den Blog einbetten kann. Demo unten. Hier eine kleine Anleitung:

  1. Man lädt ein Dokument zu Scribd hoch. Danach erhält man einen Link, mit dem man das Dokument auf Scribd ansehen kann. Im vorliegenden Fall diesen hier. Soweit war ja alles noch ok.
  2. Man legt wie gewohnt einen neuen Blog-Post an, z.B. bei Blogger.com, und wechselt dann in den HTML-Editormodus. Bei Blogspot geht das z.B. durch Klick auf diesen Knopf rechts oben über dem Editor-Bereich:
  3. Man öffnet ein neues Browser-Fenster und besucht diesen Link aus Schritt 1.
  4. Dort klickt man dann zuerst auf »Embed« und danach auf den erscheinenden »Copy«-Knopf. Also so:
  5. Jetzt ist der Code in der Zwischenablage, den man in seinen Blog-Post einfügen muss um das PDF einzubetten. Also flugs in das Fenster wechseln, in dem man den neuen Blog-Post angelegt hat, in den Editor-Bereich klicken und den Text aus der Zwischenablage einfügen. Also Strg+V drücken, oder Rechtsklich->Einfügen, oder über das Menü Bearbeiten -> Einfügen.
  6. Jetzt erscheint ein Haufen kryptischer Zeichen, beginnend mit »<a title="View Offener Newsletter Werk 2 document on Scribd" href="http://www.scribd.com/doc/9011087/Offener-Newsletter-Werk-2" style="margin: 12px«. Das ist ok, der Computer versteht das.
  7. »Post veröffentlichen« klicken und das Resultat bestaunen. Es sollte so aussehen wie in diesem Blog-Post unten (sofern ihr das Flash-Plugin auf dem Rechner installiert habt, aber das ist normalerweise immer der Fall.
  8. Wie ihr seht kann man auch noch Dinge dazuschreiben. Davor, auch danach. Und dazu darf man auch wieder in den Modus »Verfassen« des Editors wechseln. Weil es sich da einfach bequemer schreiben lässt.

Offener Newsletter Werk 2

Erster Fortschritt beim Ausbau meines Fernreisemobil-Aufbaus: der Entwurf der Inneneinrichtung steht und muss nur noch geändert werden wenn irgendetwas nicht funktioniert. Meine lieben Leser dürfen mich gerne auf entspr. Punkte im Entwurf hinweisen … ihr könnt dazu einen Kommentar interlassen. Danke für alles Feedback 🙂

Hinweis: Bild ggf. durch Daraufklicken vergrößern. Zur Orientierung: links ist hinten (Rückwand des Lkw später).

Ein paar weitere Hinweise zum Verständnis:

Behälter
Zarges-Kiste Type A 5, 60x40x25cm, Ex Bundeswehr, um 40 EUR/Stück bei eBay, von mir seit Jahren als Standard-Möbelstück verwendet.
Allzweck-Tisch
Klapptisch, Platte aus 18mm Acrylglas, höhenverstellbar, zusammen zu einem weiteren Bett kombinierbar. Hier sind alle drei Tische aufgebaut, es steht entspr. mehr Platz zur Verfügung wenn das nicht der Fall ist.
Mehrzweck-Plattform
Höhenverstellbare Plattform über den am Boden stehenden Behältern, zusammen mit einer Therm-A-Rest Matte als Bett verwendet.
Allzweck-Stuhl
Bürostuhl mit 10cm Vollgummi-Rollen so dass er auch auf Aluminium-Riffelblech (mein Bodenbelag) rollt. Ich wohne seit 3¼ Jahren in einer Einzimmer-Wohnung mit ähnlicher Größe (exkl. Bad) wie meine zukünftige mobile Wohneinheit und habe da die Erfahrung gemacht dass man sich am liebsten rollend zwischen den einzelnen Einrichtungsgegenständen bewegt.
Porta Potti
Kassettentoilette. Die Kassette wird zum Entleeren hygienisch von außen über die Heckgarage herausgezogen.
Nasszelle
Mit Toilette, Duschwanne davor. Tür ist zweigeteilt um beim Öffnen die Eingangstür nicht zu verdecken.
Heckgarage
Grundfläche 80x140cm, Höhe 130cm. Für alle schweren Dinge und Installationen, u.a. Wassertank, Batteriebank usw..

[Stichwörter für die Suchenden: Inneneinrichtung Fernreisemobil, Inneneinrichtung Expeditionsmobil, Inneneinrichtung Wohnmobil praktisch, Grundriss Fernreisemobil, Grundriss Expeditionsmobil, Grundriss Wohnmobil praktisch, Fernreisemobil einrichten, Expeditionsmobil einrichten, Wohnkoffer einrichten, Wohnaufbau einrichten]


Startdatum: 2008-02-23
Publikationsdatum: 2008-03-02
Versionsdatum: 2008-03-02 (für die letzte bedeutsame Änderung)