Archiv Dezember 2005

Freitag, 30. Dezember 2005

Was tun gegen den Neujahrs-Kater?

Gerade noch rechtzeitig:

Before bed, take milkthistle [dt. Mariendistel – Quelle]. It will help your liver process the alcohol and its derivates faster. Also, take b vitamins. Antioxidants help protect your cells from the damaging chemicals that metabolism of alcohol creates. That’s basically it. Drink some water if you are dehydrated.

Quelle: Hangovers: drunken readers offer hope

Kollege Sedlacek Jr. schwört darauf, vor dem ins Bett gehen noch ein Aspirin einzuwerfen. Und natürlich schadet es auch nicht, wenn man vor dem Ausflug ins Land der Träume 1.5l Mineralwasser … säuft.

Was aber all diese Vorsichtsmassnahmen ad absurdum führt ist das von meinem Vater als „müschle“ (= mischeln) bezeichnete vorgehen beim Konsum alkoholhaltiger Getränke. Wer sich durch die ganze Barkarte säuft, dem ist nicht mehr zu helfen. Ich habe meine Lehren daraus gezogen und halte mich in 95% der Fälle an den guten, alten Gerstensaft. Kein Whiskey-Cola darüber, kein Gin-Tonic darunter. Jägermeister muss nach den Eskapaden in Wengen auch aussen vor bleiben. Der Erfolg lässt sich sehen: Ich musste mir die Abende seit Jahren nicht mehr „durch den Kopf“ gehen lassen (= kotzen).

Weitere Lacher:

Water is the one single, safe and certain answer! Drink as much water as your stomach can take just before getting to bed, and you’re brand new in the morning. That’s all there is to it. Of course, there’s the issue of forgetting to drink it — but that’s not the cure’s problem, it’s the user’s

A quart of water (yes that means be near the loo or a convenient bush) every 3-4 oz hard liqour or 6 pack of beer help alot. Hangovers result from the body’s need of large quantities of water to process alcohol.

Ich suche noch einen freiwilligen, der das folgende Mal ausprobiert:

Best way to not be affected (besides absitence) is to down a 8 oz bottle of olive oil every couple hours.

Tags:
Labels: Uncategorized

Keine Kommentare | neuen Kommentar verfassen

Freitag, 30. Dezember 2005

Peugeot – two more years!


Fahrzeug-Prüfbericht
Originally uploaded by emeidi.

Habe gerade die Info bekommen, dass mein Peugeot die MFK bestanden hat. Somit weitere zwei Jahre Umweltverschmutzung (Darud) resp. minimierter Insassenschutz (Sedlacek) resp. keine Frauen (mangels optischer Ausstrahlung des Fahrzeugs) resp. Fahren mit Handschuhen im Winter …

Der Prüfbericht wird – falls greifbar – für alle misstrauischen Seelen (Darud) hier aufgeschaltet werden.

Nachtrag: Hiermit geschehen.

Tags:
Labels: Uncategorized

Keine Kommentare | neuen Kommentar verfassen

Freitag, 30. Dezember 2005

eMeidi.com goes AJAX

Gestern Abend lieferte ich mir einen Wettstreit mit Kollege Burgdorfer – wer springt als erstes auf den AJAX-Zug (oder doch eher: -Hype?) auf und baut die erste AJAX-Anwendung? Nun, ich habe gewonnen – jedenfalls mit Blick auf die Geschwindigkeit der Umsetzung. Er habe aber eine Idee in Petto, die ihn zum Millionär machen werde. Deren Umsetzung ist für diese Wochenende geplant. Mal schauen, ob er bald in die Liga von Larry Page und Sergey Brin aufsteigen wird. Ich wünsche ihm jedenfalls viel Erfolg auf dem Weg zur ersten (mit AJAX generierten) Million.

Anwendung

Doch wo findet sich nun AJAX auf eMeidi.com? Es ist die Jukebox. Diese updated sich nun alle 15’000 Millisekunden und zeigt somit immer relativ akkurat auf, welche Musik bei mir in iTunes gerade läuft. Die Information gelangt mittels einem AppleScript auf meinen Server: Das AppleScript liest den aktuellen Track aus iTunes aus und übermittelt dessen Angaben via GET an ein PHP-Script auf meinem Server. Das PHP-Script generiert aus den GET-Variablen eine simple Text-Datei, die HTML-Code enthält. AJAX macht schliesslich nichts anderes, als diese Text-Datei zu inkludieren. Wieso AJAX? Weil die Benutzer dann meine Homepage nicht jede Minute manuell nachladen müssen, um einen Songwechsel zu bemerken. Ab sofort geht das nämlich vollautomatisch.

Zugegeben: Nichts bahnbrechendes. Aber es geht ja primär darum, mit neuen Techniken in Kontakt zu kommen. Man lehrt ja gerade in unserem Business nie aus …

Umsetzung

AppleScript

Als Erstes mal den AppleScript-Code:

on idle
 set strServer to "http://www.domain.com/tracker.php"
 
 set strTitle to ""
 set strArtist to ""
 set strAlbum to ""
 
 set intIsRunning to 0
 set intIsPlaying to 0
 
 try
  tell application "System Events" --no more using the finder
   if (get name of every process) contains "iTunes" then
    set intIsRunning to 1
   end if
  end tell
  
  if intIsRunning = 1 then
   tell application "iTunes" --start talking to iTunes
    try
     if player state is playing then --now we want to see if iTunes is even playing   
      set intIsPlaying to 1
      if exists (address of current track) then
       --it's an internet stream
      else
       set strTitle to the name of the current track
       set strArtist to the artist of the current track
       set strAlbum to the album of the current track
      end if
     end if
    end try
    
   end tell
  end if
  
 end try
 
 set strURL to strServer & "?playing=" & intIsPlaying & "&artist=" & urlencode(strArtist, true, true) & "&album=" & urlencode(strAlbum, true, true) & "&title=" & urlencode(strTitle, true, true)
 
 set shellCommand to "/usr/bin/curl \"" & strURL & "\""
 do shell script shellCommand
 
 return 15
end idle

on urlencode(this_text, encode_URL_A, encode_URL_B)
 set the standard_characters to ¬
  "abcdefghijklmnopqrstuvwxyz0123456789"
 set the URL_A_chars to "$+!'/?;&@=#%><{}[]\"~`^\\|*"
 set the URL_B_chars to ".-_:"
 set the acceptable_characters to the standard_characters
 if encode_URL_A is false then ¬
  set the acceptable_characters to ¬
   the acceptable_characters & the URL_A_chars
 if encode_URL_B is false then ¬
  set the acceptable_characters to ¬
   the acceptable_characters & the URL_B_chars
 set the encoded_text to ""
 repeat with this_char in this_text
  if this_char is in the acceptable_characters then
   set the encoded_text to ¬
    (the encoded_text & this_char)
  else
   set the encoded_text to ¬
    (the encoded_text & encode_char(this_char)) as string
  end if
 end repeat
 return the encoded_text
end urlencode

on encode_char(this_char)
 set the ASCII_num to (the ASCII number this_char)
 set the hex_list to ¬
  {"0", "1", "2", "3", "4", "5", "6", "7", "8", ¬
   "9", "A", "B", "C", "D", "E", "F"}
 set x to item ((ASCII_num div 16) + 1) of the hex_list
 set y to item ((ASCII_num mod 16) + 1) of the hex_list
 return ("%" & x & y) as string
end encode_char

Download: getsonginfo-clean.scpt

ACHTUNG: Einzelne Bausteine habe ich aus dem Netz zusammengeklaubt. Dank gebührt all denen, die etwas an das Scriptlein beigesteuert haben.

Wichtig ist zum einen strServer (PHP-Script auf dem Server) und return 15 (Wartedauer in Sekunden, bis die Infos erneut abgefragt und übermittelt werden).

Prototype

Natürlich hätte ich die JavaScript-Library von Grund auf neu programmieren können, die AJAX und andere nützliche Hilfsmittel zur Verfügung stellt, um Web 2.0-Anwendungen zu realisieren. Ich habe dann der Einfachheit halber doch auf das JavaScript-Framework Prototype zurückgegriffen - insbesondere die Cross-Browser-Kompatibilität ist hier exzellent umgesetzt, weshalb man sich darüber kaum mehr Gedanken machen muss.

HTML/JavaScript

Prototype wird normal in index.html eingebunden:

<script language="javascript" src="/inc/prototype.js" type="text/javascript"></script>

Der Übersichtlichkeit halber habe ich dann meinen eigenen Code in ein separates JavaScript-Include ausgelagert. Dank Prototype reicht ein Sechszeiler aus, um die Rotation zum Laufen zu bringen:

function updatePlaylist() {
 var strElement = 'playlist';
 
 new Ajax.Updater(
  {success: strElement},
  'subdomains/dev/itunes.txt',
  {asynchronous: true}
 );
 
 window.setTimeout("updatePlaylist()",15000);
 
 return true;
}

Es gäbe auch ein Objekt Ajax.PeriodicalUpdater, aber leider fand ich im Netz gerade nirgends eine aufschlussreiche Beschreibung, weshalb ich auf das gute, alte setTimeout zurückgegriffen habe. Klappt auch damit wunderbar.

Fallstricke

Obwohl das Endresultat mit sechs Zeilen simpel daherkommt, habe ich mir daran doch etwa eine Stunde die Zähne ausgebissen. Leider verfügt Prototype über keine sehr guten Debugging-Features (oder ich habe diese schlicht nicht entdeckt). Rückblickend vermute ich eine falsch formulierte URL (http://...). Als ich die URL relativ angegeben habe, funktionierte alles plötzlich wie geschmiert.

Nachtrag: Ich habe jetzt herausgefunden, wieso es mit der URL nicht geklappt hat - ich habe mit einer Seite auf www.eMeidi.com auf dev.eMeidi.com zugreifen wollen. Das geht anscheinend nicht:

Can't access domains other than the calling domain

Quelle: AJAX Presentation Outline.

Als Nachschlagewerk empfehle ich script.aculo.us sowie AJAX Tutorial with Prototype - .cfm lebt noch? Egal, Pete hat eine sehr simple, aber bemerkenswert handliche PLZ-Nachschlagefunktion mit AJAX generiert.

Tags:
Labels: Uncategorized

Keine Kommentare | neuen Kommentar verfassen

Donnerstag, 29. Dezember 2005

Billig(er) hosten

Ein aktueller Überblick über Günstig-Hoster in der Schweiz. Wichtig sind aus meiner Sicht:

  • IMAP
  • unlimitierte Mailboxen (POP, IMAP, Forwards)
  • PHP4
  • MySQL
  • versch. FTP-User
  • Zugriff auf Log-Files sowie AWStats oder zumindest Webalizer
  • optional Mail-Filter

Hier also die Liste:

  • Genotec161.40 SFr./Jahr (inkl. MwSt.)

    Dort lasse ich eMeidi.com hosten (und auch dieses Blog, dank mehreren FTP-Usern). Heute würde ich aber meine Web-Site kaum noch dort hosten lassen. Sehr guter Spam-Filter u.a. dank Grey- und Blacklisting. Fast kein Spam-Aufkommen. Da ich einen Wechsel zu einem paar Franken günstigeren Anbieter scheue, werde ich wohl auch weiterhin Kunde bleiben.

  • Hostpoint118.80 SFr./Jahr (inkl. MwSt.)

    Der Hoster meines Vertrauens. Fast alle meiner Kunden-Sites werden mittlerweile bei Hostpoint gehostet. Sehr gutes Preis/Leistungsverhältnis. Kritikpunkte: PHP läuft als CGI, php_flags in .htaccess-Dateien funktionieren nicht. In jedes Verzeichnis muss deshalb die php.ini mit den Änderungen kopiert werden (!) (bspw. magic_quotes = off). Sehr mühsam! Der Spam-Filter greift nicht für Forwards, Greylisting sei keine Option, wurde mir beschieden.

  • Cyon82.80 SFr./Jahr (inkl. MwSt.)

    Kollege Liechti hat mich auf diesen Anbieter aufmerksam gemacht. Die Web-Site sieht sehr schick aus – erinnert an nothing (Nachtrag: Das Design ist von nothing). Auch das Angebot schaut ordentlich aus. Leider noch keine Erfahrung mit diesem Anbieter – ein Versuch wäre es auf jeden Fall wert.

  • Hostorama48.00 SFr./Jahr (inkl. MwSt.)

    Auch hier geht wieder Dank an Kollege Liechti. Wer gedacht hätte, dass die 6.90 SFr./monatlich von Cyon nicht mehr zu unterbieten gewesen wären, hat sich getäuscht. Auch mit diesem Anbieter habe ich (noch) keine Erfahrungen sammeln können.

  • Hotspace41.00 SFr./Jahr (MwSt. unklar)

    Von einem Blog-Leser (spot) vorgeschlagen. Das wird ja immer besser!

Tags:
Labels: Uncategorized

Keine Kommentare | neuen Kommentar verfassen

Mittwoch, 28. Dezember 2005

Partyguide definitely sucks


partyguide
Originally uploaded by emeidi.

Von einem versierten Kollegen (Codename: EMC) habe ich gerade folgende URL zugeschickt erhalten:

Google-Suche

Test- und Produktivsystem

Googles Cache liefert manchmal Kompromittierendes zutage *händereib* Die PHP-Warnings lassen erkennen, dass anscheinend bei den Bastlern von Partyguide gar nicht so selten ungetesteter Code auf das Produktivsystem gelangt. Mir wäre so etwas mehr als peinlich … Vor allem, wenn da täglich tausende Besucher vorbeischauen.

Wie wäre es, wenn die Partyguide-Entwickler Test- und Produktivsystem trennen würden? Jungs, ich wäre für eine weitere Gönner-Aktion.

Welche Dateiendung hätten’s denn gerne?

Wer sich gezielt achtet, erkennt die kreative Vielfalt, die auf den Partyguide-Server herrscht: Manchmal enden PHP-Scripts auf .php, manchmal dann doch lieber .php3 – und weil’s zu Dritt am Schönsten ist darf auch das totgeglaubte .phtml nicht fehlen.

Auch für diesen Tipp danke ich für den Hinweis meines Informanten.

Fazit

Partyguide – weiter so! Eine Due Diligence-Prüfung eurer Technik würdet ihr wohl aber nicht überstehen … Schade! Aber ihr habt Wichtigeres zu tun, stimmts?

Tags:
Labels: Allgemein

Keine Kommentare | neuen Kommentar verfassen

Mittwoch, 28. Dezember 2005

Effiziente Web-Projekte anhand von Partyguide, Teil 2

In meinem ersten Teil der hier vorliegenden Serie, die sich an fortgeschrittene Web-Developers richtet, habe ich bereits einige fundamentale Fehler aufgezeigt, die auf Partyguide anzutreffen sind. Diese Kritik liesse sich ohne weiteres auf viele andere Web-Projekte übertragen – auch Sites von mir, die mehrere Jahre auf dem Buckel haben, könnten an der einen oder anderen „Krankheit“ leiden. Ich versuche aber, ständig an meinem Code zu feilen und ihn zu verbessern. Deshalb sind die meisten Sites, die ich dieses Jahr für Kunden erstellt habe, denn auch mit Hilfe von CSS2 realisiert. Das altgewohnte „Tabellendesign“ konnte ich so erfolgreich in Pension schicken.

Den vorigen Artikel habe ich auch an die Verantwortlichen geschickt, wurde aber mit meinem Votum aber nicht ganz ernst genommen:

Was clientsite programming anbelangt… Ist 2. Priorität. Erste Priorität ist, dass die SQL Statements/Serverkonfigurationen so sind wie sie sollten.

Aber vielleicht bist du ja noch zu unerfahren um irgendwie was über „prioritäten“ zu wissen ;-)

Quelle: Mail von Philippe Knaus vom 28. Dezember 2005

„If it ain’t broken, don’t fix it“ oder schärfer ausgedrückt: „Es läuft ja, wo ist das Problem?“. Der Unterschied zwischen laufen und performant laufen kann aber gross sein. Meine These lautet deshalb: Bei Partyguide werden unnötigerweise Ressourcen verschwendet, weil man lieber neue Features einbaut, anstelle den bestehenden Code zu optimieren (Flickr.com, mein momentaner Star am Web-Himmel kriegt beides unter den Hut – dort sitzen aber auch Profis dahinter).

Übrigens: Wikipedia vermeldet zum Thema ‚Optimieren‘ treffenderweise:

In computing, optimization is the process of modifying a system to improve its efficiency.

Quelle: Optimization (computer science)

Im zweiten „Hands-on-Partyguide“-Teil habe ich wieder zwei Don’ts gefunden, die als gutes Lehrstück herhalten.

On-The-Fly Kuchendiagramm

Im Laufe der Zeit hat PHP gelernt, bei der Erstellung von Grafiken behilflich zu sein. Partyguide nutzt dies aus, um ein Kuchendiagramm zu generieren (s. rechts). Benutzer mit einem Profil sehen auf diese Weise sofort, wieviele Bewertungen („Wow“, „Herzig“, „Nicht mein Typ“) sie (relativ) erhalten haben.

Das Generieren von Grafiken ist speicher- und CPU-intensiv. Während ich das letzte Mal den Fokus eher auf Traffic-Verminderung gelegt habe, geht es in diesem Abschnitt darum, den Performance-Hunger von PHP-Scripts zu mildern.

Das Kuchendiagramm wird bei jedem Aufruf des Profils einer Person angezeigt. Dazu werden die von anderen Benutzern erhaltenen Bewertungen aus der Datenbank gelesen, aggregiert und an ein PHP-Script weitergegeben, das aus den übergebenen Daten ein Kuchendiagramm hervorzaubert:

<img  src="user_details_diagramm.php?
rate1=21.276595744681&
rate2=125.95744680851&
rate3=212.76595744681"
width="100" height="100" border="0" align="left">

Int oder Float?

Auf den ersten Blick fällt dem geübten Auge auf, dass die Zahlen recht lang daherkommen. Muss das so sein? Nein. Denn schliesslich benötigt ein Kuchendiagramm keine Präzision auf über 10 Nachommastellen genau. Optimal wäre es, wenn das Script, dass die URL generiert, die Zahlen gleich in Prozente umwandeln würde. Dann würden sage und schreibe NULL Nachkommastellen reichen, um eine Grafik herzuzaubern.

Übrigens – die URL kann man ohne weiteres in eigene Projekte einbinden und so Kuchendiagramme nach eigenem Gusto anzeigen. Ob dies viel bringt, ist eine andere Frage … Ich jedenfalls stelle das obige Bild genauso dar – ich binde es direkt vom Partyguide-Server ein. Mal schauen, wie lange es geht, bis die Entwickler einen Referer-Filter einbauen *smile*

Statisch oder Dynamisch?

Abgesehen von zu langen Fliesskommazahlen stellt sich mir die viel brennendere Frage, ob man diese Kuchendiagramme wirklich bei jedem Aufruf dynamisch generieren sollte? Wäre es performance-mässig nicht deutlich intelligenter, auf eine statische Grafik zu verweisen?

Dies ist ohne weiteres machbar – und würde den Web-Server entlasten. Anstelle ein PHP-Script aufzurufen, dies durch den PHP-Parser zu jagen, die GDlib (oder was für eine Grafik-Bibliothek auch immer bei Partyguide im Einsatz steht) zu starten, das Bild zusammenzusetzen und die Binärdaten zum Client zu senden würde es ausreichen, wenn Apache ein im Filesystem liegendes GIF oder PNG an den Browser zurückzusenden.

In – sagen wir – 80% der Fälle ist es nämlich gar nicht nötig, das Bild neu zu berechnen, weil das Profil keine neuen Bewertungen erhalten hat. Zudem verändern sich die Diagramme von Accounts mit sehr vielen Bewertungen auch weniger rasch – wenn zu 1000 Bewertungen eine weitere dazu kommt, bedeutet dies Änderungen im Promillebereich, die bei einer derart kleinen Grafik kaum zu erkennen wäre.

Ich würde deshalb ein PHP-Script schreiben, dass ausschliesslich beim Eingehen einer neuen Bewertung aktiv wird. Das Script würde durch eine User-Interaktion („Bewertung“) angestossen und würde das bestehende, statische GIF, das mit der User-ID irgendwo Filesystem des Servers liegt, löschen und sofort darauf ein neues Bild aus den neuen Daten generieren. Apache würde es einem danken.

GET-Variablen

Bei weiteren „Untersuchungen“ am HTML-Code ist mir zudem noch etwas aufgefallen. Die Entwickler scheinen keiner konsequenten Linie zu folgen, wie GET-Variablen benannt werden. Für mich ist eine konsequente Durchsetzung von Namenskonventionen das A und O des Programmierens. Wer dies als lästige Erfindung von Klugscheissern empfindet, sollte sich einen anderen Job suchen. Insbesondere gerade wenn man im Team an einem Projekt arbeitet, sind solche Konventionen unbedingt notwendig:

URL, um das Profil eines Users anzuzeigen:

http://www.partyguide.ch/user_details.php?my_pic_member_id=30689

Andererseits verwendet man innerhalb dieser Rubrik dann etwas völlig anderes:

URL, um hochgeladene Bilder eines Profiles anzuzeigen:

http://www.partyguide.ch/user_details_fotos.php?username=mad4you

Fürchterlich! Einerseits heissen die GET-Variable unterschiedlich, bezeichnen aber schlussendlich denselben user, andererseits scheint man sich bei Partyguide auch nicht im Klaren zu sein, ob man nun jetzt mit dem Usernamen arbeiten will (der törichterweise Umlaute und Sonderzeichen enthalten kann), oder doch der eindeutigen User-ID, die wohl dem Inhalt einer Tabellenspalte entspricht.

Verräterische Cookies

Dieser Punkt hier hat für Partyguide überhaupt keine Auswirkung auf Bandbreite oder Performance der Server. Erwähnenswert ist er aber allemal.

Die Entwickler von Partyguide haben nämlich wieder einmal einen Tritt ins Fettnäpfchen gewagt und zeigen, dass sie sicherheitstechnisch kaum auf dem Laufenden sind. Ich frage mich gar, ob man überhaupt sensibilisiert ist? Wohl kaum …

Jedenfalls haben die Vollprofis dort entschieden, dass das Account-Passwort der Benutzer im Klartext auf der Festplatte der Anwender gespeichert wird (geniales Hilfsmittel: Cocoa Cookies 0.7):

.partyguide.ch        sess_psw        /        ********

Dies geschieht dann, wenn der User ‚Autologin‘ angewählt hat und sich so nicht bei jedem Besuch mit seinen Zugangsdaten authentifizieren muss. Man kann einwenden, dass dies auf Privat-Computern keine grosse Rolle spielt – doch mir ist es nicht wohl, wenn eines meiner Passwörter in Text-Dateien auf dem Computer herumliegt und nur darauf wartet, von einem Trojaner etc. ausgelesen zu werden. (Ich habe einen Mac, weshalb ich mir deutlich weniger Sorgen machen muss als Windows-Anwender).

Auch wenn man die Autologin-Funktion nicht verwendet, steht man mit heruntergelassenen Hosen da. Denn ist man einmal eingeloggt, wird das Passwort bei jedem Request an .partyguide.ch mitgesendet. Das schreit förmlich nach einer fiesen Hacker-Attacke, um das Passwort im Klartext abzufangen. Mittel und Wege dazu gibt es allemal – kommt das HTTP-Paket bei einem Menschen mit bösen Absichten vorbei, ist es passiert.

Vielleicht sollte sich die Verantwortlichen doch überlegen, zumindest einen MD5-Hash des Passwortes zu generieren und diesen auf den Rechnern der Anwender als Cookie zu hinterlegen. So ist immerhin die Gefahr gebannt, dass Profis mit einem Blick erkennen, wie das Passwort im Klartext lautet. Dass damit aber der Missbrauch nicht ausgeschlossen ist, bleibt klar – da man den Hash vorliegen hat, kann man sich auch in Zukunft frischfröhlich anmelden.

Weitere Beispiele folgen garantiert – to be continued …

Tags:
Labels: Allgemein

Keine Kommentare | neuen Kommentar verfassen

Mittwoch, 28. Dezember 2005

What Women Want (… And Get)

Was Frauen an Männern wirklich mögen

Tags:
Labels: Uncategorized

Keine Kommentare | neuen Kommentar verfassen

Mittwoch, 28. Dezember 2005

Neuenegg ist WLAN-Hauptstadt


Wardriving in Neuenegg II
Originally uploaded by emeidi.

Ich habe nicht schlecht gestaunt, als ich heute Abend bei meinem Bruder in der Nähe des Restaurants Sensebrücke für eine nächtliche Wardriving-Tour durch Neuenegg gestartet bin. Ich fuhr im Auto via Restaurant Sternen über den Dorfplatz Neuenegg in den Neugrund, danach wieder hinunter zum Dorfkreisel und dann auf der Hauptstrasse weiter Richtung Thörishaus. Vor dem Autobahnzubringer-Kreisel bog ich in die Stritenstrasse ab.

Fazit am Ende der Reise: Mehr als 40 Access-Points – Weltklasse!

Software

Wer es auch einmal probieren möchte, lade sich das Tool KisMAC herunter (für Mac OS X PowerPC mit einer 11MBit-Airport-Karte). Für Windows und Linux gibt es einschlägig bekannte Tools wie etwa Netstumbler.

Labels: Neuenegg

Keine Kommentare | neuen Kommentar verfassen

Dienstag, 27. Dezember 2005

Panzer

Hunderte echter Panzer rollen aufeinander und schissen […]

Quelle: Befreiung – Teil 1-5 (6 DVDs)

Naja, nicht nur die Amis scheinen momentan Probleme mit der Rechtschreibung zu haben …

Tags:
Labels: Uncategorized

Keine Kommentare | neuen Kommentar verfassen

Dienstag, 27. Dezember 2005

Tagi: Mehr Radarfallen, mehr Geld

Die Anschaffung zusätzlicher Radargeräte erweist sich auch für die Staatskasse als sehr positiv. Die meisten Kantone haben im auslaufenden Jahr mehr Verkehrs- und Ordnungsbussen einkassiert als budgetiert.

Mehr Radarfallen, mehr Geld

Wer hier gleich dem Blocherschen Reflex erliegt und „Kriminalisierung von Bürgern“ schreit, sollte sich überlegen, dass mehr Radaranlagen alleine noch gar kein Geld schöpfen! Würde nämlich jeder mit der gebotenen Geschwindigkeit fahren (für das gibt es am Strassenrand diese Schilder, die man mit überhöhter Geschwindigkeit natürlich schlechter wahrnimmt), würden die bösen, hinterhältigen Kästen den lieben, langen Tag rein gar nichts tun. Das Fakt aber, dass das Geld nur so sprudelt zeigt vor allem eins: Der gemeine Schweizer Autofahrer hat das mit der Geschwindigkeit einfach nicht im Griff. Oder sind es etwa nur die Tschechen, Deutschen, Italiener etc., die für die Bussen verantwortlich sind?

Sollte es den geschundenen Autofahrern also nicht passen, dass sie hierzulande sogar dann und wann verzeigt werden könnten, wenn sie Bleifuss spielen, empfehle ich die Unterschriftensammlung für eine Initiative a) zur Abschaffung der Radarkästen oder gar b) zur Aufhebung der Tempolimiten. Dann sähen wir dann ja ganz genau, wie die Stimmung in der (Stimm-)Bevölkerung wirklich ist.

Tags:
Labels: Uncategorized

Keine Kommentare | neuen Kommentar verfassen