Beiträge der Kategorie default

Neuer Job

Ich wohne und arbeite am jetzt in Köln. Grad mal seit einer Woche am Arbeiten und schon zwei Typo3-Extensions entwickelt, geht gleich richtig zur Sache hier. Netterweise hat mein Foto und eine Begrüßung gleich auf der Firmenseite einen Platz gefunden, wo auch ein Link zu diesem Blog zu finden ist.
Neue Mitarbeiterin
Noch zwei witzige Sachen über das Unternehmen: die Initialien stimmen überein. Es macht echt Spaß Extensions zu entwickeln, die mit np_ beginnen. Dann scheinen die Jungs hier auch grün zu mögen (die Frösche kann ich ja nach und nach einschmuggeln).

Sinnvolle Software

Innerhalb von zwei Jahren habe ich auf meinem Rechner so viel installiert, daher dachte ich mir, ich stelle eine kleine Liste zusammen mit sinnvoller Software, damit ich dann nicht lange suchen muss. Alle hier aufgelisteten Programme sind entweder frei verfügbar der Open Source.

Das erste was man braucht, ist ein Antivirus-Programm. Da gibt es einige, für die man bezahlen muß, gibt aber auch sehr gute, die für Privatanwender umsonst sind. Da gibt es z.B. BitDefender oder Antivir von Avira.

Dann gibt es noch ein Tool zum Entfernen von Spyware: Ad-Aware von Lavasoft.

Ein nettes Soundbearbeitungsprogramm ist Audacity – die Oberfläche sieht billig aus, aber man kann damit Sounddateien bearbeiten, abspeichern, in diverse Formate exportieren, mischen etc.

Auch sehr cool ist CDex, damit kann man seine CDs für Backupzwecke rippen oder in mp3 umwandeln.

Sehr schön ist auch ein PDF-Drucker wie CutePDF. Damit kann man (fast) alle Dateien in ein PDF Drucken. Funktioniert sogar besser als der PDF-Export in Open Office.

Sehr geiler und schlanker Musikplayer ist Foobar2000. Damit kann man verschiedene Formate und Streams abspielen und es ist viel handlicher als das mittlerweile bloatige WinAmp.

Zum Abspielen von Videos gibt es zwei sehr gute Player – VLC ist sehr klein, gut zu bedienen und kann die meisten Formate ohne Probleme abspielen, mplayer bringt so viele Codecs mit, dass man damit wirklich jedes Format abspielen kann.

Mit TrueCrypt kann man seine Festplatte oder auch nur Dateien verschlüsseln.

POV-Ray ist ein 3D-Renderer. Die Szene und Animationen werden mit einer Skriptsprache definiert und dann vom Renderer zu einem Bild gerendert. Die Beispiele finde ich sehr beeindruckend.

Auch ganz schick zum Gestalten ist Processing. Das ist eine Programmiersprache auf Javabasis, die es ermöglicht, Animationen und Vektorgrafiken zu zeichnen. Contra: Java, daher langsam.

Geschrieben in default | Kommentare deaktiviert für Sinnvolle Software

Firefox Add-ons

Es gibt viele Listen mit Firefox Add-Ons: für Security, für Webentwickler, zum Bilder gucken etc. Das ist eine Liste mit denen, die ich gerne nutze, hab ich zusammengestellt, damit ich die schnell auf einem anderen Browser installieren kann.

Web Developer – CSS ein- und ausschalten, Bereiche ein- und ausblenden, Quelltext
https://addons.mozilla.org/de/firefox/addon/60

Firebug – Quelltext optionen, Ladegeschwindigkeiten, Styleeigenschaften etc.
https://addons.mozilla.org/de/firefox/addon/1843

MeasureIt – ein Lineal, mit dem man Abstände abmessen kann
https://addons.mozilla.org/de/firefox/addon/539

ColorZilla – Color picker für die Seite, Zoom-Funktionalität
https://addons.mozilla.org/de/firefox/addon/271

Cache Status – Cache-Anzeige und -Verwaltung in der Statusleiste, Cache löschen mit 2 Klicks
https://addons.mozilla.org/de/firefox/addon/1881

Extended Cookie Manager – Cookieregeln für alle Webseiten schnell einzeln festlegen
https://addons.mozilla.org/de/firefox/addon/1243

Die folgenden Add-ons sind nicht unbedingt notwendig, aber trotzdem sehr praktisch.

del.icio.us – falls man ein del.icio.us Account hat, kann man seine Bookmarks schnell verwalten. Es gibt einige Extensions mit diesem Namen, zwei sind ganz gut.
del.icio.us Bookmarks – überschreibt leider die lokalen Bookmarks und fügt eine Sidebar hinzu, die das Durchsuchen einfacher macht.
https://addons.mozilla.org/de/firefox/addon/3615
del.icio.us Buttons – einfach und schön, fügt zwei Buttons: Tag und MyBookmarks hinzu, völlig ausreichend
https://addons.mozilla.org/de/firefox/addon/1532
(gibt auch für Mr.Wong https://addons.mozilla.org/de/firefox/addon/2136)

Down Them All! – komplexer Downloadmanager
https://addons.mozilla.org/de/firefox/addon/201

IE Tab – ermöglicht das Anschauen von Webseiten mit der IE Engine (wenn da bloss die Developer-Extensions funktionieren würden)
https://addons.mozilla.org/de/firefox/addon/1419

NoScript – erlaubt das Ausführen von JavaScript nur von bestimmten Seiten, am Anfang etwas nervig, aber auch sehr nützlich, denn man bekommt weniger Werbung
https://addons.mozilla.org/de/firefox/addon/722

SeoQuake – zweigt PageRank der Seite, Keywords an, ich empfehle aber das Seitenparsen auszustellen
https://addons.mozilla.org/de/firefox/addon/3036

YSlow – analysiert die Webseite und gibt Ratschläge, wie man die Performance verbessern kann
https://addons.mozilla.org/de/firefox/addon/5369

Geschrieben in default | Kommentare deaktiviert für Firefox Add-ons

On-the-fly Suche mit JavaScript

Es war mal eine Textdatei. Da haben unterschiedliche Leute etwas reingeschrieben, z.B. Kochrezepte. Da Textdateien nicht strukturiert sind, wurde es immer schwieriger, in der Datei etwas zu finden (ok, von der Benutzung von Strg+F mal abgesehen). Da entstand die Idee aus der Textdatei eine HTML-Datei zu machen und mit einer Suche zu versehen, die sucht während man tippt. Am besten sollten die Inhalte immernoch für alle pflegbar sein und trotzdem strukturiert.

Ich hab rausgefunden, dann man in HTML auch auf XML-Daten zurückgreifen kann, wenn man sie per JavaScript lädt. Zunächst erstellt man eine XML-Datei. Da legt man in dem Dokumentelement viele Knoten an, in denen jeweils Texte drinstehen. In diesem Fall heißen die Knoten entry und haben drei Unterknoten: title, desc (für description) und tags. Diese Datei speichert man als food.xml ab.

Dann erstellt man eine HTML-Datei. Diese hat erstmal das Grundgerüst, also head und body. In den Head kann man ein wenig Style-Eigenschaften einfügen. Im Body erstellt man ein Element mit der Id „page“ – da kommen dann die Ergenbisse rein und die Suchbox. Die Suchbox ist ein input-Feld, der Korrektheit halber packt man noch ein Form drumrum und fügt hinter das Eingabefeld ein Div ein, wo das getippte angezeigt wird (nur zur Kontrolle). Das Eingabefeld wird mit einem Event-Listener, nämlich on KeyUp versehen. Warum nicht onChange? Weil onChange erst ausgelöst wird, wenn man das Feld verläßt und wir wollen ja währenddessen suchen und onKeyUp meldet nach jeder Tasteneingabe. Die Suchbox hat eine Id (damit man darauf zugreifen kann) und von mir aus eine Klasse.

Was will man eigentlich durchsuchen? Die Daten stehen ja in der XML-Datei. Zunächst soll die Datei eingelesen und der Inhalt dargestellt werden. Beim Suchen werden die relevanten Teile ein- und ausgeblendet. Und um rauszufinden, welche Teile relevant sind, sollten die Inhalte vorher indiziert werden. Also: einlesen, darstellen, indizieren.

Das Einlesen sollte beim Aufruf der Seite stattfinden, also im body onLoad. Da wird die Funktion importXML aufgerufen. Nach einigem Suchen habe ich ein Skript gefunden, das meinen Vorstellungen entspricht und die XML-Datei „importiert“ abhängig vom Browser. Wenn der Import beendet ist, werden die Inhalte dargestellt. Dazu holt man sich alle Elemente mit dem Tag entry. Den Inhalt von title fügt man in ein h1 ein, den Inhalt in ein p, aber erst nachdem man alle Zeilenumbrüche in br umgewandelt hat. Und die Tags kommen in eine Liste.

Wenn man mit dem Darstellen fertig ist, dann muss nur noch indiziert werden. Dazu läuft man alle entry-Elemente wieder durch und speichert die Daten in einem assoziativen Array. Die Indizes sind die Id des div-Elementes, in dem der Inhalt drin steht.

Die Funktion search ist daher ganz einfach: man läuft das assoziative Array ab und erfragt die Position des gesuchten Begriffes. Falls der Begriff vorkommt, setzt man die Sichtbarkeit des dazugehörigen div-Elementes auf true, ansonsten auf false (oder in diesem Fall display auf block bzw. none).

Zu beachten ist: es sollten keine Umlaute verwendet werden, weil dann der IE die Datei nicht lädt und nur meldet „Object erwartet“ (die Fehlermeldung, die nur vor Aussagekraft strotz) und die Tags sollten richtig verschachtelt werden.

Und hier das Ergebnis:
XML-Datei als Vorlage
Suche mit JavaScript

PS: Vielen Dank an Maryna Hetsyuk für die wertvolle Hilfe, ist immer wieder sehr lustig 🙂

PayPal in Seite einbauen

Das ist eine einfach Möglichkeit, eine Abwicklung der Bezahlung über PayPal in eine Seite einzubauen. Da ich nichts dazu gefunden habe, wie man es macht, hier eine kleine Anleitung, für die die gar keine Ahnung davon hatten, so wie ich.

Bei PayPal gibt es zum Testen eine Developer Umgebung und eine Sandbox, in der man Testaccounts anlegen kann. Die Developer Umgebung findet man hier https://developer.paypal.com/. Da kann man sich ein Testaccount als Entwickler anlegen, z.B. als test@test.de.
Dann legt man sich zwei Testaccounts an, einen Verkäufer und einen Käufer. Dabei gibt man als Zugangsdaten eine leicht Abweichende E-Mail-Adresse ein, aus dieser wird PayPal sowieso eine Test-E-Mail-Adresse generieren, das könnte z.B. testseller@test.de sein. Die E-Mail Adresse wird gekürzt und um eine zufällige Zahl ergänzt.

Wenn man zwei Test-Accounts hat, kann man sich in der Sandbox einloggen. Dazu wählt man einen Account aus und drückt auf den Button „Enter Sandbox Test Site“. Das ist aber nur so zum Spaß.

Auf der Integration Center Seite findet man eine Anleitung dazu, wie man PayPal in die eigene Seite einbauen kann. Ich habe mich für die Website Payments Standard Methode entschieden. Das Bestellformular ist sehr einfach und soll erstmal nur die Artikel anzeigen mit einem Eingabe bzw. Auswahlfeld für die Menge. Das ist ein Einspiel-PHP-Code:

while ( $row = mysql_fetch_array( $aQResult ) ) {
$i++;
echo ‚

‚;
echo ‚

‚.$row[„Bez“].‘

‚;
echo ‚

‚.$row[„Nr“].‘

‚;
echo ‚

‚.$row[„VK“].‘ €

‚;
if($row[„link“]!=““) {
echo ‚

‚.$row[„link“].‘

‚;
} else {
echo ‚

‚;
echo ‚

‚;
}
echo ‚

‚;
}

Das Formular wird an die Seite selbst gesendet. Dort werden die Artikel ausgewertet. Falls die Summe 0 ist, dann eine Fehlermeldung anzeigen. Ansonsten werden die bestellten Artikel angezeigt und die Summe berechnet. PHP-Code-Schnipsel dafür:


$sum = 0;
$paypal = “;
while ( $row = mysql_fetch_array( $aQResult ) ) {
if($_POST[‚amounts_‘.$row[„Nr“]] > 0) {
$amount = $_POST[‚amounts_‘.$row[„Nr“]];
$price = $row[„VK“]*$amount;
$sum+= $price;
echo ‚

‚;
for($i=0;$i<$amount;$i++) { $paypal.= '‚;
$paypal.= ‚‚;
$paypal_counter++;
}
echo ‚


‚.$row[„Bez“].‘

‚;
echo ‚

‚.$row[„Nr“].‘

‚;
echo ‚

‚.$row[„VK“].‘ € x ‚.$amount.‘

‚;
echo ‚

‚.$price.‘

‚;
}
echo ‚

‚;
}
echo ‚

Gesamtsumme: ‚.$sum.‘

‚;
if($sum > 0) {
echo ‚

zurück ‚.$paypal.‘

‚;
} else {
echo ‚

zurück Sie haben keine Artikel ausgewählt

‚;
}

Der PayPal Counter ist extra notwenig, weil in der Anleitung steht, dass die Artikel durchnummeriert sein müssen und keine Zahl ausgelassen werden darf. Falls von zwei Artikeln mehrere bestellt worden sind, wird die Bestellung wieder in Einzelteile aufgeteilt.

Damit das Formular richtig verarbeitet werden kann, fehlen noch einige Daten, nämlich der Formularbeginn:





In der Anleitung steht, dass man als Formularadresse https://www.paypal.com/cgi-bin/webscr angeben sollte, aber es wird nicht funktionieren, da die Accounts ja nur in der Sandbox existieren. Daher habe ich nach einigem verzweifelten Tests rausgefunden, dass man die Sandbox-Adresse eintragen muss. Der Wert der Variablen business muss der E-Mail-Adresse des Testverkäufers entsprechen.

Man wird auf eine Seite weitergeleitet, auf der die Artikel angezeigt werden und die Möglichkeit zum Einloggen gegeben ist. Dort gibt man die E-Mail-Adresse des Testkäufers an. Und kann dann die Bestellung absenden.

Wenn man mit den Tests fertig ist, sollte man natürlich die URL im Formular auf die von PayPal angegebene ändern und die Adresse des echten Verkäufers eintragen.

Geschrieben in default | Kommentare deaktiviert für PayPal in Seite einbauen

Weiterleitung der Mails vom vServer

Ich habe einen Virtual Server (2oder2*), tolles Ding (grade wenn man einiges neu kompiliert, s.u.), die E-Mail Accounts sind aber über das Control Center eingerichtet, also nicht auf dem Virtual Server. Das Problem bestand darin, dass man über ein Kontaktformular keine Mails verschicken konnte. Genauer: Die Seite ist unter domain.de* zu finden, da ist ein Kontaktformular mit Name, Nachricht, das an test@domain.de geschickt werden soll. Die Mailbox ist aber auf einem anderen Server eingerichtet. Wenn man nun das Kontaktformular ausfüllt und senden will, versucht der Server das Kontaktformular lokal zuzustellen, die Adresse existiert aber nicht und so wird die Mail verworfen.

Das Problem habe ich mit Hilfe von serversupportforum.de und huschi.net gelöst. Als erstes muss man die Mailfunktion für die Domain ausschalten. Das geht entweder über Plesk (Domains > domain.de > Mail > disable) oder indem man die Einträge der Domain in /var/qmail/control/virtualdomains und /var/qmail/control/rcpthosts löscht. Dann legt man eine Datei mit dem Namen smtproutes im Ordner /var/qmail/control an und schreibt da :smtp.2oder2.de* rein. Das führt dazu, dass die Emails an den SMTP Server des Providers weitergeleitet werden.

*Name von der Redaktion geändert

Geschrieben in default | Kommentare deaktiviert für Weiterleitung der Mails vom vServer

Tipps zum Tunen eines vServers

Anstatt Hosting-Paket hab ich mich letztens für einen Virtual Server vond 1und1 entschieden – mit Plesk als Verwaltungsoberfläche. Es ist schon ganz schick, man kann so viele Sachen selbst machen. Die Installierte PHP-Version und die Apache Version waren mit einfach zu alt, deswegen hab ich einfach beschlossen Apache und PHP neu kompilieren. Als erstes die aktuellste Apache Version herunterladen, entpacken (gunzip, tar -xf), konfigurieren (.configure Optionen siehe unten), kompilieren (make) und installieren (make install). Dann in einen anderen Ordner PHP herunterladen und die gleiche Prozedur durchführen. Über Plesk den alten Apache stoppen und das automatische Starten unterbinden.

Hier die Konfiguration für Apache2

./configure --prefix=/opt/apache2
--enable-auth-digest --enable-cache
--enable-mem-cache --enable-rewrite
--enable-vhost-alias --enable-so

Hier die Konfiguration für PHP5
./configure --prefix=/opt/php5 --with-zlib
--with-gd --enable-gd-native-ttf
--with-freetype-dir --enable-exif
--with-mysql=/usr
--with-mysqli=/usr/bin/mysql_config
--with-regex=php
--with-apxs2=/opt/apache2/bin/apxs

Jetzt der Trick: Nachdem der Apache installiert ist, einige der Konfigurationsdateien aus dem alten Verzeichnis in das neue Verzeichnis kopieren, und die Pfade so ändern, dass einige der Dateien immer noch aus dem eigentlichen Verzeichnis ausgelesen werden, vor allem die Datei, in der die Virtual Hosts eingetragen werden (das ist wahrscheinlich die default-server.conf), dann kann man die Domains immer noch über Plesk konfigurieren. Eine wichtige Datei ist die load_modules.conf. Da werden bei dieser Konfiguration fast alle Einträge entfernt, und der Pfad zum neuen PHP-Modul eingefügt. Zwischendurch den Apache von der Konsole starten (Plesk geht nicht mehr) und schauen, ob alles funktioniert.

LoadModule php5_module /opt/php5/php-5.2.3/libs/libphp5.so

Die Dateien mit der Endung PHP mit dem folgenden Befehl als PHP interpretieren lassen. Server nochmal stoppen und starten. Fertig!

AddType application/x-httpd-php .php
AddType application/x-httpd-php .inc

Zu beachten: Domains können mit Plesk angelegt werden, dann muss aber nach dem Anlegen der Server neu gestartet werden.

Geschrieben in default | Kommentare deaktiviert für Tipps zum Tunen eines vServers