Bernhard Häussner
Journal: Neueste Artikel erscheinen hier (Seite 22 von 23)

Pyramid.php

31.10.2008, 19:07

Nachdem ich neulich bei Wikipedia von der „Obfuscation“ bei Perl gelesen habe, habe ich mir gedacht ich mache so etwas auch mal mit PHP. Das Ergebnis ist schon sehenswert:

function x($c){$x=21;return
y(array(1,7,$c[1],14,5,9,$c[3],8,++$x,11),$c).$c[2].y(array(--$x,++
$x),$c);}$c=array('md','s','o','_','PG','MQ','IA','Iw','n',);$x=9;$a=dechex(15);function
f($x,$y,$c){$z=x($c);$r='';for($i=0;$i<$x;$i++){$r.=$z($y);}return
$r;}$y=$a($x,$c[5].$a(12,4,$c),$c);function
y($x,$c){$b=$c[0];$b.=5;$r='';$z=$b($c[8]);foreach($x as
$y){if(!is_numeric($y)){$r.=$y;}else{$r.=$z[$y];}}return
$r;}list($y,$z)=d($y);for($i=0;$i<$z;$i++){print($a($x-$y[$i],$c[6].$a(sqrt(9),
$c[4],$c),$c).$a($y[$i]*sqrt(4)-1,$c[7].$a(12,4,$c),$c)."\n");}function
d($x){$x*=$x;return array((string)$x,strlen($x));}
Download: pyramid (622 Bytes)

Wer sich traut, kann das Programm ja mal laufen lassen, und sehen, was passiert. Am besten in der Kommandozeile mit php5 pyramid.php. Leider sieht man im Gegensatz zu den Perl-Script noch einige Codewörter.

Tags:
Kommentare: keine

Schnapp die 500 km!

28.10.2008, 23:07

Nicht mehr lange und ich habe die ersten 500 km auf meinem Tacho. Ja, es ist schon schwierig, wenn man fast nur in der Stadt unterwegs ist. Dennoch war ich an manchen Tagen 15 km nur in der Würzburger Innenstadt, also einem Radius von rund 3 km unterwegs.

Die längste Tour bisher mit 80 km war am Main entlang nach Karlstadt und über Arnstein, Rimpar zurück nach Würzburg. Eine weitere Tour verlief nach Schweinfurt. Immerhin, mit diesen Tourchen bleibe ich ganz gut bei einem Tagesdurchschnitt von gut 8 km. Jetzt kommt natürlich auch wieder der Winter, d.h. man fährt nicht so gerne und in der Dunkelheit funktioniert mein Tacho nicht, also alles Faktoren, die es zu überwinden gilt. Wie auch immer, für die Allerheiligen-Ferien ist schon eine Fahrt in den Spessart geplant.

Dennoch, die 500 sind jetzt nicht so der Renner, aber irgendwann muss ich ja das erste Mal über Fahrrad-Fahren bloggen. Der erste Tausender wird dann wohl schon auf einer etwas größeren Tour zelebriert, vielleicht schon im Frühjahr.

Kommentare: 3 Einträge

Coole CMS-Funktionen!

28.10.2008, 22:51

So, jetzt kann Ich hier im CMS schön rumklicken um Formatierungen zu machen. Ich habe mich da ein bisschen an dem BBCode Script von SelfHTML und Wikipedias Markup "orientiert".

»Zwei Seelen wohnen, ach! in meiner Brust«
J. W. v. Goethe, Faust, Vers 1112

Auf kurz oder lang will ich dann auch noch ein paar andere Tags einfügen, und vor allem ein paar Tags um z.B. Blogeiträge zu verlinken, Bilder einzufügen etc. Doch heute habe ich erstmal vi gelernt, zumindest so grob, denn das war bisher doch eine meiner "größten Bildungslücken".

Next Steps

So gleich mal, was die nächsten Schritte sind, mit der neuen klickbaren Liste erstellt:

  • Eingene Tags für: Blogeinträge, Bilder, Downloads
  • Bilder/Dateien Upload
  • RSS-Feeds
  • Screenshots in About-Sektion
  • und der ganze Rest

Nun ja, es schreitet voran...

Kommentare: keine

CMS funktioniert - aber noch nicht fertig

28.10.2008, 11:34

Ja, es funktioniert. Das heißt man kann Artikel schreiben und löschen. Bzw. „man“ ist inzwischen übertrieben: Ich bzw. als „Editor“ gekennzeichnete User können das. Und wo wir schon beim Stichwort sind: Es gibt jetzt User.

Als erstes war dringend nötig, mein (mehr oder weniger) gutes altes Loginscript, das auf Client-seitigem sha1-Hashing basiert, auf mein neues PHP-Brick-System umzustellen. Dazu habe ich das ganze erstmal in seine Bestandteile auseinander genommen:

  • Die Loginseite, nun als Controller erstellt mit dazugehörigem XML-Template
  • Die Userverwaltung als Klasse mit Zugriff auf die Eigenschaften der User
  • Die Key-Verwaltung für das Clientseitige 1-mal-Verschlüsseln als eigne Klasse
  • Das Loginformular im Login-XML-Template aus den selben Bausteinen, wie das CMS-Formular bzw. das Kommentarformular. Hier zeigt sich erstmals sehr gute Wiederverwendbarkeit: Ich habe es doch von Anfang an gewusst.
  • Und als kleine Ergänzung zu den Bisherigen Formularbausteinen: Der Passwortbaustein, der sich, wie von selbst, um die Beschaffung des Keys und die Client-seitige sha1-Verschlüsselung kümmert. Außerdem nimmt er sich aus dem Monkey-Formular-Mechanismus heraus. Bei einem Fehler wird also nicht wieder das Passwort angezeigt. Als flexiblen Baustein könnte ich ihn jetzt ohne Probleme z.B. in das Kommentarformular bauen.

Insgesammt zeigt sich also langsam die Power und Erweiterbarkeit des Bricksystems. Bei den Userrechten lief es ähnlich „schön“. Der User hat einen Brick, in dem er sieht, dass er eingeloggt ist und sich ausloggen kann, der Editor hat zusätzlich einen, in dem er Posts erstellen und bearbeiten kann. Das CMS war auch schnell gesperrt. Als kleines Extra gibt es optional den Userbaustein auch für nicht eingeloggte Benutzer, wo sie dann sehen, dass sie nicht eingeloggt sind, und sich einloggen können. Und dieser Brick vererbt seine Attribute auf den nur-eingeloggte-Brick, sodass jener dann eigentlich nur aus der Kontrolle besteht. Sehr toll.

Das heißt leider noch lange nicht, dass das CMS fertig ist. Denn erstens reden wir hier ja nur von dem CMS für den Blog. Und außerdem fehlt noch immer sämtliche auto-Formatierung für redaktionelle Texte. Also klickbare Listen, Bilder, Zitate, Absätze, Überschriften, Links usw., da muss ich mir nochmal überlegen, wie ich das dann überhaupt realisiere. Das wird dann erstmal der nächste größere Schritt. Dann dürfte, könnte, wollte, müsste, sollte das Erstellen der anderen Sektionen kein Problem mehr sein. Oder? (Ich habe nämlich die Vorahnung, dass ich die Bricks nicht alle flexibel genug gemacht habe, aber wir werden sehen. )

Kommentare: keine

Kate - mein geliebter Editor

27.10.2008, 22:54

Man hat als (Web-)Developer ja immer ein bisschen das Problem sich eine geeignete Arbeitsumgebung zu schaffen, weil es einfach nicht „die“ IDE gibt. Als Ruby on Rails Benutzer hat man die Wahl zwar sehr leicht, wenn man sehr ausgefallen ist und Java verwendet, führt fast nichts an Eclipse vorbei, doch ich bleibe lieber bei PHP. Und da ist der Markt irgendwie sehr unübersichtlich:

Natürlich zählen Subversion, CVS, vi, Apache und MySQL ganz gut zur Entwicklungsumgebung, aber ich will hier eher auf das Programm eingehen, das man am häufigsten braucht: Den Code-Editor.

Um PHP zu entwickeln kann man natürlich auf die - meist rudimentären - Möglichkeiten des ein oder anderen HTML-Editors zurückgreifen. Nur ist für mich ein HTML-Editor nicht mehr so aktuell, da ich HTML irgendwie fast im Schlaf beherrsche. Ich will nicht mehr unbedingt die Buttons für Überschriften usw. , oder gar einen WYSIWYG-Editor. Denn heutzutage braucht man für das Layout fast nur divs und den Content kann man ja dann wieder mit dem HTML-Editor oder im CMS basteln... wenn man will.

Dann gibt es natürlich auch diverse spezielle PHP-Editoren mit nettem Syntax-Highlighting und erweiterten Ersetzungs-Features. Diese sind teilweise mit Datei-Outlining, Projektverwaltung und ähnlichem Schickschnack voll gepackt, dass sie schon fast überladen wirken. Die Spitze des Eisbergs bildet hier wohl das hochwertige Programm UltraEdit, das auch gleich noch FTP-Client, SQL-Tools und viele weitere Features oben drauf setzt.

Jedoch sind diese PHP-Editoren kaum noch zu gebrauchen, wenn man etwas anderes als PHP, HTML usw. machen will. Hier kommt dann Kate ins Spiel. Der erweiterte KDE-Editor kann die Syntax von fast allen denkbaren Programmier- und Auszeichnungssprachen, farblich hervorheben. Darunter HTML, XML, PHP, SQL (sogar MySQL/PostgreSQL-spezifisch), Apache-Konfiguration, CSS, JavaScript, und ausgefallenes wie MediaWiki. Hinter Kate steckt also ein sehr allgemeiner Ansatz. Damit kommt einher, dass man leider auf direkte Implementierung für FTP-Client, Dokument-Outline oder anderes sehr PHP-spezifisches verzichten muss.

Doch das wird eigentlich recht schnell mit der Terminal-Funktion ausgehebelt. Über diese lassen sich dann letztendlich auch SVN oder CVS und eigentlich alle Kommandozeilenprogramme benutzten. Das Terminal cd"ed auch automatisch in den Ordner der gerade offenen Datei.

Das Terminal ist aber nur ein Beispiel, wie sich Kate perfekt in KDE bzw. „Linux“ integriert. Man kann auch Datei-übergreifend suchen und in einer Sidebar in Ordnern browsen. Achja, diese „Ordner“ beinhalten natürlich auch FTP, Webdav, Zip- und komprimierte Tar-Archive, sowie weitere Protokolle. Eben alle Protokolle, die z.B. Konqueror durch die KIO-Slaves auch kann. Dank SFTP kann man sogar auf Servern arbeiten, wo man nur ssh-Zugriff hat, das bedeutet nie wieder Putty- oder CLI-Herumirren.

Natürlich hat Kate auch sonst fast alle Funktion, die man sich so wünschen kann. In Tabs oder der Sidebar können mehrere Dokumente offen sein, an denen man parallel arbeiten kann und die alle gleichzeitig gespeichert werden können. Die offenen Dokumente werden dann in der Sitzung gespeichert. Auch Rechtschreibprüfung, auto-Vervollständigung, automatische Einrückung (mehrere Stile), und Ersetzen mit regulären Ausdrücken gehören zum Editor.

Besonders hilfreich ist auch immer die Integration mit Klipper. Klipper ist unter KDE ein Hilfsprogramm für die Zwischenablage. Es merkt sich automatisch den letzten markierten Text, der dann mit mittlerer Maustaste eingefügt werden kann. So ist sehr schnelles Copypaste möglich. Besonders nützlich kommt dann auch die History-Funktion von Kipper: Über eine Einfügen-Taste in der Symbolleiste kann man ein Menü öffnen und von dort aus den letzten markierten Texten wählen. Wenn man also im Internet oder in der Dokumentation recherchiert, markiert man einfach hin und wieder Funktionen oder Codesnippets die vielleicht nützlich sein könnten. Dann kann man sie später, dank Klipper, wieder aus dem Menü wählen und schnell in den eigenen Code einfügen. Das hilft enorm weiter, wenn man viel mit APIs arbeitet, oder mit altem Code, oder die Dokumentation braucht, oder, oder, oder... eigentlich immer.

In Kate habe ich irgendwie meinen perfekten Editor gefunden. Nicht so überladen, allgemein brauchbar. Nur manchmal fehlt eben noch ein bisschen das Eclipse-Feeling:

Als kleiner Ausblick: Ich habe eigentlich noch keinen PHP-Editor gefunden, der Ordentlich auto-Vervollständigen betreibt. Von Eclipse kennt man das ja, dass man fast immer das Vorgeschlagen bekommt, was man eigentlich wollte. Nut mit PHP hat das noch keiner so recht hin bekommen. Die Sichtweite ist irgendwie immer falsch, includes und autoload fast unerreichbar. Die Anzeige der Dakumentation in der Vervollständigung bei Eclipse habe ich auch immer sehr geschätzt. Wie auch immer, man muss immer seine Klassen und Funktionsaufrufe im Kopf haben, was bei großen Projekten mit vielen Includes sehr schnell zum Problem werden kann. Auch das „refractoring“, hier das Projektübergreifende Umbenennen von Variablen, Funktionen etc. kommt manchmal sehr praktisch zur Hand - in Eclipse. Bei Eclipse kann man auch mit klick auf die Variablen/Klassen zu ihrer Deklaration kommen, was sehr viel herum Suchen erspart. Für PHP gibt es derartige „globale Tools“ irgendwie noch kaum. Naja, man kann ja Erweiterungen für Kate schreiben, außerdem ist es OSS.

PS: Wenn ich die Funktion für Bilder im CMS habe, füge ich auch noch ein paar Screenshots ein...

Edit: Die Bilderfunktion ist jetzt da!

Kommentare: 3 Einträge
 
Χρόνογραφ
© 2008-2018 by Bernhard Häussner - Impressum - Login
Kurz-Link zu dieser Seite: http://1-co.de/bj