“Ein Besucher”
Available in ENG.
Bekomme ich ab und zu von einer Computerstimmt am Rechner zu hören.
Warum? Ich war sehr angetan hiervon: http://tinkerlog.com/2007/12/04/arduino-xmas-hitcounter/, da ich meinen Arduino aber momentan für was anderes brauche, mache ich das ganze Softwareseitig. Ich wollte es außerdem nicht jede 10sec pollen sondern das ganze in Echtzeit haben.
In die Blogsoftware habe ich folgendes eingefügt:
<script type="text/javascript" src="http://fly3rman.dyndns.org:887/counter.js"></script>
Und zwar in den Headerbereich der index.php-Template-Datei von WordPress. Zuerst wollte ich das ganze mit einem PHP-Get Request umsetzen. Doch brauche ich ca. 1 Sekunde timeout dafür. In dieser Zeit jedoch tut PHP nichts und liefert natürlich auch keine Webseite aus. Solange tut also auch der Browser nichts. Alle modernen Browser laden jedoch Elemente parallel und meine Webseite braucht laut Chrome (strg+umschlt+i) ca. 2,5-3 Sekunden um komplett geladen und dargestellt zu werden. In der Zeit spielt es keine Rolle, wenn ein einzelnen Javascript-File nicht geladen werden kann, da parallel eh nochg genug anderes passiert.
Worauf verweist die Adresse? Auf den dyndns.org service und dieser wird von meinem Router automatisch mit der aktuellen IP-Adresse gefüttert. Der Port 887 zeigt auf meinen PC. Lokal läuft ein Python Script mit folgenden Code:
import SocketServer
import SimpleHTTPServer
import winsound
PORT = 887
class CustomHandler(SimpleHTTPServer.SimpleHTTPRequestHandler):
def do_GET(self):
if self.path=="/counter.js":
soundfile = "einbesucher.wav"
winsound.PlaySound(soundfile, winsound.SND_FILENAME|winsound.SND_ASYNC)
return
httpd = SocketServer.ThreadingTCPServer(("", PORT),CustomHandler)
print "serving at port", PORT
httpd.serve_forever()
Dieser reagiert bei einem HTTP Get Request auf die Datei counter.js und spielt eine Wavedatei ab, die ich vorher bei http://www2.research.att.com/~ttsweb/tts/demo.php gebastelt habe.
Caching ist noch etwas problematisch und ich verstehe das Verhalten gegenüber bereits einmal-nicht-gefundenen-Dateien bei meinem Chrome Browser nicht, aber meistens funktionert es. (F5 funktioniert 1-2 mal im selben Tab, danach wird die Datei ausgelassen, im neuen Tab geöffnet wird wieder ein Request geschickt).
Ich weis, das ganze ist vielleicht etwas unsicher aber ich hoffe mein Coder ist halbwegs exploitfrei =)
Ich weiß übrigens, dass du da bist.




