Rubrik: Software

Wordpress Update

Habe mal auf die neuste Version von Wordpress erneuert, ausserdem gibt es ein Twitter-Plugin. Eigentlich hielt ich ja Twitter immer für absolut nutzlos, aber: Wenn ich im Sommer wieder längere Zeit ohne Internet am Reisen bin, kann ich über SMS kleine Updates auf die Seite bringen.

1 Kommentar 3. Juli 2008

Bald kein Email-Spam mehr?

News.com berichtet:

A key Internet standards body gave preliminary approval on Tuesday to a powerful technology designed to detect and block fake e-email messages. It’s called DomainKeys Identified Mail, and it promises to give Internet users the best chance so far of stanching the seemingly endless flow of fraudulent junk e-mail.

Hinter dem Projekt stehen Yahoo, Cisco, Sendmail und PGP.

Funktionieren soll das über eine digitale Signatur, die vom Postausgangsserver in den Email-Header geschrieben wird und vom empfangenden Server anhand der Domain der Email überprüft werden kann. Auch autorisierte Dritt-Server können Emails mit einer solchen digitalen Signatur verschicken.
Damit wird wohl hoffentlich endlich das Problem des uralten Mailprotokolls beseitigt.

2 Kommentare 23. Mai 2007

Ubuntu/Windows XP: Texas Instruments Card Reader PCIxx21

Hatte da ein Problem auf meinem Amilo L1310G Notebook.

Und zwar lässt sich unter Windows XP einfach nichts auf meine SD Karten schreiben. Das Problem tritt bei anderen Benutzern ebenfalls auf und es lag noch keine Lösung vor. Ich hab ewig neue Treiber gesucht und ganz allgemein gegooglet, sogar den Trick mit dem Tape-über-Lock-Streifen-kleben aber das hat alles nichts gebracht.

Einmal nach dem Kartenlesegerät im Zusammenhang mit Ubuntu gesucht, da scheint’s wohl nur geringfügige Probleme und vor allem eine Lösung dazu zu geben. Und Tatsache, unter Ubuntu funktioniert der Cardreader ohne Probleme.

Entweder unter Windows ist es das selbe Problem, oder die Treiber sind einfach Schrott.

Nur ein Problem mit dem Lüfter, der entweder garnicht oder ständig läuft, bleibt noch bestehen und dann ist Ubuntu für mich auf dem Laptop gesetzt.

21. Mai 2007

Ubuntu auf Fujitsu Siemens Amilo L1310G revisited

Endlich läuft Ubuntu vernünftig auf meinem Laptop. Ich hatte es mit den beiden letzten Ubuntu Versionen ja schonmal probiert, damals war es aber noch erfolglos.

Es gab damals Probleme mit dem Wlan, das beim Fujitsu-Siemens Amilo L1310G über eine interne Funktionstaste aktiviert wird. Das hab ich mit einer super Software damals noch hinbekommen und ich glaube das Wlan lief auch. Allerdings gab es dann ein Problem mit Grafiktreibern die ich aus den automatischen Updates runtergeladen hatte - Keine Menüleisten mehr. An dem Punkt hab ich dann frustriert aufgegeben, zumal auch die WPA Verschlüsselung nicht funktionierte.

Mit Ubuntu 7.04 Feisty Fawn muss man zwar wieder ein bisschen rumhacken, dafür funktioniert das Wlan jetzt richtig gut (und ich bin über einen Grund für das alte Display Problem gestolpert).

Hier also ein kurzes Howto, wie man das Wlan trotz des Wlan Switch Buttons aktiviert bekommt.

Man muss sich zunächst ein Linux Kernel Modul runterladen, das zwar für ein anderes Notebook (FSC Amilo A1655G) entwickelt wurde, aber auch hier funktioniert: Fsaa1655g.

Aber Achtung, unter Ubuntu 7.04 funktioniert die Installation nicht direkt.

Zunächst entpacken wir das Archiv und wechseln in das Verzeichnis:

tar xvjf fsaa1655g.tar.bz2
cd fsaa1655g

Dann müssen wir den Programmcode der Datei ändern (ist aber nur eine Zeile die wir auskopieren müssen). Das Programm versucht nämlich eine Altlast aus den Linux Sources zu laden, die Datei config.h wurde mittlerweile entfernt.

pico fsaa1655g.c

Suche jetzt die Zeile in der folgendes steht:

#include config.h

Und ersetze sie hiermit:

// #include config.h

Danach geht’s weiter mit der normalen Installation:

make
sudo make install

Ich bin nicht ganz sicher ob die folgenden Zeilen noch nötig sind, da sie noch mit den alten madwifi Tribern zusammenhängen.
Öffne /etc/modprobe.d/options (sudo pico /etc/modprobe.d/options) und füge diese beiden Zeilen an das Ende der Datei hinzu:

options ath_pci rfkill=0
options fsaa1655g radio=1

Dann noch fsaa1655g zur modules list in /etc/modules hinzufügen:

sudo pico /etc/modules

Und Rebooten. Done. Hoffentlich ;)

1 Kommentar 16. Mai 2007

SMS Gateway mit ordentlicher Schnittstelle?

Ich suche für ein Kundenprojekt einen SMS-Versand Anbieter mit einer ordentlichen Schnittstelle, am liebsten ein Webservice. Man soll per Schnittstelle SMS an mehrere Nummern senden oder seine eigene(n) Verteilerliste(n) pflegen können. Anbindung erfolgt dann per PHP.

Sobald ich was gefunden hab, folgt hier natürlich eine Liste der besten Kandidaten:

Es ist nicht ganz einfach hier einen Überblick zu bekommen. Man muss sowohl Kinderzimmer- als auch unseriöse Anbieter aussortieren und dann noch darauf achten, dass geeignete Schnittstellen vorliegen.

Was soll man z.B. von Anbietern halten, die eine “kostenlose” Registrierung verlangen, nur um sich die Schnittstellenbeschreibung runterladen zu können?

Massenversand.de mit HTTP-Schnittstelle für einzelne SMS und Email Schnittstelle für mehrere SMS scheint mir da schon zum oberen Ende zu gehören und wird wohl unsere Wahl.

1 Kommentar 14. Mai 2007

Skalierung einer PHP Applikation

Die Kosmonauten, mit denen ich zu Beginn meiner Freelancer-Zeit schon einmal zusammen gearbeitet habe, kontaktierten mich zu Beginn des letzten Wochenendes mit der eiligen Bitte, mir die Performance einer von ihnen entwickelten Partyseite einmal genauer anzuschauen.

Der Grund war, dass die frisch gelaunchte Seite Eraffe.de ab einer Last von 250 Usern die gleichzeitig online waren, extrem langsam wurde bzw. den Server fast komplett lahm legte. Die Seite ist in PHP mit Mysql Anbindung umgesetzt und lief auf Mysql 5.0 und einem Apache 2.2 mit PHP 5.2. Zugrunde lag eine Datenbank mit Daten von ca. 15.000 Usern.

Da sowohl die Entwickler als auch das Team der Community davon ausgingen, dass das Problem mit einer Erweiterung der Server Architektur relativ einfach zu lösen war, waren zum Zeitpunkt meiner Beratung schon neue Server unterwegs. So konnten wir über 4 zusätzliche leistungsstarke Server verfügen, von denen drei als Appserver (Apache 2.2, PHP 5.2) und einer als reiner DB-Server vorgesehen waren.

Meine Arbeit bestand darin, den Entwickler sowie den Serveradmin der Kosmonauten zu beraten und teilweise helfend in die Programmierung einzugreifen. Erste Anhaltspunkte waren die per Skript gemessenen Parsezeiten von einzelnen Programmteilen und die hohe CPU Last die Mysql zog.

Nachdem ich den Code kurz überflogen hatte um mir einen Überblick zu verschaffen begannen wir damit,eine Kopie der Seite auf einen externen Server zu legen. Dieser war noch etwas leistungsschwacher, aber durchaus geeignet um die Anwendung zu Testzwecken darauf laufen zu lassen. Auf dem Liveserver war dies nicht möglich, da sich auch Nachts noch eine größere Anzahl Benutzer darauf befand.

Server Software: Als ersten Schritt wechselten wir von Apache 2.2 auf den weniger speicherintensiven Lighttpd und die neusten Mysql/PHP Versionen sofern noch nicht aktuell. Zudem wurde auf PHP-Ebene Opcode-Caching durch APC aktiviert.

Code Profiling: Um den Flaschenhals im Skript zu finden, nutzten wir zunächst die PHP Extension Xdebug. Xdebug wird einfach auf dem Server installiert und man kann per Profiler genau sehen, wo sich der oder die Flaschenhälse im PHP Teil der Anwendung befinden. Xdebug benötigt auch noch zusätzliche Serverressourcen, deshalb sollte man ihn nicht ständig laufen lassen. Ist aber auch gar nicht nötig, da man innerhalb kürzester Zeit große Datenmengen zum Profiling erhält. Diese Daten können dann mit WinCacheGrind oder KCacheGrind (KDE) analysiert werden und zeigen bis zur letzten ausgeführten Funktion genaue Daten zur Parsezeit und Speicherintensität an.

Query Analyse: Das Profiling ergab, dass sich unser Flaschenhals bei den Mysql Queries befand. Um die langsamen Queries rauszufiltern kann man am Mysql Server das Slow Query Log aktivieren.

Daraus ergab sich, dass bei unserer Anwendung die Queries zur Auslese der sich auf der Seite befindlichen User (das typische Onlineuser Skript) sowie einige Schreibbefehle (sowohl INSERT als auch UPDATE) mit mehreren Datumsfunktionen die langsamsten waren.

Bei fast allen Queries lies sich noch einiges optimieren, dennoch blieb die Anwendung langsam.

Um das zu messen muss man natürlich Lasttests auf der Seite fahren, möglich durch Apache-Benchmark, Siege oder ein Windows-Tool zur Trafficanalyse.

Caching: Das Naheliegendste war nun, eine Form von Caching zu aktivieren. Da im Projekt Smarty eingesetzt wurde, bot sich das Smarty eigene Caching an, erwies sich aber als die schlechtere Lösung. Um die erste Nacht zu überstehen, deaktivierten wir auf dem Liveserver dann die Onlineuser-Anzeige und benutzten dateibasiertes Caching der Mysql Ergebnisse von einigen anderen Funktionen, deren Abfragen sich als langsam erwiesen. Am Ende der Nacht war zumindest die Startseite und einige andere häufig benutzte Funktionen der Seite wieder benutzbar.

Im Endeffekt erwies sich dann das mir bis dato unbekannte memcached als die beste Lösung zum Speichern von aus der DB gelesenen Daten. Im Laufe des Tages bauten wir es in jede Funktion ein, wo dies Sinn machte [ PHP.net/memcache ].

Damit war mein Job so gut wie erledigt, doch ein paar weitere Tipps konnte ich dem Entwicklerteam noch auf den Weg geben:

  • Keine Superklassen, die alles können (und womöglich noch statisch aufgerufen werden) benutzen.
  • Keine Angst vor einzelnen Funktionen. Sie sind schneller als statisch aufgerufene Methoden die bunt in eine Klasse geworfen werden.
  • Programmteile nur unmittelbar an der Stelle an der Sie benötigt werden nachladen (gilt für Klassen, Objekte, Funktionen, Konstanten..).
  • PHP Optimierung (Kommentare durchsehen), Lighttpd Optimierung, Apache Optimierung, Mysql Optimierung ist weiterhin nötig!

Innerhalb von zwei Tagen konnten wir so die Seite auf eine angenehme Geschwindigkeit bringen und die Last auf den Servern deutlich verringern, auch wenn der Code noch nicht optimal ist.

12. Mai 2007

Internet Explorer Developer Toolbar

Die Internet Explorer Developer Toolbar von Microsoft ist fertig.

The Microsoft Internet Explorer Developer Toolbar provides a variety of tools for quickly creating, understanding, and troubleshooting Web pages.

Die Developer Toolbar erlaubt ein ähnliches Debuggen des Quelltextes wie es unter Firefox mit der Firebug Extension möglich ist und funktioniert unter IE 6 sowie IE 7.

11. Mai 2007

Synergy: Eine Maus & Tastatur für mehrere Rechner

Das Tool Synergy erlaubt es, mehrere Computer in einem Netzwerk mit ein und derselben Maus und Tastatur zu bedienen.
Ein Rechner dient hierbei als Server, die anderen verbinden mit einem kleinen Client zu ihm. Durch eine Mausbewegung über eine eingestellte Bildschirmgrenze (oder mehrere) wechselt man auf einen anderen Bildschirm (und auch Rechner). Die Tastatur ist immer dort aktiv wo sich die Maus befindet. Auch Copy+Paste über mehrere Rechner hinweg ist damit möglich.
Und das Beste daran: Synergy funktioniert auf Windows, Unix und Mac OS X (ab 10.2) Systemen.

11. Mai 2007


Kalender

August 2008
M D M D F S S
« Jul    
 123
45678910
11121314151617
18192021222324
25262728293031

Einträge nach Monaten

Einträge nach Rubrik