Tuesday, July 14. 2009
Ich wollte eigentlich mal wieder etwas über PHP schreiben. Aber gestern Abend hat mich das Thema denn doch nicht losgelassen: Ich wollte unbedingt das Tool Helicon Focus Pro testen. Und ich tat es - wenn auch teilweise über Nacht, da meine Rechnerkapazität zu hause etwas zu Wünschen übrig lässt.
Sowohl am Durchlicht-Mikroskop bei hohen Auflösungen als auch am Stereomikroskop bei, sagen wir 40x facher Vergrößerung bleibt natürlich das Schärfentiefe-Problem: Das aufgenommene Bild ist auch bei geringer Blende nicht überall scharf. Und wenn es darum geht, Details zu Dokumentieren ist das wie immer doof.
In der Medizintechnik ein alter Hut ist die Möglichkeit, eine Serie von Fotos unterschiedlicher Schärfentiefen so zusammenzurechnen, dass ein brauchbares Bild entsteht, um alle Details verschiedener Schärfetiefen auf eine Bild-Ebene abzubilden. Die aktuelle digitale Mikroskopie wäre so undenkbar.
Nun gibt es aber dieses obszön preiswerte Tool von Helicon, dass es auch Konsumern ermöglicht, aus einem Foto-Stack brauchbare Fotos zu erstellen. Mein erster Versuch ist zwar nicht gerade Hightech - aber um die Funktionalität der Software zu testen zunächst ausreichend. Folgendes Foto habe ich aus 10 Einzelaufnahmen mit der Methode A zusammengerechnet. Fotos aus dem Stack sehen so aus.
Der Käfer ist in Natura etwa 2,5mm lang - nächstes Mal werde ich sicher noch eine Skala beifügen...

Abb.: Cutorrhynchus contractus
Weitermachen
Thursday, October 16. 2008
Wie zum Teufel nennt man eigentlich die Fehlerklasse, die bei folgender PHP-Klassen-Methode auftritt?
public function getBlabla($value)
{
$value = (int)$value;
if ($value === null) {
throw new Exception('value in getBlala can not be null');
} else {
return 1 / $value;
}
}
Wednesday, October 1. 2008
Weil ich die Woche aus personellen Gründen alleine rauchen muss, habe etwas mehr Kapazität um dabei nebenbei etwas quer zu lesen.
Ich hätte Anti Patterns von Braun, Raphael, Malveau, McCormick II und Mowbray früher lesen und empfehlen sollen. Folgender Hinweis lässt mich doch nochmal überlegen, ob ich nicht grundsätzlich richtig damit liege, eine Ausbildung als Friseur zu starten, wenn ich bei den o. g. Autoren lese:
"In Situationen, wo es keine Möglichkeit gibt, eine AntiPattern-Lösung zu implementieren, mag sich derjenige, der die Konsequenzen tragen muss, damit trösten, dass viele andere sein Problem partiell oder vollständig teilen. In einigen Fällen, in denen das AntiPattern erste Folgen nach sich zieht, kann das AntiPattern auch Auslöser dafür sein, sich nach einer anderen Beschäftigung umzuschauen."
Die Lektüre ist unterhaltsam.
Friday, April 11. 2008
Kurz für die, denen ich in den letzten Wochen mit svk auf die Nerven gegangen bin.
Aber mal von vorne. Die im Zug entstandene Kurzfassung (vielleicht etwas wacklig deswegen).
Continue reading "svk, Subversion und mein Urlaub in den Tropen ohne Internet"
Saturday, November 3. 2007
Da ich wieder mal ein paar Tage Urlaub aufbrauchen konnte, konnte ich die Zeit nutzen und mich dem Thema mod_magnet etwas hinzugeben. Im Juli 2007 hatte ich hier bereits ein paar Gedanken gepostet, die mit meiner Xenjo Cache Registry Part I zusammenhängen. Xenjo ist ja kein Produkt, sondern nur mein kleines Framework, in dem ich Spielchen teste. Ziel ist natürlich die Verwendung mit Zend-Framework.
Continue reading "Die Xenjo Cache Registry Part II"
Wednesday, September 19. 2007
Ich hatte gerade das Bild eines Aufklebers aus den 70ern im Kopf, auf dem drei Polizisten abseits einer Demonstration stehen und 'rumheulen. Darunter steht: "Wir müssen leider draußen bleiben..." - Beamte dürfen ja nicht demonstrieren. Polizeibeamte 'mal grad garnicht! Also ziehen sie eine Schnute, weil sie bei dem Spass nicht mitmachen dürfen - ausserdem hat diese rechtliche Situation die Polizisten schon damals in eine Randgruppe gedrängt. Kein Wunder also, dass die Polizei immer wieder Randgruppen kreiert, die eigentlich keine sind - und von der Randgruppe "Gesellschaft" durchaus akzeptiert wird. Ich spreche vom Konsum THC haltiger Kräuter, die einen psychoaktiven Wert größer eins haben (pW > 1).
Wieso sage ich das? Ganz einfach: Ich vordere hiermit von der Bundesregierung augenblicklich die Legalisierung von Cannabis, damit es auch rechtlich endlich möglich wird, Cannabis-Produkte nach der Öko-Audit-Verordnung der Europäischen Union zu zertifizieren.
Jeder in diesem Land hat doch ein Anrecht auf ein bisschen Demeter und WELEDA, oder?!
Wednesday, August 22. 2007
Na endlich.
egolab.de hat ein Update erfahren. Nicht perfekt, aber wer will das schon. Und einige dringend notwendige Erweiterungen hat die Seite auch erfahren. Man braucht einfach eine Datenschutzerklärung. Ein Muss!
Es gibt einen neuen Bereich "Sound" - da finden die, die in letzter Zeit danach (oder auch nicht danach) gefragt haben, kaputte Projekt-Musik - im übrigen fast alles noch höchst analog (ok, bei ein paar späteren Tracks habe ich das Diktiergerät gegen einen digitalen Sampler getauscht, aber immer analog gemischt und gemastert - wenn man das so nennen kann). Eben RäNG RäNG Projekte.
Gut, der Meilenstein ist gesetzt, jetzt kommt wieder was neues!
Die Sounds und auch ein paar Images liegen nicht auf der lokalen Server-Platte. Ich habe mich Montag auf Dienstag entschieden, Amazon WebServices User zu werden: Amazon bietet nicht nur seine Ecommerce-Webservices als REST bzw. SOAP-Services an, sondern auch einen Dienst namens Simple Storage Service (S3). Der Vorteil: ich hab nicht einfach nur Webspace, sondern greife auf die Daten über eine ACL, die über die entsprechenden APIs eingestellt werden, zu. Nun, und die Daten, auf die das Publikum Zugriff haben darf, bekommen Leserechte auf diesen Dateien. Der Dienst stellt allerdings keine Filehierarchie bereit. Dafür kann ich Serandipity sehr leicht so aufboren, dass alle Medien auf den S3-Storage wandern (und wenn ein Artikel noch nicht veröffentlich ist, können die Medien dazu eben ebenfalls nicht public geladen werden).
Weil ich ein fauler Mensch bin, habe ich die Dateien mit dem Bucket Explorer hochgeschoben. Ein extrem häßliches - aber sehr nützliches Tool.
Andere Webdav-Tools fand ich im Ansatz zwar klasse, da sie aber durch die Bank eine virtuelle Filehierarchie vorgaukeln, heißen die Buckets (sowas wie ein Namespace) und Dateien (bei S3 auch Key genannt) "intern" nicht so wie ich sie von außen ansprechen will.
Ach, und was den Preis für den Speicherplatz und die Transferkosten betrifft, ist AWS nicht nur günstig, sondern extrem freundlich: keine Grundgebühren, keine Startkosten und wenn man die Platte leerfeegt, ist auch der Vertrag beendet. Die Abrechnung erfolgt natürlich über das Payment von Amazon. Und da ich ja Bücher dort bestelle, musste ich mich nichtmal registrieren...
Ich habs gerade erst realisiert: Mein Kopf hat sich heute morgen beim Aufstehen gefragt, ob mein Framework nicht selber entscheiden möchte, wie HTTP-Request behandelt werden. Für eine Xenjo-Anwendung ist es unerheblich, ob sie als CLI, HTTP oder WAP-Anwendung läuft. Zugegeben, den WAP-Treiber hab ich noch nicht implementiert.
In einer HTTP-Anwendung selber habe ich ein ähnliches Problem zu lösen: Angenommen, ich liefere einen View aus (basierend auf einem kompletten Seiten-Layout ). Teile dieses Views sollen jetzt per HXR nachgeladen werden (hierfür würde man einige Ajax-Controller/Views bauen).
Gibt es einen generischen Weg zu erkennen, ob ein Request auf XMR basiert?
Die Antwort ist JA.
Testen konnte ich es allerdings nur für Firefox (1.5/2.0), IE 6 und Opera 9.
Und das WIE ist, wie so oft, banal:
Von PHP aus kann man einen Ajax-Request demnach daran erkennen, dass das Element $_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest' gesetzt ist.
Das macht Laune, denn jetzt könnte man eine Anwendung so konfigurieren, dass die Daten aus angeforderten Ajax-Requests immer als JSON zurückgeliefert, und über eine Template-Engine im Client dargestellt werden (jQuery MVC PlugIn z.B.). Und wenn nicht, wird die Ausgabe auf dem Server gerendert...
Urlaub ist geil. Sagte ich das schon?
Saturday, July 21. 2007
Ich danke schon seit einiger Zeit über schnelle Anwenungs-Caches für Internet-Anwendungen nach. Die bevorzugten Zutaten sind der Webserver Lighttpd, die Sprachen LUA und PHP sowie den Server Memcached, mit dem die Verteilung von flüchtigen Daten im Cluster ein Kinderspiel ist.
Continue reading "Die Xenjo Cache Registry Part I"
|