28. August

Fundsachen: New kid on the block und wirklich coole Produkte

von Wolf Brüning 3 Kommentare

Als ich mir am gestrigen Abend eine wohlverdiente Feierabend-Currywurst gegönnt habe, fiel mir an unserer Currywurstbude (deutschlandweit bekannt dank Kabel 1) ein großer Flachbildschirm über dem Bestellannahme-Fenster auf. Auf diesem wird anscheinend lokalen Firmen die Möglichkeit gegeben, Werbung für sich zu machen. Eine dieser Werbungen weckte dann auch mein ganz besonderes Interesse (kurz unterbrochen von der Frage „Ketchup oder Mayo?“): Da warb doch offenbar ein neuer lokaler Konkurrent für seine Leistungen in der „Internetprogrammierung“ – und wie! Ich musste gleich das Mobiltelefon zücken und ein (zugegebenermaßen verrauschtes) Bild der Anzeige schießen:

Handyfoto vom LCD

Im Angebot ist professionelle Entwicklung im Texteditor garniert damit, dass der Verzicht auf CMS-Systeme anscheinend auch noch als Vorteil beworben wird. Ich glaub da müssen wir uns bald warm anziehen. Intern wird bereits diskutiert, ob wir nicht auch auf Eclipse und Redaxo und alles verzichten sollten, denn gibt es schöneres als reines HTML im Notepad zu schreiben? ;) Fairerweise möchte ich aber jetzt nicht zu sehr über diesen neuen Contender richten, eventuell hat er sich auch einfach nur ziemlich missverständlich ausgedrückt – dies aber sehr amüsant.

Ansonsten steht der folgende Punkt schon etwas länger auf meiner Liste, trotzdem habe ich ihn sträflicherweise in meinen bisherigen Fundsachen-Posts immer wieder unterschlagen: Der Webshop Fred & Friends verkauft ein Sammelsurium an Spass-Produkten, die in einem sofort die Begeisterung wecken (insbesondere wohl bei den Entwicklern unter uns, die mutmaßlich ihren halben Kleiderschrank mit Shirts von Think Geek gefüllt haben). So gibt es dort Eiswürfel in Space-Invaders-Optik, Pac-Man-Topfhandschuhe, wirklich große iPhone/iPod-Kopfhörer oder Kaffeetassen für richtig harte Jungs oder etwa der „You are here“-Fußabtreter. Ein Durchblättern des Warenagebots lohnt sich wirklich, bestellen muss man die Sachen aber leider in den USA.

Nebenbei bemerkt ist die Seite trotz Ihres Charms auch ein Beispiel für viele Dinge, die man im Web-Interface-Design nicht machen sollte, so schmeißt einen die Suche raus zu Google, die Navigation lässt es nicht wirklich offenbar werden, dass es hübsche Übersichtsseiten zu jeden Thema gibt und in der Produktansicht fehlt jegliche Interaktionsmöglichkeit geschweige denn Information zum Erwerb des guten Stücks. Aber ich schweife ab…

Ein schönes Wochenende!

25. August

38,75 MB/Minute

von Christian Metzeler 4 Kommentare

Ich war gestern abend so frei und lud via MAPS das neue Windows 7 herunter, um es auf meinem Laptop zu installieren. Dank der bahnbrechnenden Idee (Vorsicht: haufenweise Sarkasmus), Software nicht mehr auf DVD zu verschicken, sondern per Download zur Verfügung zu stellen, durfte ich also unsere VDSL-Leitung voll auskosten. Die rund 3100 MB wurden in lediglich 80 Minuten durch die Leitung gepumpt. Das entspricht 38,75 MB pro Minute oder auch 0,658 MB pro Sekunde, was wiederum recht genau 5166 Kilobit/Sekunde ausmacht. Von den angeblichen 50.000 Kilobit pro Sekunde ist man da noch weit entfernt, aber es sei der Telekom zugute gehalten, dass es ja nicht nur am Netzdurchsatz liegt, sondern auch an der Geschwindigkeit des ausliefernden Servers. Insofern würde ich sagen, dass die Leistung ganz passabel war.
Und wenn ich jetzt daran zurückdenke, dass ich vor rund 15 Jahren mit großen Augen an meinem ISDN-Modem mit Kanalbündelung flockige 128 kbit/s rausquetschte… uhhh. Na, die Zeiten sind schon ein bisschen besser geworden. ;-) .

21. August

Größere Datenbanken in REDAXO exportieren

von Christoph 8 Kommentare

REDAXO-Logo Bei einem aktuellen Projekt stießen wir auf eine unangenehme Eigenart von REDAXO: beim Exportieren der Datenbank (was wir sowohl zum Sichern der Inhalte als auch zum Synchronisieren unserer Entwickler-Rechner verwenden) wird der erzeugte SQL-Code komplett im Speicher aufgebaut. Das funktioniert bei kleinen Datenbanken, wie sie die meisten Websites haben, auch in der Regel ganz gut.

Unvorteilhafterweise gibt es eben auch die etwas größeren Projekte. In unserem Fall wollten wir einen Dump anlegen, in dem die Produktdaten von varisale enthalten sind. Die entsprechende Datenbank enthält insgesamt etwas mehr als 30.000 Datensätze, davon 26.000 von varisale. Klingt nach viel, sind aber gerade einmal circa 3 MB. Um die Geschichte abzukürzen: es gelang uns nicht, vor dem Ende der Scriptlaufzeit (zugegeben, der Host gehört nicht zu den schnellsten) oder vor Ende des Speicherlimits einen vollständigen Dump anzulegen. Zum Vergleich: auf einem unserer Entwicklerrechner benötigte REDAXO stolze 8 Sekunden und 13 MB Speicher. Es war offensichtlich, dass wir etwas unternehmen mussten.

Der Export von REDAXO hat gleich mehrere Probleme:

  • Es werden nur normale INSERT-Statements erzeugt. Jeder Datensetz erhält seinen eigenen INSERT-Befehl.
  • Auch der Dateiexport erzeugt das TAR-Archiv komplett im Speicher, bevor es auf die Platte geschrieben wird. Dass das bei vielen Bildern nicht lange gut gehen wird, dürfte niemanden wundern.
  • Die rex_sql-Klasse wird nicht angewiesen, ihre Resultsets wieder aus dem Speicher zu entfernen.
  • Bei großen Tabellen wird der Import durch die aktivierten Indexe massiv behindert. Immerhin muss nach jedem “INSERT INTO” der Index der Tabelle erneuert werden. Operationen im Index dauern nur wenige Millisekunden, aber das läppert sich.
  • Die am Anfang der Datei erzeugten Kommentare sind kein ANSI-SQL-Standard. Kommentare in SQL beginnen im Standard mit “–”.
  • Die von REDAXO erzeugten CREATE-TABLE-Statements sind nicht semantisch identisch zu den Originaltabellen. Alle Tabellen werden als MyISAM exportiert und alle Indexe werden zu UNIQUE-Indexen, was das Re-Importieren eines Dumps mit Tabellen, die mehrere Indexe nutzen (wie es bei uns aus Performancegründen und aus gutem Menschenverstand üblich ist) unmöglich macht.

Da wir den Dateiexport von Redaxon ohnehin nicht verwenden (SVN und FTP helfen, alles synchron zu halten), haben wir uns nur um den Datenbank-Export gekümmert. Da wir keine Hoster kennen, die noch MySQL 4.x verwenden, haben wir uns auch keine Sorgen um Inkompatibilitäten des Dumps zu anderen (alten) MySQL-Servern gemacht. Damit konnten wir die folgenden Verbesserungen umsetzen:

  • Es werden sog. Extended Inserts erzeugt. Wir fügen pro INSERT-Statement direkt 5.000 Datensätze ein. Weit mehr sind denkbar, werden aber von der Größe der Datensätze beschränkt (ab einer gewissen Länge, 16 MB per default, schneidet MySQL die Anfrage ab).
  • Vor dem Einfügen der Daten wird die betreffende Tabelle sowohl gesperrt (LOCK TABLES) als auch ihre Indexe deaktiviert.
  • Nach jeweils einer Tabelle (oder 5.000 Datensätzen) wird das MySQL-Resultset wieder aus dem Speicher von PHP entfernt.
  • Der Dump wird direkt in die .sql-Datei geschrieben anstatt im Speicher abgelegt zu werden.
  • Das CREATE-TABLE-Statement wird direkt von MySQL abgerufen und so im Dump gespeichert. Tabellen können so wieder exakt rekonstruiert werden.

Mit diesen Änderungen konnten wir den Aufwand, den Export zu erstellen, auf 1,5 Sekunden und 6 MB Speicher drücken. Ganz zu schweigen davon, dass der Export nun nicht mehr 3, sondern nur noch 0,9 Megabyte groß ist. Außerdem dauert der Import der Datenbank nun nicht mehr 75 Sekunden, sondern nur noch 8 Sekunden (auf einem Rechner, bei dem MySQL nur minimalen Speicher beanspruchen darf).

Die von uns gemachten Änderungen können über die untenstehenden Links für REDAXO 4.2.x und 4.1.x heruntergeladen werden. Zur Installation sollten einfach die besteffenden Dateien vom import_export-AddOn überschrieben werden.

Wir würden uns freuen, wenn die Änderungen irgendwann ihren Weg in das Standard-REDAXO finden, damit sie allen zugute kommen. Durch unseren extensiven Einsatz von Datenbank-Indexen ist der Patch Voraussetzung, um einige von uns entwickelte AddOns zu nutzen.

Update (19.09.2009): Die Änderungen sind seit Revision 1066 Teil von REDAXO und werden damit mit dem nächsten Release ausgeliefert.

18. August

Investitionszulage rules

von Christian Metzeler Ein Kommentar

Also… im wesentlichen könnte ich diesen Post auch einfach mit “Boah geil” überschreiben, das würde es auch gut treffen. Immerhin hat es sich nun – mal abgesehen von der Arbeitsentlastung – richtig gelohnt, eine Steuerberatung zu haben. Denn ohne diese wäre ich nicht auf die Investitionszulage gestossen. Im Kern geht es bei dieser darum, dass unser subventionsfreudiger Staat mit der Zulage Investitionen von Unternehmen in bestimmten Gebieten Deutschlands besonders fördern möchte. Sachsen-Anhalt gehört erfreulicherweise dazu und das bedeutet, dass unsere Erstinvestitionen in 2008 staatlich gefördert werden. Die Förderhöhe beträgt 25% der Nettosumme. Wenn man sich zu Gemüte führt, dass wir 2008 rund 20.000 Euro an solchen Erstinvestitionen hatten, kommt ein hübsches Sümmchen dabei raus, das wir nun von der Finanzkasse als Förderung erhalten.

Ich gebe zu: ausnahmsweise freut es mich mal, das wir in Deutschland einen solche Subventionswirrwarr haben – es trifft die Richtigen :-) . Denn im Gegensatz zur Abwrackprämie, die hauptsächlich den ausländischen Automobilbauern und Händlern Freuden beschwert hat, trifft die Investitionszulage inländische Betriebe in speziellen Regionen. Das ist schon wesentlich zielgerichteter, wenngleich sich mir als ordnungspolitisch liberal und marktwirtschaftlich eingestelltem Menschen natürlich trotzdem die Nackenhaare hochstellen. Angesichts der Tatsache, dass die Fördergebiete exakt die neuen Länder sind, darf man sich sicher fragen, warum man eine solche Maßnahme nicht bspw. auf das Durchschnittseinkommen einer Region in Deutschland anwendet und dann bspw. sagt: “Wo das Einkommen 30% unter dem Schnitt liegt, gilt die Zulage”… oder ähnlich. Inzwischen ist doch jedem klar, dass es förderwürdige Regionen nicht nur im Osten gibt und förderunwürdige Regionen nicht nur im Westen.

Aber naja, ich will mal heute nicht rumnörgeln, wenn es uns doch tatsächlich gut getroffen hat. Für mehr Infos über die Investitionszulage empfehle ich ein Telefonat mit dem Steuerberater. Es lohnt sich. :-)

11. August

Was fehlt auf dieser Website und in diesem Blog?

von Christian Metzeler 5 Kommentare

Heute die konkrete Frage an unsere – hoffentlich geneigten – Leser: was fehlt auf unserer Website und in unserem Blog? Können wir was besser machen, interessanter oder sinnvoller?

Nachdem unser Blog vor kurzem ein Jahr alt geworden ist – unsere Firmenwebsite ist in etwa genauso alt – stehen wir nun vor einem Relaunch. Um euch ein bisschen Appetit zu machen: zunächst werden wir die webvariants-Website und das Blog optisch komplett neu gestalten und mit neuen technischen Features ausrüsten. Dazu gehören dann auch ein paar nette oder interessante Tech-Demos. Im zweiten Schritt werden wir mit mit labs.webvariants eine technologisch orientierte Website mit Praxisbeispielen, unseren selbstentwickelten Addons und weiterem Interessantem füllen.

Anlässlich dieser anstehenden Runderneuerung möchten wir gerne wissen, was wir sonst noch an neuen Inhalten berücksichtigen sollen oder können? Wir möchten solche Anregungen nach Möglichkeit gerne berücksichtigen und das geht am Besten vor(!) dem Relaunch. Schreibt uns also, was es denn noch sein darf, gerne auch als eMail, wenn ihr euren Beitrag nicht posten wollt.