Ohne die Hilfe von Freunden wäre das Ergebnis nicht ganz so elegant. Harry hat das Logo entworfen, Gerrit hat die Seite designt, Julia hat die Bilder bearbeitet und ich habe die Planung und Umsetzung übernommen.
Verwendete Frameworks & Bibliotheken
Das Front-End wurde mit HTML, CSS3 & JavaScript entwickelt:
Zusätzlich verwendete ich Composer als Dependency Manager und Swift Mailer als Email-Bibliothek.
Ausblick
Die Webseite von Alma de Rua wird stetig weiterentwickelt. Als
nächstes steht die Anpassung an Handys und Tablets mittels Media
Queries(Responsive Design) an. Danach wird die Seite, um eine
Karaoke-Web-App erweitert, die es erleichtert, neue Capoeira-Lieder zu
lernen. Die Prototypen stehen schon, doch das Feintuning und die Tests
dauern noch an.
Bei Fragen, Kritik und Anregungen stehe ich gerne zur Verfügung.
Ich verwende gerade das PHP Microframework Slim in der Version 1.5 für ein aktuelles Projekt. Um Downloads zu protokollieren, will ich sie über Slim laufen lassen.
Die folgenden Schritte sollten auch mit der Version 1.6.2 funktionieren:
Die Datei, in meinem Fall ein PDF, wird mit Hilfe der PHP-Funktion readfile in den Speicher geladen.
Der Content-Type wird mit der Methode header() des Slim Response-Objekts auf „application/pdf“ gesetzt. Das Setzen des Content-Types ist wichtig, da ansonsten die Datei vom Browser wie eine Textdatei behandelt wird.
Die Datei wird via body()des Slim Response-Objektes als Antwort geschrieben.
$app = new Slim();
$app->get('/exam.pdf', function () use ( $app ) {
$downloadFile = readfile('./public/downloads/exam.pdf');
$response = $app->response();
$response->header("Content-Type", "application/pdf");
$response->body($downloadFile);
});
Somit ist die Datei unter http://localhost/exam.pdf verfügbar*.
* Soweit die index.php von Slim unter http://localhost/ verfügbar ist.
Die Protokollierung habe ich hier rausgelassen und mich nur auf den Download konzentriert.
Vorsicht: Diese Umsetzung sollte nur mit kleinen Dateien
verwendet werde, weil man bei größeren Dateien Gefahr läuft die PHP
Speichergrenze zu sprengen.
Vor kurzem habe ich angefangen, einen Memory-Klon in JavaScript zu entwickeln.
Zuerst verwendete ich nur prozedurales JS mit Underscore und jQuery. Nach über 500 Zeilen Spagetti-Code, habe ich nach Frameworks gesucht, um den Code zu organisieren und bin bei Backbone.js auf was Einfaches und Solides gestoßen.
Doch Code wie
_.delay(game.nextLevel, 500)
funktionierte nicht mehr. Das Problem ist JavaScripts this, das in verschiedenen Kontexten verschiedene Objekte referenziert. Das this in game.nextLevel referenziert nicht mehr game, sondern window.
Die Lösung zum Problem ist:
_.delay(_.bind(game.nextLevel, game), 500)
Somit wird game als Kontext der Funktion game.nextLevel gesetzt. Somit referenziert das this in der Funktion wieder das game Objekt.
Nachdem ich den Ajax.org Code Editor entdeckt habe, dachte ich mir, dass es ganz nett wäre, das Ganze in WordPress einzubinden. Die Plugin-Suche führte mich zu WPide.
Das Plugin ersetzt den Theme & Plugin Editor durch ACE. Leider
unterstützt es nur PHP-Highlighting. Deshalb habe ich beschlossen, es um
JS- & CSS Highlighting zu erweitern. Während ich dabei war habe ich
die große PHP-Klasse auseinander genommen und das JavaScript
in separate Dateien ausgelagert.
Ich habe im Plugin Forum angefragt, wie ich den Code zum eigentlichen
Plugin beitragen kann und warte noch auf die Antwort. Wer mal einen
Blick auf die Erweiterungen nehmen möchte, kann Sie hier finden.
Update
Mein Code ist in das Plugin eingeflossen. Jetzt muss ich nur noch warten, bis die Änderungen in das WP Plugin-Repository geschoben werden.
Open Source Software unter fast jeder Lizenz ist kostenlos. Ich habe
mich schon oft gefragt, wie jemand so lange Motivation haben kann, ohne
manchmal ein Dankeschön zu hören und bin einfach zu der Antwort
gekommen, dass die meisten davon gute Menschen sind.
Jeff Atwood hat mich schon vor Jahren überzeugt für Open Source und Freeware zu zahlen und Zed Shaw hat mich wieder überzeugt. Letztes Jahr habe ich 10$ an Doctrine gespendet. Auch wenn heute nicht der 1. Dezember ist, folgt eine Spende an das WordPress Addin Google(XML) Sitemaps Generator. Aus der Beschreibung
This plugin generates a XML-Sitemap compliant sitemap of your WordPress blog. This format is supported by Ask.com, Google, YAHOO and MSN Search.
Ja! Es generiert mir nach jedem Post Sitemaps für alle Seiten, sagt Google, Yahoo, usw. Bescheid und ich muss nichts machen, außer es zu installieren! Und ich kriege in den Einstellungen noch einen Link zum spenden!
Danke, Arne Brachhold! Ein „Hurra!“ auf dich! Du hast mir einen PayPal Link gegeben und ich konnte zumindest ein kleine Spende machen. Meine 5$ hast du 😉
Für wen stimmt ihr mit eurem Geldbeutel oder denkt ihr, dass es sinnlos ist für Open Source und Freeware zu „zahlen“?