sprachrohr

Montag, September 15, 2008

Essen im Dunkeln...

Hast Du schon einmal das Erlebnis genießen können endlose Grimassen ziehen zu können beim Essen? Noch nicht? Oder die Sinne komplett auf den Geschmack zu schärfen? Dann versuch mal die Unsicht-Bar in Berlin (Gormannstr. 8, Berlin-Mitte).

Man bekommt zu Beginn im hellen Barbereich eine Karte mit Umschreibungen der möglichen Speisen. Jeweils 4-Gänge-Menüs (Vegetarisch, Huhn, Lamm, Rind oder Fisch) und eine Getränkekarte. Nachdem man gewählt hat bekommt man einen blinden Kelner zugewiesen, der einen an den Tisch führt und eine kleine Einweisung gibt (keine Handys, keine leuchtenden Uhren, absolute Dunkelheit).

Danach geht es irrgangsmäßig durch das "Gelände" und mit sicherer Führung wird man an den Tisch gebracht.

Dort angekommen wird man platziert und man sieht einfach nix. Nur absolute Dunkelheit. Schon das Trinken wird zum Abenteuer. Geschweige denn der Salat zu Beginn. Denn dieser ist mit Dressing...was sich mit den Fingern ganz blöd macht ;) Man hat natürlich auch scharfe Waffen zur Essensbewältigung an der Hand.

Zwischen jedem Gang hat man ausreichend Zeit sich zu unterhalten oder über das Erlebte zu philosophieren. Es ist einfach ein Abenteuer durch und durch.

Das Essen schmeckt vorzüglich...man versucht zu erraten was man da Bissen für Bissen genießt, manchmal jedoch chancenlos. Wen es detailliert interessiert, der kann am Ende einen Blick in die Auflösungskarte werfen.

Als Resümee muss ich sagen, es war die beste Möglichkeit 100 € anzulegen und mit Claudia dreieinhalb Stunden voller Lachen und Abenteuer zu verbringen. Man vergißt absolut jegliches Zeitgefühl und der Gang in die leuchtende Welt ist wie eine Art Erlösung nachdem man Stunden voll Abwechslung und Abenteuer erlebt hat. Ich kann es nur jedem empfehlen.

Als Alternative kann man in Berlin auch ins Nocti Vagus, ebenfalls in Berlin-Mitte. Dort gibt es noch Programm und Live-Events oben drauf.

Labels: , ,

Dienstag, Juli 15, 2008

diffr.org - und du kennst alle Änderungen

Es geht mir häufig so, dass ich eine Internetseite gefunden habe, wo noch kein Inhalt vorhanden ist, sondern nur der coole Spruch "...coming soon..." oder so ähnlich. Da man natürlich kaum noch Zeit hat in der heutigen Welt, ist es blöd, wenn man doch etwas sinnvolles vermutet, nur nicht weiß, wann man es auch sehen kann. Dafür kommt jetzt die Abhilfe: diffr.org - the web diff notifier . Dieser Dienst ermöglicht es verschiedene URLs zu hinterlegen, die einmal täglich auf Veränderung hin überprüft werden. Das ist für die verschiedensten Zwecke sehr hilfreich. Als kleines Gimmick gibt es sogar eine Firefox-Erweiterung (diffr.xpi). Diese ermöglicht einem nach kurzer Konfiguration die Nutzung per Rechtsklick auf jeder Internetseite. Dadurch wird diese ad hoc dem Service übergeben und man hat sie auch sogleich abonniert. Der Service ist komplett werbefinanziert. Probiert es doch einfach mal aus. Vielleicht findet ihr das genauso toll wie ich ;)

Sonntag, Februar 24, 2008

Hilfe, die Handbuchübersetzer machen jetzt auch Internetseiten...

Klicke ich doch heute auf einen Link von Ciao Surveys um eine Umfrage
mitzumachen. Cool, dass ich daraufhin zu einem anderen Umfrageinstitut
"Greenfield" weitergeleitet werde und folgende Meldung zu sehen bekomme:

Traurig, dass ein Umfrageinstitut sich mit solchen
Übersetzungskenntnissen outen muss. Schade, dass diese witzigen
Übersetzer nicht bei den guten Aufbauanleitungen und Handbüchern
geblieben sind.

Samstag, Februar 02, 2008

Jetzt schlägt's 13

Was tun, wenn die Zeit auf einem Server falsch läuft? Nun ja, es gibt das NTP (Network Time Protocol) um soetwas zu verhindern. Leider hat das bei mir nicht so recht funktioniert. Also hab ich den NTP gestoppt mit /etc/init.d/ntp stop und dann rdate benutzt:
$> apt-get install rdate

Nach dem installieren mit apt-get kann man es nutzen:

$> echo rdate -s ptbtime1.ptb.de > /etc/cron.daily/update-time
$> chmod a+x /etc/cron.daily/update-time

Mit diesen Kommandos legt man einen Cronjob mit täglicher Ausführung an, der die Zeit von ptbtime1.ptb.de holt. Alternativ gibt es auch noch ptbtime2.ptb.de oder andere Public NTP Server.

Mit der Option -s (set) von rdate setzt man die entfernte Zeit gleich auf dem eigenen System. Will man lediglich die fremde Zeit wissen, dann reicht die Option -p (print), um sie auf der Konsole auszugeben.

Achtung: Zu häufige Anfrageversuche nach der aktuellen Zeit resultierten in einer kurzen Antwortverweigerung des Servers.

Wer noch andere Lösungen hat oder Detailverbesserungen findet, kann ja mal einen Kommentar hinterlassen.

Dienstag, Juli 24, 2007

Gantt Charts mit PHP erstellen

Mit phpGantt erblickt ein neues Tool das Licht der Welt, um PHP-Entwickler im Bereich Projektmanagement, Statistik, Reporting zu unterstützen, was die Visualisierung als Gantt-Diagramm betrifft. Die ersten Features dieses Tools sind:
  • Erfassung von Arbeitspaketen
  • Erfassung von Sammelpaketen
  • Verknüpfung von Arbeitspaketen zu einer Timeline
  • Timeline wird als PNG exportiert
  • Arbeitspakete können auch als voneinander abhängig deklariert werden
    • Startzeitpunkte verändern sich automatisch
  • Wochenenden können als freie Arbeitszeit gebucht werden
Der Clou dieses kleinen Tools ist die kostenfreie Nutzung für freie und kommerzielle Projekte.

Dienstag, März 27, 2007

CASCADE DELETE für Mysql mit dem ZendFramework

Laut Manual des ZendFrameworks ist es nicht möglich ein CASCADE DELETE zu implementieren für einen Mysql-Datenbankserver mit MyISAM Format.

Nun denn, hier ist die php-Lösung, um genau dieses doch zu ermöglichen außerhalb der DB-Server Möglichkeiten:

[Project extends Zend_Db_Table]
[...]
 protected $_dependentTables = array(
  'Task'
 );
 protected $_referenceMap = array(
  'Customer' => array(
   'columns' => array('customer_id'),
   'refTableClass' => 'Customer',
   'refColumns' => array('id')
  ),
  'Contact' => array(
   'columns' => array('contact_id'),
   'refTableClass' => 'Contact',
   'refColumns' => array('id')
  )
 );
[...]
 public function delete($where)
 {
  $objRowset = $this->fetchAll($where);

foreach ($objRowset as $objRow) { foreach ($this->getDependentTables() as $depObject) { $objModel = new $depObject(); $reference = $objModel->getReference(__CLASS__);

foreach ($reference[Zend_Db_Table_Abstract::COLUMNS] as $column) { $depWhere = $objModel->getAdapter()->quoteInto($column . ' = ?', $objRow->id); $objModel->delete($depWhere); } } } parent::delete($where); } [...]

Wer also eine Mysql-Datenbank benutzt kann somit ohne Probleme ein kaskadierendes Löschen implementieren. Einfach dazu die $_referenceMap und die $_dependentTables korrekt führen und die Zend_Db_Table_Abstract::delete($where) wird mit der entsprechenden Domänenlogik ein kaskadierendes Löschen auf alle Objektbeziehungen durchführen.

Wer dazu mehr Fehlerprüfung oder einen anderen Ansatz dazu verfolgt, bitte mal im Kommentar schreiben. Oder wer das so verwenden konnte bitte auch mal kommentieren. Wäre doch cool, wenn ich das nicht nur so für mich mache.

Zur Verwendung kommt derzeit das ZendFramework 0.9.1

Freitag, Januar 12, 2007

Rewrite - Exemplar

Hier mal wieder ein Exemplar, welches echt supi funzt...

Ich möchte in HTML Dateien immer eine .css Datei angeben, auch wenn diese dynamisch generiert wird. Dazu habe ich einen CSS Generator, der die .css Dateien erstellt und auch die Ausgabe übernehmen kann.

RewriteEngine On

# wenn Datei nicht gefunden RewriteCond %{REQUEST_FILENAME} !-f

# dann wirf den Generator an RewriteRule stylesheet_([\d]*)\.css$ ../php/stylesheet.php?pid=$1 [L] # für Startseite diese Regel RewriteRule stylesheet(_?)\.css$ ../php/stylesheet.php [L]

Für die, die es besser können, bitte kommentieren. Ich bin absoluter Newbie mit diesen Dingern.