Monthly Archives: November 2008 - Page 2

Umzug

An diesem Wochenende werde ich den Umzug schaffen. Die neue Adresse (ab morgen):

http://lukas-prokop.at/blog/

Für alle Feed-Abonnenten also:

http://lukas-prokop.at/blog/feed/

proj CMS

Das ist ein uralter Draft, den ich im letzten März geschrieben habe. Er beschreibt das, was im Projekt CMS zusammengefasst werden soll. In der Zwischenzeit wurde dieses CMS von mir kritisiert und der Aufbau wird noch einmal durchdacht. Aber ich will den Einblick nicht verwähren, wie ich damals argumentierte und wie der alte Aufbau ausgesehen hat. Wen es interessiert, kann es lesen ;-)

Jeder PHP-Entwickler entwickelt bei einer Homepage – die nicht auf “fremder” Software basiert – ein eigenes System, das er meist auch bei anderen Webseiten einbaut und ausbaut. Auch ich habe mein eigenes System, allerdings kann ich nicht mit Sicherheit sagen, dass es dem Begriff CMS gleicht. Eigentlich steht nicht der Inhalt im Vordergrund, sondern es sollte eine Plattform für Programmierer sein. So ist es zumindest bei mir der Fall. Im Folgenden beziehe ich mich also auf die Projekte BRG_HP, MyHP und lowk-spotting.at dessen Merkmale ich im Folgenden analysiere.

  • Konfiguration Von entscheidender Bedeutung ist die Konfiguration. Ich schreibe vieles in Variablen wie zB den Titel (<title>) der Seite. Inhalte die sich kurzfristig ändern können, werden genauso zentral definiert, damit ein schneller Zugriff mit minimalem Aufwand möglich.
  • (X)HTML und CSS Von der zuerst genannten Regel schließe ich HTML und CSS aus. Grundlegend schreibe ich in keine Variable wie breit die Tabelle xy ist. Da ich (X)HTML und CSS für “nicht ausgereift” halte, muss ich oft die eine Tabelle breiter machen, als die zweite, weil sie einen anderen Inhalt hat, deshalb ist ein zentrale Verwaltung unmöglich (besonders proj:lowk-spotting.at).
  • central/ Ein Ordner existiert immer in dem die zentrale Verwaltung stattfindet. Eine MySQL-Verbindung wird aufgebaut, Konfigurationsvariablen zur Verfügung gestellt und die meta-Angaben und das Menü stehen auch nur in einer einzelnen Datei. Aktionen, die sich zumindest 2mal wiederholen und einen aufwändigeren Quelltext enthalten, sind zentral definiert und im Ordner central/ zu finden. Das ermöglicht eine einfache Fehlersuche, falls zB eine MySQL-Verbindung nicht mehr möglich ist. Dann ist der Fehler ist der Fehler in nur einem Ordner (central/) zu finden, in dem sich nur wenig Dateien befinden.
  • Ordnung Außerdem muss meine Webseite über eine klare Ordnerstruktur verfügen:
    • root/: Hier befinden sich alle Dateien auf die der User direkt zugreift. Das Verzeichnis enthält alle – im Folgenden genannten – Unterordner. Der Rest der Dateien wird mit require() oder include() eingebunden.
    • bilder/: Dieses Verzeichnis verfügt über alle Bilder, die nicht für das Design der Webseite benötigt werden, sondern nur in einzelnen Dateien und eine hohe Dateigröße aufweisen. Die Bilder sind nicht dokumentiert (der Name ist nicht in Vars definiert – siehe “Doku”).
    • icons/: im Ordner Icons sind alle Graphiken gespeichert, die für das Design verwendet werden. Meist verwende ich hierfür gifs oder pngs. Soll Transparenz im Design enthalten sein, verwende ich natürlich pngs (beachte IE6!). Meist ist es so, dass in bilder/ nur jpegs sind und in /icons nur pngs.
    • central/: Dieser Ordner wurde oben erwähnt. In ihm liegen alle Dateien, die zu 90% in jeder Webseite mitwirken. Eine besondere Datei ist die unten erwähnte hp.php.
    • +workout/ und design/: Diese Ordner kommen nicht auf den Server. In ihm kommen veralterte Dateien und Tests für das Design.

    Diese Ordnerstruktur ist für mich typisch und unverzichtbar. Für mich hat sich diese Struktur sehr bewährt.

  • hp.php
    Die hp.php ist so etwas wie eine globale Konfigurationsdatei. In ihr werden allgemeine Variablen, MySQL-Passwort und die Pfade zu den einzelnen Dateien definiert. Ebenso wird das Framework in ihr geladen, der HTTP-Header gesandt und evtl. die meta-menü-Angaben geladen. Sie übernimmt auch alle Aufgaben, die vor dem Senden der Datei ablaufen müssen (Error-Weiterleitung, Variablenausgabe).

Die Namen der Verzeichnisse können in den einzelnen Projekten variieren.

Meine Maturafächer – Teil III

Bisher war geplant:

schriftlich: D M E ME
mündlich: CH IT fächerübergreifend mit M

Jetzt stellte sich heraus, dass es doch nicht erlaubt ist ohne Fremdsprache mündlich zu maturieren. Der Direktor erklärte es mir so. Das betroffene Fach ist wohl Chemie. In den letzten Wochen kamen mir doch noch Zweifel und bei allen anderen Fächern habe ich bereits alles mit den Lehrern geplant. In Mathematik soll ich nicht Komplexe Zahlen als Spezialthema wählen :-( Spezialthema Informatik ist bekannt und auch das fächerübergreifende Thema ist schon teilweise ausgearbeitet. Jetzt benötige ich dafür eine andere Fremdsprache? Deutsch ist keine Fremdsprache, deshalb wird es wohl Englisch. Spezialthema weiß ich schon (morgen rede ich mit Lehrerin). Halte ich nicht für einen Fehler, aber gegen 3 tech. Wissenschaften hätte ich nichts einzugewenden gehabt. Die Sprachen werden heutzutage überbewertet (und ich schließe mich damit der Aussage meines PHY-Professors an).

Am nächsten Dienstag hat der Fachinspektor noch einmal die Chance uns die Matura zu erklären. Der Direktor hat uns das selbe versprochen, aber die Zukunft sieht nicht so rosig aus. Auf jeden Fall schaue ich einmal ob er uns die Matura besser erklären kann und wenn wir Zugang zu den schulinternen Unterlagen bekommen, könnten wir sogar mit Peter das matura_tool entwickeln :-)

Neue Maturafächer:
schriftlich: D M E ME
mündlich: E INFO-FÜ-M

Buchtipp “Linux”

Titel: “Linux – Installation, Konfiguration, Anwendung”
Autor: Michael Kofler
Seiten: 1288
ISBN: 978-3-8273-2478-8
Verlag: Addison-Wesley
Erschienen: September 2007 (7. Auflage)

So… vor 1 einhalb Jahren habe ich das Buch von meinem Bruder zum Geburtstag bekommen. Leider bin ich einer der Menschen, die fähig sind ein ganzes Buch durchzulesen (bei 1288 Seiten hat das gedauert ;-) ) und sich trotzdem hinterher nichts gemerkt haben. Naja… ganz stimmt es natürlich nicht. Ein paar interessante Sachen habe ich beim Lesen gelernt und hier habe ich mein Interesse für LaTeX und die bash-Programmierung entwickelt. Auf jeden Fall kann ich nicht empfehlen so zu machen wie ich, sondern es als Nachschlagewerk für die Anwendung von Linux zu nutzen. Aber wer Linux kennt, kennt das Buch sicher schon ;-)

Müdigkeit…

Ich habe insgesamt weniger Unterricht als letztes Jahr und komme früher heim, aber trotzdem kann konnte ich nach der Schule ziemlich schnell müde werden. Blödes Melantonin, welches dafür sorgt, dass man bei Dunkelheit müde wird ;-) Sitzt man untätig in der Schule, radelt (was das Zeug hält) heim und geht dann Mittagessen, kann das schnell auf den Kreislauf schlagen. Inzwischen habe ich es halbwegs im Griff. Meine Tipps?

  • Kopfdusche: Halte deinen Kopf 10 Sekunden unter eiskaltes Wasser
  • Zitrone: Beise in eine saure Zitrone (zB esse etwas Saures)
  • Stiegenlaufen: Laufe die Stiege in deinem Haus 3mal hin- und hinunter
  • Balkon: Stehe auf, ziehe deine Socken aus, gehe auf den Balkon, atme die kalte Luft ein und lasse deine Füsse an den kalten Fliesen abfrieren
  • Lüften: Fenster aufreißen und Zimmer kühlen (um die Jahreszeit ideal) ;-)
  • Programmieren: Manchmal entdecke ich ein Projekt an welchem ich eine halbe Stunde arbeite und danach wacher denn je bin

Ohne Gewähr auf gesundheitliche Folgen ;-)

Linux is more configurable…

Von meiner Startup-Datei habe ich schon mehrmals erzählt. Wenn ich meinen Rechner boote, dann erscheinen der Reihe nach ToDo-Listen, RSS-Feeds, pidgin, etc.

In Windows folgt das ganze diesem System:
Notepad++ wird mit den ToDo-Listen geöffnet
Wird es geschlossen, erscheint Thunderbird
Wird es geschlossen, erscheint pidgin
Die Batch-Datei muss manuell beendet werden (rechte Maustaste > Schließen)

Linux arbeitet da schon ein bisschen komplexer :-)
Möchtest du die Programme der Reihe nach aufrufen?
Eingabe von y für ja
Es erscheint ein Willkommensgruß
Über Variablen wird der Ort der ToDo-Listen-Dateien ermittelt
Starte den Music-Player
Starte direkt darauf den Editor mit den ToDo-Listen
Wird der Editor geschlossen, öffne Thunderbird
Wird Thunderbird geschlossen, öffne pidgin
Warte noch 2 Sekunden und beende das Skript selbstständig

Also welches OS ist anpassungsfähiger? ;-)

WebKit-IE

Internet Explorer mit WebKit?

Webseitenentwicklungs-Prioritäten

Ich erwähnte bereits den Kampf zwischen Wirtschaftlichkeit und Ideologie. Wie sollte man handelt, wenn W3C-Kompatibilität und Wirtschaftlichkeit in Konflikt stehen?

Prinzipiell: Bei Webseiten versuche ich den folgenden Grundsätzen zu folgen:

  1. One page, one job
  2. Strikte Trennung zwischen HTML, CSS, JS, PHP, TEMPLATES und CONF
  3. Dynamik
  4. Überprüfen von Zuständen, die normalerweise nicht auftreten (gutes Error-Management)
  5. KISS
  6. Kompatibilität mit großer Anzahl von Browsern (IE, FF, Opera, Konqueror, Chrome, Safari, Lynx, etc.)

Im Punkt #5 steht auch wieso ich gegen PHP-OOP bei durchschnittlichen Webseiten bin: OOP kann eine Seite verdammt unübersichtlich machen. Vor allem wenn es schlecht dokumentiert, wenn die Objekte eine starke Abhängigkeit voneinander haben oder es natürlich schlecht programmiert ist. Bei kleinen Webseite bin ich weiterhin gegen OOP (PS: python-OOP finde ich schöner als PHP-OOP)!

Jetzt aber zur eigentlichen Frage: Was ist, wenn sich X und Y ausschließen? Wie geht man damit um? Ich habe für mich die folgende Liste geschrieben. Die #1 hat die höchste Priorität und muss überall gewährleistet sein. Mit “Ideologie” versuche ich bis zur #7 alle Punkte zu erfüllen.

  1. Hauptsache, es funktioniert (Browserkompatibilität)
  2. Sicherheit
  3. SEO (Google)
  4. W3C-Kompatibilität
  5. Quelltext übersichtlich (clientseitig sowie serverseitig)
  6. Quelltext kommentieren (serverseitig)
  7. Laufzeit Optimierung

Was ich auch immer machen wollte, aber immer vergaß: Log-Datei für Systemfehler. zB “08.11.01 date.php konnte smileys.php nicht öffnen”

Perfekter Körper?

Philosophische Frage aus dem BIO-Unterricht:
Ein Mensch hat verschiedene Aufgaben bzw. Probleme zu lösen. Haben wir den perfekt abgestimmten Körper, um jene Probleme zu lösen?

Die Frage wurde von Peter geowned (Antwort ist das Stichwort Mutation)

ubuntu 8.04

Ubuntu 8.04

Juhuu! Hallo aus ubuntu ;-)

Endlich habe ich es geschafft (rund 7 Wochen Verzögerungszeit). Das gesamte Wochenende war ich mit dem Umstellen auf ubuntu beschäftigt. Es ist mir aber jetzt gelungen alles zu sortieren (kenne jetzt meine 34,3 GB Festplatte mit 140 466 Dateien auswendig ;-) ).

Eines muss ich definitiv sagen: Ubuntu 8.04 ist das designtechnisch schönste Betriebsystem, welches ich jemals gesehen habe. Von den Farben her hat es genau meine Lieblingsfarben getroffen und die Benutzeroberfläche ist traumhaft :-)

Ein paar kleine Fehler mit der rechten Maustaste in Thunderbird gibt es. Eine Java-VM für GeoGebra habe ich noch nicht geschafft zu installieren. Ansonsten ist noch diese kleine ToDo-Liste zu erledigen, die ich auf die nächsten Tage aufteile…
FTP-Client ... miss
RSS-Feeds ... done
putty.exe ... miss
winscp.exe ... done
Firefox (Lesezeichen, Add-Ons) ... half way
Strg+Shift+< -> ~/ ... miss
Photoshop ... GIMP works :-)
Notepad++ ... vim?
Batch-Datei am Start (Textdateien, RSS, pidgin, firefox, musik) ... miss
Audacity ... miss
gcc ... miss
javac ... miss
python ... miss
Accounts in 2 Foren ... miss

(miss = fehlt, noch nicht angeschaut; ? = als Ersatzkandidat im Rennen; done = würdigen Ersatz gefunden)