Archive for the Category 'Programmierung'
Vom Übel der Webagenturen
Sunday, August 22nd, 2010Unsere Dienstleistungsgesellschaft kennt ein neues Übel – die Webagentur. Der Name steht bereits für die Schrecken hinter diesem Verbund aus Unfähigkeit, falschem Stolz und Verblendung. Die Einhaltung von klaren Standards und die Beachtung der notwendigen Aspekte, ist in diesen brodelnden Kesseln der Werbewirtschaft niemals gewährleistet und somit ist es auch nicht erschreckend, weshalb PHP mit einem schlechten Ruf belegt wird. Die katastrophale “Arbeit” solcher Agenturen ist meist ein Werk der Inkompetenz.
Besonders oft ist die Optik des Frontends dabei von größerer Wichtigkeit, als eine saubere und vor allem sichere Programmierung. Total geblendet von dem scheinenden Äußeren wird dann von der durch und durch gutmütigen Gessellschaft geträumt – jedenfalls solange bis etwas passiert. Und dies ist in Zeiten wachsender Onlinekriminalität leider immer häufiger der Fall. Deshalb muss man sich als Internetnutzer umso mehr an die Regeln der Vernunft halten. Onlineshops ohne SSL sind nicht mit der Speicherung von Daten zu betrauen, Seiten mit fragwürdigen Trackersystemen muss man mit Browserplugins den Hals abdrehen und nur weil eine Seite nicht aussieht wie aus dem letzten Jahrtausend, ist sie noch lange nicht sicher. Bleibt zu hoffen, dass die Politik sich in diesem Bereich mal auf eine strikte Gesetzeslage einigt. Ich würde es zutiefst bedauern meine persönlichen Daten aufgrund der Inkompetenz eines “Webprogrammierers” im Netz stehen zu sehen. Doch nicht nur die Programmierung ist in solchen Fällen zu kritisieren, leider sitzen in den meisten Fällen inkompetente und neurotische Zuständige an den notwendigen Schaltern. Eine klare gesetzliche Haftung und das Recht auf Anzeige, würde diesen ganzen Scharlatanen den Wind aus den Segeln nehmen.
Ankündigung eines neuen Projektes – MovieDB
Monday, August 02nd, 2010
Obwohl es im Netz ziemlich viel Software zum Verwalten von Filmen, Serien und sonstigen Medien gibt, habe ich mich vor längerer Zeit zu einer Eigenentwicklung entschliessen können. Hierbei waren mir folgende Aspekte wichtig:
- Weltweite Verfügbarkeit der Daten
- Leichte und intuitive Bedienung
- Viele Automatismen
- Ansprechende Gestaltung
- Hohe Erweiterbarkeit durch Plugins
- Keine unnötigen Features
Mein erster Grundentwurf wurde in PHP und MySQL umgesetzt. Diese Kombination (bzw. demnächst vielleicht einen MySQL-Ersatz) bietet eine gute Erreichbarkeit weltweit und nur wenig Hindernisse beim Erzeugen einer grafischen Oberfläche. Ausserdem kann ich dank der exzellenten Arbeit des Projektes IMDbPHP mehr Zeit in den Aufbau von Grundfunktionen stecken.
Derzeit sind folgende Grundfunktionen geplant/umgesetzt:
- Ein rudimentäres Templatesystem
- Usersystem mit unterschiedlichen Rechten und Loginbereich (Admin/User)
- Automatisches Abrufen von Filmbeschreibungen, Tags, Genres und Schauspielern (unter Verwendung von IMDbPHP)
- Automatisches Abrufen von Episodentiteln, Ausstrahlungsdaten und Inhaltsbeschreibungen (unter Verwendung von IMDbPHP)
- Automatisches Aktualisieren aller IMDb-Bewertungen
- Automatisches Verkleinern der Cover
- Coverupload
- Kalendermodul mit Erinnerungen für kommende Filmpremieren oder Serien
- Definieren eigener Kategorien, Verzeichnisse und Sammlungen
- Erstellung von Statistiken
- Vielfältige Suchmöglichkeiten wie beispielsweise: Inhalt, Titel oder Schauspieler
- Pluginsystem
- Export in verschiedenen Formaten
- Installerscript
- Multi-Language-Support
- …
Da der derzeitige Entwicklungsstand bereits ziemlich fortgeschritten ist, sollte es bis zu einer ersten Veröffentlichung nicht mehr allzu lange dauern. Das vollständige Script werde ich dann unter der GPL veröffentlichen und zum Download bereitstellen!
[PHP] Regulärer Ausdruck zum Parsen eines Templates
Monday, August 02nd, 2010Letzte Woche habe ich an einem umfangreichen Templatesystem gearbeitet. Dabei sollte es möglich sein, einfach und schnell, Variablen sowie Funktionen innerhalb des HTML-Templates zu integrieren. Eine solche Anwendung kann z.B. folgendermaßen aussehen:
<strong>Benutzername:</strong> {(session->username)}
Wobei session eine Funktion zum Auslesen von SESSION-Werten ist und username der Variablenname. Selbstverständlich war es ebenfalls eine Anforderung unendlich viele Funktionen voranstellen zu können.
Beispielsweise: “session->format->foo->var”
Ein wichtiger Teil der Arbeit ist hierbei in die Erstellung eines vernünftigen regulären Ausdrucks geflossen.
$name = “/(\{(\(||%))(([a-zA-Z0-9]||-||_||\>)*)(\[)?((\[||>||\()(\b$search\b))(\|)?(.*)?(\])?((%||\))\})/”;
$values = ‘${1}${3}${5}${7}’.$replace.’${9}${10}${11}${12}’;
Rar-Archive entpacken
Friday, August 07th, 2009public boolean unrarFiles(String path, String file) {
Process p;
String s = null;
File file = new File(path+str);
if (file.exists())
{
System.out.println(“[System] Found file “+str);
System.out.println(“[System] Start unpacking”);
try {
p = Runtime.getRuntime().exec(path+”UnRAR.exe e “+path+ str +” “+path);
BufferedReader output = new BufferedReader(new InputStreamReader(p.getInputStream()));
System.out.println(“Entpacke:\n”);
while ((s = output.readLine()) != null) {
System.out.println(s);
}
p.waitFor();
return true;
}
catch (IOException ex) {
// Do something
return false;
}
catch (InterruptedException ex) {
// Do something
return false;
}
}
else {
System.out.println(“[System] Couldn’t find file “+str);
return false;
}
}
