Schweizer Werbung aus dem Ausland

Das Schweizer Fernsehen ist mit einem neuen Auftritt online und auch die Gestaltung am TV wurde geändert. Heute lese ich jetzt, dass einige der neu eingeführten Töne bereits wieder geändert werden müssen. Grund: sie ähneln dem Swisscom-Jingle. Aufgeregt hat mich dabei folgendes: Die so genannten Werbetrenner werden eingesetzt, um den Übergang von Programm zu Werbung optisch und akustisch anzuzeigen. Kreiert wurden sie laut Durrer von einer Werbeagentur in London, welche das Swisscom-Signet nicht gekannt habe. Die betroffenen Werbetrenner würden in den kommenden Tagen geändert. Erstens bin ich ja der Meinung, dass Werbung für Schweizer Publikum von einer Schweizer Augentur entworfen werden sollte. Beziehungsweise wenigstens von Menschen mit lokalen Kentnissen. Deshalb ist für mich der Entscheid für eine ausländische Agentur schon mal falsch (wobei ich aber natürlich von dem Geschäft so gut wie nichts verstehe). Und zweitens werden meine Gebührengelder an eine ausländische Organisation abgedrückt. Na hört mal her, wieso geht das Geld nicht an eine Schweizer Firma? Weiss jemand, ob es wenigstens eine faire Ausschreibung gab?

December 6, 2005 · Patrice Neff

Language selection

Jürg Stuker wrote his thought about language selection on Web sites (in German). This was followed by some good and constructive comments. Bernhard Seefeld followed this up by commenting on the search.ch solution. A short summary of Jürg’s post: The user decides actively what language he wants (if necessary by showing a language selection page before going to the content) The user only has to decide once The switch is in the top right corner. Always. Don't use flags but text for language switch links The laben consists of at least two characters and is written in the target language (so you always write Deutsch, Français, English, Español, ???, etc.) The language is contained in the URL - don't use query string parameters So far I didn't like the solution which Apache content negotiation dictates. But how it's implemented on search.ch and described in Bernhard's posting, I actually think it makes sense. First let me quote my comment on Jürg's weblog: Gebe dir in fast allem recht. Nur vorgeschaltete Sprachauswahlseite finde ich uncool und ersetze ich mit Auswertung von Accept-Language. Wenn man damit 80 Prozent der Benutzer an den richtigen Ort geleitet hat spart man denen bereits allen einen Klick. Und die anderen 20 Prozent haben auch nicht mehr Klicks als mit Auswahlseite. Ich vermute aber sowieso, dass man mit der Methode weit über 90 Prozent bereits ans richtige Ort leitet, da sehr viele Benutzer den Browser in ihrer Standardsprache verwenden und eben an den Default-Einstellungen nichts ändern. Die Content Negotiation Methode von Apache finde ich eigentlich ganz gut. In der Praxis hat sie aber den Nachteil, dass aktive Sprachauswahl genau nicht berücksichtigt wird. Debian.org verwendet diese Methode. Wenn ich da auf einer Seite von Spanisch (meine Standard-Sprache) auf Englisch umstelle, erscheint die nächste Seite doch wieder auf Spanisch. Das liegt daran, dass Links nie auf eine explizite Sprachversion sondern immer auf die unqualifizierte Version des Dateinamens zeigen. (also auf index.html und nicht auf index.en.html). So to summarize and translate this: I think Jürg's points are valid, that automatic language selection based on HTTP Accept-Language is a good idea (if it can be manually overriden by the user) and that Apache's content negotiation doesn't work in practice while it sounds very nice. As an example of content negotiation gone wrong I used the Debian Web site. My browser is set to Spanish, German and English (in that order). It's this way, because I really want to browse most pages in Spanish when possible (in order to learn that language) but sometimes have to switch, because I don't understand it. And it turns out that on the Debian Web site I have to switch occasionally. Now after I switch from the Spanish language to the English (or German one), all links are language neutral again. So when I click a link I get back to the Spanish version and again have to switch to my current language of choice. The search.ch solution solves this and remembers the user's decision. Links are also automatically constructed to point to the right target. But let me quote Bernie on that: But the interesting details are within the initial detection and the URIs. An URI could end in help.html, but also in help.en.html; exactly how Apache content negotiation suggests, i.e. the first one would trigger automatic language detection, the second one is fixed on english. The important difference is in how the links in these pages look. We took great care (and credit for this goes to Urban Müller) to keep the links on those documents in the same style. That is, the help.html document would come in the user's language (e.g. german) but wouldn't contain language links (e.g. .de.html). Thus, the url would also reflect the information the user put into the system: The language was only set if it was actually overrided by the user. My conclusion is, that automatic language detection is okay (and should be done) but when the browser and the user disagree, the user's decision should be worth a lot more. Though I think I may review this opinion based on Peter Hogenkamp's comments. He knows quite a bit about usability. In the comment he writes about how the Web site of Swiss International Airlines always defaults to English and many users don't switch to their language (this was actually tested with users): Der doofe User kann ja jedes Mal die Sprache wechseln. (De facto macht er das nicht, sondern er kämpft sich durch, selbst wenn er gar nicht so gut Englisch kann, wie wir in einer Testserie für die Netzwoche gesehen haben, mit den zu erwartenden negativen Folgen. But Swiss violates my main point: use Accept-Language for initial language detection. So I'm currently not prepared to accept the example of Swiss as an example against my basic rules. I'm stating them again here for quick reference (and will notify you should I change that opinion). Automatic language detection is okay (and should be done) but when the browser and the user disagree, the user's decision should be worth a lot more.

December 6, 2005 · Patrice Neff

"Don't be Evil" explained

Google’s motto is Don’t Be Evil. Now it’s CEO Eric Schmidt explained this under a different light then I used to look at it: How has "Don't be evil" helped Google? When I showed up, I said, “You’ve got to be kidding.” Then one day, very early on, I was in a meeting where an engineer said, “That would be evil.” It was as if he’d said there was a murderer in the room. The whole conversation stopped, but then people challenged his assumptions. This had to do with how we would link our advertising system into search. We ultimately decided not to do what was proposed, because it was evil. That kind of story is repeated every hour now with thousands of people. Think of “Don’t be evil” as an organizing principle about values. You and I may disagree on the definition of what is evil, but at least it gives us a way to have a very healthy debate. But as you’ve grown, outsiders apply their own view of what is evil and use it to point out your company’s flaws. There’s nothing wrong with that. We believe in that sort of criticism. But the way “Don’t be evil” works is no different from pulling the rip cord on the Japanese assembly line. Any person on the assembly line can pull the rip cord to stop the line. Think of it as employee empowerment. I particularily liked the comparison with Toyota: “Don’t be evil” works is no different from pulling the rip cord on the Japanese assembly line. So under that aspect I believe that many companies, especially the ones who are developing a product, would profit from such a mantra or cord if you like that metapher better. (Link to interview found via SearchEngineWatch)

December 6, 2005 · Patrice Neff

Teacher meeting

I just had a meeting with all of the computing teachers at the Diego Thomson. Actually it was supposed to be with all of them, but only two (of about five or so) showed up - well it’s a start. With the people who were there we had some great discussion about Open Source education at the Diego and about how I can proceed with my project. It was at times a bit difficult to follow the discussion, but I believe I got most of the points. It was also an opportunity to ask some question. I was mainly interested in how teaching with the current (quite new) curriculum works. It turns out that there are still some reservations about replacing Visual Basic (from the old curriculum) with Python (the new curriculum). There seem to be two main points about that. First, the existing teachers don’t know Python as well as Visual Basic. That’s easy to solve and the headmistress made it very clear that the teachers must either adapt to the new curriculum or be replaced with teachers who are able to teach it. The second point was, that they fear Python does not have the commercial backing so that students could then go on and work for some company. Well first, Visual Basic is not really commercially used. I don’t know where they got that idea. Second, Python is used by many companies (also see the Job openings). And I also explained to them that Python is probably the best language to teach. It teaches clear style (indentions for example) and is easily understood (though that’s not that true for non-English-speaking people). Hm, what about a Spanish translation of the Python programming language… :-) “Hello world” would then look like ...

December 5, 2005 · Patrice Neff

Trouble understanding a Knuth algorithm

I’m currently working through chapter 2.5 (Dynamic Storage Allocation) of The Art of Computer Programming. While working through the algorithm A on page 437 (First-fit method) I have stumbled over a problem understanding it. The algorithm itself is very clear and straight-forward. But the description of the step A1 gives me a puzzle. I’ll reprint here the whole algorithm in Knuth’s wording. Algorithm A (First-fit method). Let AVAIL point to the first available block of storage, and suppose that each available block with address P has two fields: SIZE(P), the number of words in the block; and LINK(P), a pointer to the next available block. The last pointer is ?. This algorithm searches for and reserves a block of N words, or reports failure. A1. [Initialize.] Set Q ? LOC(AVAIL). (Throughout the algorithm we use two pointers, Q and P, which are generally related by the condition P = LINK(Q). We assume that LINK(LOC(AVAIL)) = AVAIL.) A2. [End of list?] Set P ? LINK(Q). If P = ?, the algorithm terminates unsuccessfully; there is no room for a block of N consecutive words. A3. [Is SIZE enough?] If SIZE(P) ? N, go to A4; otherwise set Q ? P and return to step A2. A4. [Reserve N.] Set K ? SIZE(P)-N. If K = 0, set LINK(Q) ? LINK(P) (thereby removing an empty area from the list); otherwise set SIZE(P) ? K. The algorithm terminates successfully, having reserved an area of length N beginning with location P+K. Now what puzzles me is the assertion in step A1: We assume that LINK(LOC(AVAIL)) = AVAIL. The explanations for LOC on page 235 reads as follows: If V is the name of some value held in a memory cell, LOC(V) denotes the address of that cell. Consequently if V is a variable whose value is stored in a full word of memory, we have CONTENTS(LOC(V)) = V. So this whole assertion currently only would make sense if it was LINK(LOC(AVAIL)) = P. Could any of my readers here explain me what I don't get in that explanation. Please enlighten me.

December 3, 2005 · Patrice Neff

New apartment

This week we looked for a new apartment. Because the family I’m currently staying with will have a full house over christmas, I’m moving. I now found something yesterday. It’s in the district of Aurora in Miraflores, quite near to my current guest family. It has a nice garden, a kitchen I can use and enough storage to have a bit more order than now. The Swiss club is quite near and I was recommended to buy myself a season pass for the club. Reason: they have a swimming pool. I’m moving in next Friday and will then be able to provide you with photos. ...

December 3, 2005 · Patrice Neff

Places where Ajax should be used

Alex Bosworth posted a list of places where Ajax should be used and where it should not. Just the basic list here, head over to Alex to read the details: Here are places Ajax should now be required in a web application: Form driven interaction Deep hierarchical tree navigation Rapid user-to-user communication Voting, Yes/No boxes, Ratings submissions Filtering and involved data manipulation Commonly entered text hints/autocompletion Here are some places Ajax shouldn't be used: Simple forms Search Basic navigation Replacing a large amount of text Display manipulation Useless widgets I currently can't think of any obious disagreements to his points.

December 2, 2005 · Patrice Neff

Rauchfreie Räume befürwortet

Egal ob Raucher oder Nichtraucher - die Mehrheit der Schweizer Bevölkerung befürwortet rauchfreie Räume. Drei von vier Personen unterstützen ein Rauchverbot in Räumen, die öffentlich zugänglich sind. Das geht aus einer Studie hervor, die die Krebsliga am Freitag in Bern vorstellte. Das berichtet die NZZ. Vielleicht kriegen wir es in der Schweiz ja wirklich mal hin. Aber in Restaurants sieht es noch nicht so gut aus: Geteilt sind die Meinungen, wenn es um ein Rauchverbot in Cafés und Restaurants geht. Insgesamt befürwortet zwar eine Mehrheit (64,1%) ein solches Verbot. Aber unter den Rauchern steht nur eine Minderheit (34%) dahinter.

December 2, 2005 · Patrice Neff

Cannabis erhöht Unfallgefahr

The researchers found the risk of being responsible for a fatal crash increased as the blood concentration of cannabis increased. While even small amounts of cannabis could double the chance of a driver suffering an accident, larger doses could more than triple the risk. Ein französisches Institut hat eine Studie basierend auf 10,748 Menschen erstellt und den Einfluss von Cannabis auf die Unfallgefahr getestet. Wie genau die Aussage zusammengestellt wurde, weiss ich nicht. Denn von den 10,748 Menschen waren alle in einem Unfall verwickelt. Mein offenbar nicht funktionierender Menschenverstand sagt mir aber, dass doch da theoretisch eine Kontrollgruppe vorhanden sein müsste. So oder so wird es wohl gefährlicher auf der Strasse, sollte Cannabis in der Schweiz je legalisiert werden. Hoffentlich denkt man dann daran, es beim Fahren zu verbieten und das auch durchzusetzen.

December 2, 2005 · Patrice Neff

Schlechte Führung

Ein Bundesrat sollte eigentlich in der Lage sein, seine Angestellten zu aller Zufriedenheit zu führen. Wenn man die Bundesräte nach diesem Masstab misst, dann schneiden die beiden neuen bürgerlichen sehr schlecht ab. Kritisiert wurden vor allem die Bundesräte Hans-Rudolf Merz und Christoph Blocher. «Ein Arbeitgeber, der seine Angestellte in die Pfanne haut - das gibt es nur beim Bund», sagte Müller. «Der Appenzeller schmeckt bitter» und «Blocher in den Nationalrat» war auf mitgeführten Transparenten zu lesen. Merz, der sich während der Kundgebung kurz vor den versammelten Kundgebungsteilnehmern gezeigt hatte, wurde heftig ausgepfiffen und ausgebuht. Er verliess die Kundgebung ohne das Wort an die Demonstranten zu richten. Entnommen aus dem NZZ-Artikel Bundespersonal hat genug von Blocher und Merz. Das Personal hat heute (Donnerstag) Nachmittag wieder einmal gegen die Spartpolitik demonistriert.

December 1, 2005 · Patrice Neff