Archiv ‘Uncategorized’

Dienstag, 3. Januar 2006

DRS Webradioplayer sucks (Update)

Tut mir leid – aber es ist so. Die Inhalte des Radios sind top, aber der Player zum Abspielen von Beiträgen ist schlichtwegs eine Katastrophe.

Wenn ich Beispiel einen weiteren der unzähligen Faux-Pas‘ der SBB anhören möchte, öffnet sich zwar das Pop-Up-Fenster mit dem Player – danach geht aber rein gar nichts mehr. Dies sowohl unter Safari wie auch Firefox.

Ein Blick auf die JavaScript-Console zeigt sehr schnell, woran die Angelegenheit krankt:

Error: document.MediaPlayer.DoPlay is not a function
Source File: http://www.drs.ch/js/webradioplayer/palyerControls.js
Line:49

Abgesehen davon, dass die Finger des Entwicklers schneller tippen als das Gehirn mitdenken kann (denn dann würde das Script wohl playerControls.js heissen), stimmt auch mit dem Script etwas nicht. Kaum zu glauben, dass dieses Problem noch niemanden aufgefallen ist? Jedenfalls hatte ich bereits vor unzähligen Wochen mit dem nicht funktionierenden Player zu kämpfen. Wenn der JavaScript-Praktikant mal ein Blick auf die Programmierung werfen könnte (am Besten nicht mit dem Internet Explorer unter Windows), wäre ich doch sehr froh.

Beim Betrachten des Quelltexts des „Webradioplayers“ fällt mir zudem auf, dass da kein konformes HTML produziert wurde. Firefox hebt dies schön rotfarben hervor:

<object ... id="name="MediaPlayer3">

Vielleicht sollte man dies dann auch gleich in einem Rutsch korrigieren. Oder ist es gar die Ursache des Problems?

Workaround

Extrem mühsam, aber er funktioniert: Ich suche im Quelltext den Hinweis auf die .smi-Datei und lade diese dann mit Safari herunter. Sobald die Datei auf dem Desktop gespeichert ist, öffnet sich der RealPlayer und die Datei wird abgespielt.

Nachtrag

Danke an Christian Dreier, der mir in seinem Kommentar empfohlen hat, auf RealPlayer 10 upzugraden. Ich habe die Applikation installiert – und welch ein Wunder, ich höre wieder etwas! Freude herrscht! Aber wieso können die Entwickler die Benutzer mit einem veralteten Player nicht mittels JavaScript und einem alert() zum Upgrade auffordern?

Tags:
Labels: Uncategorized

Keine Kommentare | neuen Kommentar verfassen

Dienstag, 3. Januar 2006

Männer und Frauen

Quelle: Männer sind so

Übrigens: Nettes Blog. Und ich dachte schon, dieses weltbewegende Thema greift niemand auf ;-)

Tags:
Labels: Uncategorized

Keine Kommentare | neuen Kommentar verfassen

Montag, 2. Januar 2006

Energiekrisen 2005 – der Anfang vom Ende?

Zuerst stiegen 2005 die Erdölpreise in ungeahnte Höhen, nun kämpft Mütterchen Russland und die Ukraine um Erdgas. Sind das die ersten Vorboten der Energiekrise, die meine Generation wohl noch viel deutlicher kennenlernen wird?

Holz scheint je länger desto mehr zu Alternative zu werden. Ich frage mich aber, ob der gesamte Holzvorrat der Schweiz ausreichen würde, unseren gesamten Energiebedarf länger als einen Tag zu decken …

Wären in der Schweiz halbwegs intelligente Leute am Steuer, wäre jetzt der Zeitpunkt gekommen, genügend Mittel für die Forschung freizumachen, um Alternativ-Energien zu fördern, zu verbilligen und zu verbreiten. Gekoppelt mit der konsequenten Bestrafung von Energie-Verschwendern. Die Idee liess sich ohne weiteres koppeln: Sollen doch die Verschwender für die Forschung aufkommen. So schlägt man zwei Fliegen mit einer Klappe.

Tags:
Labels: Uncategorized

Keine Kommentare | neuen Kommentar verfassen

Montag, 2. Januar 2006

Die Rückkehr der US-Serien

Der SPIEGEL berichtet über die wiederauferstandenen Serien-Produktion in den Staaten und befasst sich dazu beispielhaft mit CSI:

US-Fernsehmarkt: Wiederbelebung auf dem Seziertisch

Lesenswert! Aber wieso bleibt 24 unerwähnt? Die Idee fand ich die bahnbrechendste des bisherigen 21. Jahrhunderts.

Tags:
Labels: Uncategorized

Keine Kommentare | neuen Kommentar verfassen

Sonntag, 1. Januar 2006

A Girl Called Miriam Hess

20 Minuten hat sie schon vor einer Weile – dem Blattgeist entsprechend – seich präsentiert. Nun hat sie es auch in die Berner Zeitung gebracht, und zwar gleich auf eine ganze Seite. Wer? Miriam Hess. Eine Klassenkameradin von mir am Realgymnasium Bern-Kirchenfeld:

[…] als Teenager im Kirchenfeldgymnasium traf sie Baldy Minder und die anderen heutigen „Chlyklässler“.

Nicht nur die – auch mich. Das hätte auch eine Erwähnung wert sein sollen *zwinker*

Andererseits: Leiden konnten wir uns während ihrem kurzen Aufenthalt in der Tertia aber kaum – das lag wohl daran, dass ich eher das zurückgebliebene Geek-Bubi und sie die deutlich erwachsenere Frau war. Das wäre heute hoffentlich nichts belastendes mehr …

Es scheint, als hätte sie ihren Weg gefunden und weiterverfolgt. Sie war nämlich kaum des Klassenlehrers Liebling, was schlussendlich zu ihrem unerwarteten und überstürzten Abgang aus unserer Klasse führte. Ihr Dickschädel scheint ihr aber recht gegeben zu haben und die Entscheidung war rückblickend wohl die klügste Lösung des Problems.

Es freut mich jedenfalls zu hören, dass sie in der Aus- und Weiterbildung der Berner Hip-Hop-Szene, wenn auch überhaupt nicht meine Musik, tatkräftig mitmischelt.

Und: Sie ist schon Mutter, 2 Jahre schon. So ganz aufgeschlossen habe ich also immer noch nicht (als Vater natürlich, wennschon!). Und: Sie ist dem „Realen“ treu geblieben und studiert(e?) Mathematik, Physik und Astronomie.

Quelle: Berner Zeitung, 31. Dezember 2005, S. 30.

Tags:
Labels: Uncategorized

Keine Kommentare | neuen Kommentar verfassen

Sonntag, 1. Januar 2006

24: Serien-Marathon über die Festtage

Das Folgende ist zwar etwas peinlich, aber ja: Ich habe mir über die Festtage die erste (sic!) Staffel der Hit-Serie 24 reingezogen. In meiner Sammlung befindet sich das Box-Set zwar bereits seit längerem, doch irgendwie hatte ich nie Zeit, mich den 17.2 Stunden Spielzeit zu widmen. Da meine Freundin aber ausser Landes ist und dies auch noch längere Zeit so bleiben wird, musste ich die freigewordene Zeit irgendwie füllen. Eigentlich sollte ich ja vorbildlicherweise an meiner Seminararbeit tüfteln, doch ich wurde Schwach: Call Of Duty war eine Ablenkung, 24 die andere.

Mittlerweile bin ich beim grandiosen Finale von 24 angelangt und überlege mir, ob ich mir die Schlussfolge noch heute Abend zu Gemüte führen soll, oder ob ich noch bis Morgen warten soll. A propos: Fängt die Uni eigentlich morgen wieder an? …

Bereits in Folge 2 ist mir ein längst vergessen geglaubter Artikel in den Sinn gekommen, der mich als Computer-Mensch natürlich angesprochen hat:

Macs = Good, Dell = Bad

Kernaussage:

Dean Browell, a Mac spotter, had noticed that the good guys (CTU personnel) were using Macs and the terrorists were using PCs.

So war es mir bereits in Folge 2 möglich, die Asiatin und Nina Myers als Maulwürfe zu enttarnen. Bis Folge 23 zweifelte ich aber dann doch sehr stark an der Dell-Theorie – Myers machte überhaupt keine Anzeichen, „böse“ zu werden. Dabei hat sie in der zweiten Staffel doch diesen Gastauftritt … Wie kann das aufgehen? Auch jetzt, da ihr kleines, dreckiges Geheimnis gelüftet ist, schüttle ich den Kopf. Sie hat sich nun wirklich kaum wie eine Verräterin verhalten.

Im Grossen und Ganzen haben die Drehbuchautoren eine geniale Storyline ausgetüftelt, aber manchmal gab es halt doch einige Stutzer:

  • Ein ganzes Flugzeug mit 200 Passagieren in die Luft jagen, nur um an eine dämliche Keycard eines Fotografen zu kommen?
  • Innert 5 Sekunden der elektronische Schaltplan eines Gebäudes auf den Bildschirm zaubern, in dem sich Jack Bauer mit einem Bösen ein Gefecht liefert?
  • Ein ZIP-Drive als Keycard-Leser?
  • Eine Behörde mit heterogener EDV-Infrastruktur (Mac OS X und Windows) – arme PC-Supporter!
  • Ein getuntes Handy, das 5 Sekunden benötigt, um zu explodieren? Begleitet von farbigen LEDs (Hallo Edi?) und einem geilen Soundeffekt?
  • Wieso die Entführung, wenn man das Ganze auch viel einfacher auf die „palästinensich-irakische“ Art haben könnte? Ein Selbstmordanschlag mit mächtig viel Sprengstoff in der Menge – zwar viele Kollateralschäden, aber anscheinend scheint es die Serben ja sowieso nicht zu kümmern, wieviele Leute sie umbringen müssen, um ihr Ziel zu erreichen.

Gerade jetzt ist auch wieder ein solcher Moment. Aber schauen wir mal, was mir in den letzten 43 Minuten noch alles um die Ohren fliegt. Könnte Nina Myers nur deshalb mit Jack geflirtet haben, um den Mörder eines Bekannten (oder gar: Verwandten?) näher kennenzulernen?

Übrigens: Leider weiss ich auch schon, dass Teri von uns gehen wird. Diese Erkenntnis liess sich aus einer Episode der zweiten Staffel ziehen, die ich zufälligerweise geschaut habe. Aber: Wer tötet Teri?

Kim Bauer

Ja ja, musste ja noch kommen. Wäre die liebe Kim nicht, würde die Serie etwa gerade sechs Stunden weniger lang dauern *grins*

Auch andere Leute denken so:

24 – Season 2: Kim Bauer Part

Der Interviewer bringt es auch auf den Punkt:

Did you feel like some of the situations Kim was put in were kind of silly?

Quelle: Elisha Cuthbert Interview and Pictures

Aber es gibt auch Leute, die sich für den Kim-Handlungsstrang stark machen. Doch nicht ohne zuzugeben, dass irgendwas wirklich faul ist:

To be sure, I can understand the reaction to Kim. Her plotline interrupts Jack’s and she does so many “dumb” things that make her a big pain in the ass if you’re her father and also trying to stop freedom-hating evildoers. If she only did what Jack told her to, like we all would, she’d be OK, right? Why DO the writers keep her around, and why do they use such ridiculous plot points to do so?

In Defense of Kim Bauer

Tags:
Labels: Uncategorized

Keine Kommentare | neuen Kommentar verfassen

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