21 September 2007

kanadische Beobachtungen

Hallo Leute,

da ich mich so selten mit Neuigkeiten bei Euch melde, hier einfach mal eine beliebige Auswahl von Sachen. Wer mehr wissen will, darf Skype benutzen. Mein Telefon ist dem Sparfuchs zum Opfer gefallen. Ich versuche nämlich nur allein von meinem Stipendium zu leben. (Und will mal aus Neugier probieren, ob ich auch wieder mal ohne Handy leben kann. Und ohne meinen Laptop mit zu Vorlesungen zu nehmen, wie es so viele andere hier machen.)
  • Toronto erinnert mich in vielen Dingen an Taipei: viele Geschäfte sind Abends bis 9 oder 10 Uhr offen, einige Supermärkte 24 Stunden rundum.
  • Die Fußgänger-Ampeln sind bei Grün mit einem Countdown ausgestattet, kurz nach der Null kommen die Autos, so dass sich man immer weiß, ob man es noch 'rüber schafft und falls ja, wie schnell man gehen muss.
  • Das Kaufhaus, wo ich am ersten Tag meine Bettwäsche gekauft habe, ähnelte im Stil total demjenigen in den unteren Etagen von Wan-Tings Wohngebäude.
  • Genau wie in Taipei gibt es lauter 7-Eleven-Shops und andere so genannte Convenience-Stores, wo man außer dem täglichen Bedarf an Lebensmitteln und einem Geldautomaten auch warme Würstchen, Kaffee-zum-mitnehmen und andere Sachen zum Sofort-Verzehr bekommt.
  • Überall gibt es Klima-Anlagen, obwohl es hier überhaupt nicht heiß, sondern nur schön angenehm warm ist. In den Gebäuden hingegen ist es meist zu kühl für kurze Sommerkleidung, so dass ich oft einen Pulli mitnehme, um ihn drinnen anzuziehen. Das finde ich total blöd!
  • Es gibt eine große China-Town, gleich hier um die Ecke, wo es nicht nur lauter tolle Chinesische Restaurants und Läden gibt, sondern die Preise auch viel näher am Niveau Taipei, als am Nieveau Toronto sind.
  • Außer der China-Town, gibt es aber auch griechische, italienische, koreanische, jüdische und wahrscheinlich noch eine ganze Menge anderer Subkultur-Viertel. Was ich richtig cool finde, ist dass in diesen Vierteln sogar die Straßennamen sowohl in Englisch als auch in der Sprache des Viertels geschrieben (zum Beispiel in chinesischen Schriftzeiche oder in der lustigen griechieschen Schrift) stehen.
  • Milch gibt es in Tüten und dann ist sie viel billiger als Tetrapaks.
  • in unserer Wohnung, gab es nicht nur einen Reiskocher, der niemandem mehr gehörte, sondern auch einen Wasserkocher und eine Art. Plastik-Milchkanne, in die man die offenen Tüten hinstellt, damit sie aufrecht stehen bleiben und nicht auslaufen. Alle drei habe ich schon saubergemacht und verwende sie jetzt.
  • Ich habe schon zwei Mal süße-Soja-Suppe (Taiwanesische Rezept) mit dem Reiskocher gemacht. Das erste Mal musste ich wegwerfen, aber das zweite Mal war total lecker!
  • Mit Wegwerf-Besteck werfen die Kanadier fast noch mehr um sich, als die Taiwanesen (dort gibt es zu manchem Fast-food einfach nur einen Zahnstocher, auf dem man die Bröcken aufspiest und isst). Deswegen habe ich die Initiative ergriffen und ein Geschirrtuch zur Besteck-Tasche umgenäht und kann jetzt immer mein eigenes Besteck mitnehmen. Ein richtig gutes Camping-Besteck wollte ich mir ja schon für meine Reisen als Berater zulegen, habe aber nie etwas gutes gefunden. Nun also diese schöne, einfach, umweltfreundliche Lösung. Und die Aufmerksamkeit meiner Mitmenschen ist mir wahrscheinlich garantiert. (Übrigens ist die Informatik-Fakultät jetzt auch umweltfreundlich geworden und statt der Plaste-Becher am Kaffee-Automaten hat jetzt jeder eine persönliche Tasse mit der Aufschrift "Department of Computer Science" bekommen.
  • Obwohl Toronto ungefähr so groß wie Berlin ist, gibt es hier nur dreieinhalb U-Bahn-Linien und keine S-Bahn. Wenigstens gibt es in der Innenstadt noch einige Straßenbahnen. Ich wohne auch mitten auf dem Campus und das ist sehr nah am Stadtzentrum (und Hafen), so dass ich bis jetzt noch keine U-Bahn/Tram/Bus gebraucht habe.
  • Das bemerkenswerteste am Stadtbild von Toronto ist, dass selbst in City-nahen Bereichen Stadt die Gebäude nur zwei Etagen hoch sind und einen eher kleinstädtischen Character haben (keine durchgehende Fassade mehrere Häuser, unterschiedliche Höhen, ...).
  • Genau wie in Taipei, liegen fast alle Straßen in der Stadt auf einem rechtwinkligen Raster entweder Nord-Süd (vom See wegwärts, mit leichter Steigung) oder Ost-West, quasi parallel zum Ufer. Die Ost-West-Straßen werden in der Mitte von der "Yonge-Road" geschnitten und wenn der Straßenname auf beiden Seiten gleich ist, wird die Straße in eine XY East Road und XY West Road geteilt. Die Hausnummern beginnen "in der Mitte" bei Yonge mit 1. Genau wie in Taipei! Scheinbar werden die Hausnummern auch nach laufenden Metern Fassadenlänge vergeben, so dass zwischen zwei größeren Gebäuden meist auch ein Abstand in den Nummern ist. Deswegen sind dreistellige, manchmal sogar vierstellige Hausnummern auch ziemlich normal (viele Straßen behalten ihren Namen über mehrere Kilometer Länge). Yonge Street wird auch als die längste Straße der Welt bezeichnet, weil sie beginnend in Toronto als Highway 11 durch halb Kanada weitergeführt wird und dann 1.896 km lang ist.
  • Nun noch eine Sache, die überhaupt nicht wie in Taipei ist und überhaupt nicht wie irgendeine Stadt, die ich kenne. Nahe der Innenstadt verläuft der Verkehr durch einige größere Straßen, die Teil des Rechteck-Rasters sind und in diesen Straßen sind auch viele Geschäfte, so dass es sehr städtisch aussieht. In den kleineren Straßen dazwischen sieht es allerdings überhaupt nicht aus, wie eine Großstadt, sondern eher wie ein total ruhiger Vorort: keine Geschäfte, keine Menschen auf der Straße, nur lauter kleine Wohnhäuser mit Vorgarten, ein paar Bäume. Unglaublich. Das ist vor allem für Radfahrer total schön, weil man dann in der kleinen Straßen parallel zu den großen durch die halbe Stadt fahren kann und den Verkehr nur ab und überquert aber nie neben sich hat. Photos davon muss ich demnächst mal machen.
so viel für diesmal!

Why for(;;)-loops are bad

Hi,

I am talking about the C programming language here, World's most portable assembling language. I don't object against for-loops that are different from C's (e.g. when you can write "for (i in collection) ...").

My point is simple. Consider the general form of the for(;;)-loop:
for(INIT; COND; DELTA) {BODY}

The semantics of that construct is:
INIT ; while(not COND) {BODY; DELTA}

Please note, that the last part is not {DELTA; BODY}. Or is it? Are you sure, you will always remember that well? Which one it is.

Why should I bother to remember a construct with four parts, when the construct with three parts (namely the equivalent "while" loop) will always work?

Of course, the for(;;)-loop is a nice idiom when doing mundane loops over data structures or simple counting from 1 to n. Or was it from 0 to n? Or to n-1? When doing it with "while" the one-off's are always easier to spot, because the semantics is very clear (invariants help).
If you really want an idiom, encapsulate the loop in the data structure module (ADT, class, ...). That's what functional and OO languages are good at. But when doing assembly-programming we better mind our fence-posts.