- Über Zeugs: “Entliehen” von USA erklärt (zB hier), viele Sachen sind einfach eines ganzen Themas nicht wert. “USA erklärt” ist übrigens ein wunderbar geschriebenes Blog für jeden, wer sich etwas offener gegenüber der amerikanischen Kultur zeugen möchte. Der Sprachstil macht zumindest Spass.
- Über Spam: Seit dem 21.07. um 2Uhr hat Bad Behaviour zwischenzeitlich bis zu 11114 Zugriffe in 7 Tagen blockiert. Mittlerweile sind diese aber auf etwa ein Zehntel gesunken. Schön, auch Botnetzwerke sind lernfähig.
- Über Namespace: Jetzt ist es geschehen, PHP hat doch tatsächlich Namespace-Unterstützung erhalten. Bleibt nur noch zu hoffen, dass sich PHP5.3 in naher Zukunft durchsetzen kann, damit man dieses neue, tolle Feature auch einsetzen kann. Was ich mich allerdings noch frage ist, wie man denn jetzt seinen Code strukturiert. Natürlich kann man so weitermachen, wie bisher, bloss dass nun die Klassenbezeichner auffällig kürzer werden. Meines Erachtens wird man damit dem Konzept — gerade in Hinblick auf anderen Sprachen, die es schon länger implementieren (vgl Python Modules) — nicht gerecht. Eigentlich wäre dies auch ein guter Zeitpunkt Funktionen und Konstanten wieder für sich zu entdecken.
- Über Setter-Methoden: Ja, quasi eine Erweiterung des letzten Themas, jetzt bloss etwas, worüber man nachdenken darf, während man schlaflos gegen die Decke starrt. Was sollte eigentlich eine Setter-Methode zurück geben? Als da wären:
- Das Objekt selbst, Fluent Interface: Ja, nicht jedermanns Sache, führt sie doch gerne mal zu abstrakten/abstrusen Aufrufketten.
- Den alten Wert: Nagut, wenn mans braucht… Falls mans braucht … Wieso setzt man einen neuen Wert, wenn man den alten Wert haben will?
- Den neuen Wert: Kenn ich doch schon…
- Den Erfolg der Zuweisung: Eigentlich hinfällig seit Erfindung der Exception
- Nichts: Semantisch perfekt, bloss recht schweigsam…
- Was vergessen?!?
Das ergänzt sich übrigens wunderbar zu der Frage, warum Getter keine Parameter haben sollten. Ich glaube, ich finde Variante 2) aus dem alten Beitrag doch ganz cool.
- Link tagdocs.de: Grob zusammengefasst gibt es hier Beiträge zu Software im Webbereich, die einen Entwickler das Leben erleichtern können, wenn man gerade sowas gesucht hat. Den Link hab ich aus der aktuellen c’t
- Link PHPAnywhere: Über tagdocs.de fand ich dann auch direkt PHPAnywhere, ein Browserbasierter PHP-Editor. Ich werd es mir mal anschauen.
- Link phphatesme.com: Auch schnell erklärt. Ein mittlerweile 1 Jahr altes, deutsches Blog über PHP, was aber hier und da auch mal über den Tellerrand hinaus schaut. Einmal fand es schon Erwähnung in meinem Beitrag über Getter und Setter.
- Über Farben: Gerüchteweise ist das übliche Farbschema “Schwarz auf Weiß” nur kulturell bedingt. Wie sollte man früher auch schwarzes Papier und weiß-schreibende Stifte herstellen? Gesünder, weil weniger anstrengend für die Augen, ist allerdings “Weiß auf Schwarz”, so heißt es. Verstellt man nun sein Farbschema am PC gibt es eine böse Überraschung: Viele Webseiten setzen die Farbangaben nicht für alle Elemente konsequent um. Bei mir sind zum Beispiel die Input-Elemente in Wordpress schwarz … als einziges Element … und auch nicht bei allen Inputfeldern. Auch beliebt ist “Schwarz auf Schwarz”, wenn der Hintergrund zwar gesetzt wird, die Schriftfarbe allerdings nicht. Als einzige Lösung blieb nur das Überschreiben der Farbangaben zu verbieten. Macht zwar ein ziemlichen Einheitsbrei aus den Seiten, hat aber auch den Vorteil, dass jede Seite irgendwie gleich aussieht. Achja, es schont die Augen wirklich
Archiv für die Kategorie „Allgemein“
ZEUGS: Namespace, Spam, Farben
Dienstag, 4. August 2009Eigener Translate Adapter: SimpleXml
Mittwoch, 22. Juli 2009Viele meiner Ideen entstehen aus Frustration: Vorhandene Lösungen sind
- Zu einfach: Sie können nicht das, was ich erwarte
- Zu groß: Sie können zu viel
- Zu kompliziert: Ohne 22 seitige Spezifikation ist man aufgeschmissen
- Zu .. unheimlich. Ernsthaft :X
So auch diesmal. Ich nutzte lange Zeit den Gettext-Adapter für Zend_Translate, aber wenn man die Scan-Funktion von PoEdit nicht richtig nutzen kann, wird es unbequem. Zunächst tippt man sich selbst eine pot-Datei, daraus erstellt man eine oder mehrere po-Dateien, in denen man endlich übersetzen kann. Letzter Schritt ist bekanntlich die Kompilierung in eine mo-Datei.
Der auffälligste Nachteil ist, dass man nicht mal eben einzelne Strings übersetzen kann, man muss immer gleich kompilieren. Übersetzung per Webfrontend wird damit schon mal schwieriger. Der nächste logische Schritt war demnach eine textbasierte Übersetzungsquelle, die allerdings fast alle ursprünglich als Übersetzungsspeicher dienen, nicht direkt für multilinguale Anwendungen, wodurch deren Umfang unschön wird (zB Spezifikation von TMX). PHP-Arary, CSV oder Ini-basierte Textquellen schlossen sich von selbst aus.
Es keimte dann die Idee auf mein eigenes Übersetzungsformat zu entwickeln. Standardisierte Formate haben immer den Vorteil, dass entweder “der Betroffene” sie kennt, oder es zumindest offene Quellen gibt, wo man sich informieren kann. Sowas funktioniert bei Eigententwicklungen eher selten. Da kann man nur hoffen, dass diese a) sooo cool wird, dass jeder sie haben will, b) sie sooo einfach wird, dass man nicht mal den Zaunpfahl braucht, damit irgendwer sie versteht, oder c) es einen einfach egal ist. Ich entschied mich für b).
Die bisherige (nicht öffentliche) Implementierung basiert auf XML und orientiert sich so nen halben Meter an Gettext. Da ich mich für b) entschieden habe, sollte ich nicht mehr viel Reden müssen
<sxt>
<msg msgid="Access denied">
<msgstr locale="de">Zugang verweigert</msgstr>
<msgstr locale="en">Sry, youre out</msgstr>
</msg>
</sxt>
Ein Hauptmerkmal ist, dass sie im Umfang stark reduziert ist, deshalb auch die Orientierung an Gettext. Der Hauptunterschied zu Gettext wiederum ist, dass eine Datei mehrere Sprachen fassen kann. Und das es XML ist, da lässt sich schwer verbergen. Grundsätzlich soll die Implementierung so stehen bleiben, Details können sich allerdings noch ändern. Eventuell bring ich das “One Language per File” zusätzlich noch mit ein?
Soweit stand der Dinge. Bei mir funktioniert es und ich denke, ich werde es so auch nutzen (sonst hätte ich es nicht entwickeln müssen). Eine Veröffentlichung erfolgt dann wie gehabt im Rahmen von Libcrunch. Vielleicht freut sich sogar jemand darüber
Wer noch etwas über meine innere Zerrissenheit über diese Thema wissen will, kann sich das dazugehörige Thema antun.
Grüße, KingCrunch
Nachtrag:
Der Name wird sich nochmal ändern, SimpleXML gibts ja schon -.- Das ist insofern peinlich, da ich intern SimpleXML auch nutze …
Spamkrieg Runde 4
Dienstag, 21. Juli 2009OK, vielleicht nicht Runde vier, aber es geht schon lange genug, um mir auf die Nerven zu gehen. Gestern erst gab es eine neue Welle von Spamkommentaren, von denen zum Glück Akismet die meisten abwehren konnte, einen kleinen Promillesatz allerdings nicht. Zur Veranschaulichung kurz die Statistik aus der Adminoberfläche. Man beachte die Skala links. Insgesamt vereitelte Akismet gestern 609 und insgesamt 1560 Spamversuche. Und das in nur 6 Tagen! Die kleine Delle in der Mitte sind übrigens 9 Kommentare. Anscheinend machen auch Bots Wochenende.
Mein nächster Versuch ist jetzt parallel zu Akismet das Bad Behaviour-Plugin. Dies nutzt den Webservice von Honeypot, um auffällige Rechner (IPs bzw IP-Bereiche) von vornherein zu identifizieren. Es hat seit heute morgen um 2 nun auch schon über 400 Rechner gefiltert, scheint also irgendwo zu funktionieren. Problem hier ist, dass die False-Positive-Quote wohl höher liegt, als bei Akismet, wer also Einschränkungen erfährt, möge sich bitte bei mir melden. Vorwiegend soll dies (soweit ich das verstanden habe) bei Rechnern aus Firmen- oder Regierungsnetzwerken auftreten. Andererseits solltet ihr vielleicht mal euren Admin anstubsen, dass er das Netzwerk absucht, wenn ihr ausgesperrt werdet: Der Schluss liegt Nahe
Grüße,
Sebastian
Libcrunch Repository
Freitag, 17. Juli 2009Wie passend war das KingCrunch2000-Repository wieder kaputt … Ich ahne langsam, dass das mit dem Eclipse-Plugin EGit und meinem vielleicht etwas leichtfertigen Umgang mit Selbigen zusammen hängt
Wäre nur schön zu wissen, wie man so ein Repo repariert, ohne es gleich zu löschen und neu anzulegen.
Zumindest nahm ich das jetzt direkt mal als Grund zusammen mit der Umbenennung ein neues Repository für Libcrunch anzulegen. Ich hoffe, ich verwirr euch damit nicht zu sehr
Und hoffen wir ebenso das Beste, dass sowas nie wieder vorkommt. Falls jemand mehr Erfahrung mit Git hat und Fehler a la “fatal: error in sideband demultiplexer” zu lösen weiß, bitte her damit
Grüße,
Sebastian
Neue (alte) Domain
Freitag, 17. Juli 2009Erstmal vorweg als kleine Anekdote: Das ich wieder auf Akismet als Spamschutz setze, war anscheinend dringend notwendig. Das Plugin hat nun innerhalb der 3 Tage, seitdem es wieder aktiv ist, fast 700 Spamkommentare ausgefiltert. Anscheinend bin ich in der Zeit, in der ich es nicht eingesetzt habe, sehr weit oben in der Opfer-Liste gerutscht
Zum eigentlichen Thema: Ich habe nun endlich meine alte Domain kingcrunch.de wieder. Nun wird es so aussehen, dass dies meine Hauptdomain wird. Ärgerlich bloss, dass fast alle Links, die ich im Netz verteilt habe, natürlich auf die 2000-Adresse verweisen, also muss ich wohl oder übel beide Adressen halten … für die nächsten 10 Jahre?
In diesem Kontext wird auch meine Bibliothek umbenannt, weil KingCrunch2000 nicht mehr so richtig passt. Die Umbenennung ist in Arbeit und wenn sich nichts weiter ändert, wird sie in den nächsten Tagen unter Libcrunch neu veröffentlicht. Das bedeutet ausser einem neuen Namen erstmal nichts. Die Namenswahl ist direkt angelehnt an Webcrunch, damit sollte dann klar sein, dass sie irgendwie verwandt sind.
Schönes Wochenende noch,
Sebastian
Spamprävention
Mittwoch, 15. Juli 2009Vor einiger Zeit hab ich mich von Askimet aus rechtlichen Bedenken abgewendet. Nach diversen erfolglosen Versuchen die teilweise immense Flut an Spam-Anfragen durch lokale Plugins Herr zu werden, waren alle nicht 100%ig, weswegen ab jetzt das Askimet-Plugin wieder aktiv ist. Ein entsprechender Hinweis findet sich beim Kommentarfeld. Sollte es irgendwo fehlen, bitte bei mir melden.
Gruß, KingCrunch
KingCrunch2000 repariert
Montag, 22. Juni 2009Es gab ein Problem mit dem Github Repo. Nach einer Empfehlung von github musst ich deswegen das alte Repo löschen und neu anlegen. Die Adressen sind gleich geblieben, allerdings ging die Verknüpfung des (einen) Forks und die Beobachter verloren. Schade drum ^^
Zend_Validate Messages
Samstag, 20. Juni 2009Weils so hübsch ist: Eine POT-Datei aller (mir bekannten
) Zend_Validate-Nachrichten für gettext kann man hier herunterladen. Die Datei ist automatisch aus der Liste im Manual generiert, kann also Fehler enthalten. Wär nett, wenn man mir diese meldet.
Grüße,
Sebastian
KingCrunch2000 Lizenz
Montag, 15. Juni 2009Für KingCrunch2000 wurde mit Änderung der Version auf “0.3″ die Lizenz geändert: Sie steht jetzt unter der GNU Lesser General Public License (LPGL, GPL). Bis einschließlich “0.2″ steht sie weiterhin unter der New BSD, ein entsprechender Branch “v0.2″ existiert auf Github.
Das bedeutet vorallen, dass eigene Änderungen an der Bibliothek nun veröffentlich unter der (L)GPL werden müssen, im Gegensatz zur vorher verwendeten New BSD allerdings auch veröffentlich werden dürfen, die die Weitergabe nur in unveränderter Form vorsieht. Nicht betroffen ist davon die Verwendung sei es direkt oder durch Erweiterung der vorhandenen Klassen.
So als Kurzzusammenfassung: Solange man zu den KingCrunch2000-Dateien und -Verzeichnissen keine hinzufügt, löscht oder verändert, kann man sie verwenden oder (die Klassen) erweitern, wie man will. Tut man das allerdings doch, untersteht sie wieder der (L)GPL und muss veröffentlicht werden.
Ich hoffe, hier haben sich keine groben Schnitzer eingeschlichen. Das hier ist allerdings auch kein Blog für Informationen über Lizenzen
Grüße, Sebastian
Edit: Sobald ichs komplett verstanden habe, erklär ichs nochmal neu
Webcrunch ist nachgezogen und steht jetzt ebenfalls unter der LGPL
exTSend und Pläne für die Zukunft
Sonntag, 3. Mai 2009Eigentlich eine Schande, dass ich exTSend bisher nicht erwähnte, denn schließlich wurde es direkt vor meiner Nase vorgestellt und findet im ZFForum auch öfter Erwähnung. Dabei handelt es sich um eine Erweiterungsbibliothek für das Zend Framework. Ich selber habe noch nicht genauer reingeschaut und die Dokumentation ist zur Zeit auch nur zum Download verfügbar. Laut Beschreibung gibt es aber eine Smarty-Integration, eine Vorlage für eine Projektstruktur und ein “generic Dispatcher”, was auch immer man darunter versteht.
Für die Zukunft plane ich jetzt auch mal wieder längere Texte für die Nachwelt als Seite und nicht als Blogeintrag zu Verfassen, bzw überhaupt was Längeres zu Schreiben. Den Anfang machte jetzt das Thema BIOS-Update beim eeePC, der zwar schon als Blog-Eintrag (samt Nachtrag) verfügbar ist, aber aufgrund der Aktualität (BIOS Update beim eeePC 1000H) immer noch gute Dienste leistet. Weitere Beiträge betreffen dementsprechend zunächst auch wieder Themen um den eeePC und dem Zend Framework, die als Beiträge schon angesprochen wurden.
Gute Nacht,
Sebastian
