Category: Helma

Helma Feed

JCaptcha is using com.sun.image.codec.jpeg and that sucks!

JCaptcha is great for creating captchas but you cannot easily use jcaptcha with OpenJDK because it depends on an internal Sun API. (com.sun.image.codec.jpeg)

That really sucks and breaks a lot of Java products.

Programming, Helma : Read more : comments (0) : 18.01.2010 11:23

Helma Jetty 6.1.x benchmarks

I've done a few quick benchmarks with Helma trunk to compare the performance impact of the Jetty 6.1 changes. Tested multiple times with ab and various number of requests and concurrency i've get an performance increase of 2% to 12% with Jetty 6.1.18 when hitting the welcome app.

Helma : Read more : comments (0) : 20.06.2009 19:33

Helma now uses Jetty 6.1.x

The Helma patches that i've worked on in the jetty6 branch are now finished and hannes merged the branch to trunk. So Helma 1.7.0 will use Jetty 6.1.x if no major problems arise.

Why have i done that? Jetty 6 is nearly a complete rewrite with a much better architecture that lets you do things you couldn't do with Jetty 5 (Filters, QoS, ...) and should also give higher performance because of Java NIO. I've let you know if that really improves Helma performance once i've done some benchmarks.

You don't know Helma? Helma is a server side JavaScript Framework and Application Server. It's what keeps ORF.ON, club3k.net, blogr.com, twoday.net and a lot of other sites running.

Helma : Read more : comments (0) : 19.06.2009 09:38

Helma on Jetty 6.1.16

About a year ago i've started thinking about how to implement Request Based Priority Queues in Helma and got to the conclusion that Jetty 5.1 which Helma uses up to now is too old for what i wanted to do so i've created a patch for Helma to use a newer Jetty but had never time to finish it.

Today i've read about hannes wishlist for Helma 1.7 and time seemed perfect to talk with him about my patch. About 10 Hours later i've succeeded and can serve at least the welcome app.

Patch: http://home.bluelife.at/tmp/helma-jetty6-v3.patch

img/articles/helma-jetty6.jpg

Programming, Helma : Read more : comments (0) : 05.04.2009 17:49

Club3k Geschichte

Nachdem es nur mehr sehr wenige Leute gibt die Club3k über die gesamte Zeit gekannt haben und so gut wie keinen mehr der auch die Geschichten hinter den Kulissen kennt möchte ich, dass dieses Wissen nicht ganz verloren geht. Deshalb versuche ich einige Gedanken die Club3k betreffen zusammenzufassen. Wenn ein Administrator aus dem Nähkästchen plaudert sozusagen.

Die Entstehung

Es sind nur mehr wenige denen der Begriff Netonline oder in der korrekten schreibweise //etonline noch etwas sagt. Die plötzliche Schließung von Netonline im Frühjahr 2003 hat einige hundert vorwiegend Salzburger Stammchatter hinterlassen die sich nicht damit abfinden konnten. Einige davon haben es wohl geschafft in Andi den richtigen Nerv zu treffen und so hat er sich eines Tages bei mir gemeldet und mich gefragt was ich davon halte einen Nachfolger für Netonline aufzubauen. Meine Antwort könnt ihr euch wohl vorstellen und so sind wir dann zusammen mit Martin der sich um die Technik gekümmert hat im September 2003 pünktlich zu Schulbeginn mit Club3k online gegangen.

img/articles/club3k-history-2004.png

Die Software ist der Schlüssel

Begonnen haben wir 2003 mit einer Community auf Basis meines selbst entwickelten PHP Frameworks und der NEngine von Andi als Chat die er speziell für Netonline geschrieben hat. Nach etwa einem Jahr hat Andi sich die Zeit genommen und im Winter 2004 die Community komplett neu mit Helma programmiert und dabei auch gleich die Galleries deutlich verbessert. Im darauffolgenden Jahr sind dann auch die Events sowie Top or Flop durch Community Updates hinzugekommen. Seit Anfang 2006 haben wir auch einen selbst entwickelten Quizbot laufen und seit Anfang 2008 gibt es sogar einen eigenen Chatclient.

Der schwierige Weg an die Spitze

Aus der Not geboren, ohne konkretes Ziel aber mit komplett selbst entwickelter Software. Das sind keine guten Zutaten für eine erfolgreiche Zukunft aber die Community war damals im Vergleich zu anderen durch ihre Galleries und die User etwas besonderes und die Lungauer Chatter haben uns nicht im Stich gelassen. So ist Club3k stetig gewachsen und das teilweise weit schneller als uns lieb war denn angefangen haben wir auf einem alten Athlon 1800+. Der war allerdings nach einem Jahr bereits völlig überlastet und so blieb uns im Frühjahr 2006 nichts anderes übrig als einen Dual Xeon 3Ghz zu kaufen der nach damaligen Schätzungen ziemlich überdimensioniert war. Wir hatten allerdings bereits nach einem halben Jahr fortwährende Stabilitätsprobleme da die Datenbank dermaßen überlastet war, dass wir sogar gezwungen waren mehrere Millionen alter Gästebucheinträge zu löschen um nur irgendwie den Winter zu überstehen. Im Frühling darauf folgte dann ein Core2Duo 2.4Ghz als neuer Datenbankserver der seitdem ununterbrochen läuft und seinen Dienst verrichtet. Damit stand dem weiteren Wachstum nichts mehr im Weg und das kam dann auch denn der Herbst 2007 war eine wirkliche Bewährungsprobe für die gesamte Software und Hardware und auch gleichzeitig der Höhepunkt des Wachstums. So haben wir es innerhalb von etwas mehr als 4 Jahren auf ziemlich genau 68.000 registrierte User und 950.000 Bilder geschafft.

img/articles/club3k-history-2008.jpg

Die Probleme

Eine kleine Community benötigt so gut wie keinen Support. Natürlich hat mal hier und da jemand technische Probleme, Unklarheiten oder er will nur etwas wissen aber das kann man als Administrator bequem nebenher erledigen. Sobald eine Community aber eine gewisse Größe überschreitet ist man plötzlich nur mehr mit Support beschäftigt. User wollen gelöscht werden, beschweren sich über andere User, beschweren sich über Gott und die Welt, fragen sich was eindeutige Fehlermeldungen bedeuten könnten oder glauben plötzlich auch noch, dass du ihre Windows Probleme lösen könntest und so verschwendest du als Programmierer jeden Tag erstmal Zeit mit Usersupport anstatt zu programmieren. Nachdem unsere User vorwiegend aus dem Lungau kommen und dort inzwischen so ziemlich jeder zwischen 8 und 20 Jahren einen Account bei uns hat erwischt man auch irgendwann unweigerlich den Bodensatz der Gesellschaft. User die nur Unfug anstellen und glauben im Internet anonym zu sein. Die stören permanent im Chat, faken und beleidigen andere User, gehen ihren rechtsradikalen Neigungen nach oder drohen einem mit DDoS Angriffen. Soetwas kostet uns nicht nur unheimlich viel Zeit sondern ist in Härtefällen auch äußerst unangenehm für alle anderen User. Diese Probleme hat leider jede Community ab einer bestimmten Größe und man kann dem nur bedingt entgegenwirken. Wie jede Community die stark wächst braucht man von Zeit zu Zeit neue und oft auch mehr Hardware die natürlich Geld kostet. Ohne konkreten Businessplan oder potente Geldgeber stößt man da schnell an seine Grenzen und da Club3k nie einen Businessplan hatte war es immer schwer neue Hardware aufzutreiben. Natürlich haben wir es immer irgendwie geschafft aber das Resultat sind natürlich Monate in denen mal wieder die Community sehr langsam oder garnicht erreichbar ist und man kann leider nichts dagegen machen. Mit etwas mehr Geld könnte man sich ordentliche Server zur richtigen Zeit leisten und könnte viele der Ausfälle von vorne herein vermeiden.

Die "neue" Community

Als Club3k im Jahr 2004 entstanden ist gab es noch sehr wenig Konkurrenz aber das hat sich in den folgenden Jahren mit dem Web 2.0 Boom geändert als StudiVZ, Facebook, Flickr und MySpace aufkamen. Dem hat man mit 2 Programmierern natürlich nicht viel entgegenzusetzen aber wir haben trotzdem damit begonnen eine neue Community und eine neue Chatengine zu planen. Da wir aber nur unsere Freizeit opfern können dauert alles viel zu lange und bis die neue Community fertig ist kann man sie bereits fast wieder als alt bezeichnen. Das frustriert natürlich und es zeigt einem, dass man zu klein ist und "ein bischen innovativ" ist einfach nicht genug.

Das Ende

Nach über 4 Jahren Club3k ist es für uns alle eine schwere Entscheidung gewesen. Immerhin haben wir alle viel Zeit, Geld und Arbeit in dieses Projekt gesteckt. Auch wenn davon nicht viel übrig bleiben wird so sind es doch viele Freundschaften und Erfahrungen die wir alle davon mitnehmen können. So bleibt uns nur der Dank an alle treuen User. Danke, dass ihr Club3k zu dem gemacht habt was es heute ist und danke auch an alle im Team die ihre Zeit geopfert haben und der Letzte macht das Licht aus.

Helma, Club3k : Read more : comments (42) : 13.01.2009 09:10

MediaService 1.0 Release

Es war etwas mehr als 3 Wochenenden arbeit aber jetzt ist die Spezifikation soweit vollständig implementiert und der Prozess mit lighttpd wie auch nginx kompatibel und ausgiebig getestet.

Die Performance ist sehr gut denn mit sehr kleinen Files war ich nicht in der Lage den Server an seine Grenzen zu führen denn bei etwa 700 POST Requests pro Sekunde ist die Helma Client Implementierung an seine Grenzen gestoßen. Sobald ich eine realistische Dateigröße von 100KByte gewählt habe war dann die Notebookfestplatte bei ca 100 POST Requests pro Sekunde ausgelastet.

Damit habe ich nun alles erreicht was ich vor einer ersten öffentlichen Version erreichen wollte und kann stolz das erste Release von MediaService 1.0 verkünden. Quellcode und Spezifikation finden sich auf der Projektseite.

Weiter geht es mit einer Helma Client Implementierung die momentan noch in Entwicklung ist und auch Apache Kompatibilitätstests stehen noch auf dem Plan für eine der nächsten Versionen.

Announcement, Helma : Read more : comments (0) : 13.09.2008 22:54

Ports Freeze kommt näher ...

Kaum nähert sich eine Deadline werden alle ganz hektisch und beginnen zu arbeiten. So ist morgen der FreeBSD Ports Freeze für 6.4 und 7.1 also war ich dieses Wochenende mal zur Abwechslung fleißig und hab einiges Patches und Ports fertig gemacht und weitergeleitet. Ein paar davon sogar rechtzeitig :o)

Ports

Bugs and Patches

FreeBSD, Helma : Read more : comments (0) : 07.09.2008 19:55

Benchmark: MyISAM vs. InnoDB

Da ich bei Club3k für den Datenbankserver zuständig bin hat es mich schon seit längerem interessiert was denn nun die beste MySQL Engine im Zusammenspiel mit Helma ist. Nachdem es aber bisher nur Vermutungen und keine Benchmarks gegeben hat habe ich ein paar Wochen geopfert um diese Wissenslücke zu stopfen.

Für alle die es kurz mögen: InnoDB ist bis zu 10% schneller

Bisher läuft bei club3k ein FreeBSD 6.2 mit einer MyISAM Konfiguration und libthr. Meine Benchmarks haben ergeben, dass FreeBSD 7 mit InnoDB ca 25% mehr Performance bringen dürfte. Jetzt heißts nur mehr warten bis FreeBSD 7 production ready ist.

FreeBSD, Helma : Read more : comments (0) : 11.10.2007 20:27

Das Sommerloch scheint fast überwunden ...

denn in den letzten Wochen war nicht gerade viel los. Mein neuer Laptop hat jetzt auch noch für eine Woche Verzögerung gesorgt aber der ist jetzt soweit fertig konfiguriert also steht mir nichts mehr im Weg. Fehlt nur mehr der Arbeitsgeist.

Ganz untätig war ich aber nicht denn ich habe zumindest mit den InnoDB vs. MyISAM Tests begonnen und es sieht so aus als wäre InnoDB eine Spur schneller als MyISAM. Das gilt aber nur für den Fall wie Helma die Datenbank nutzt also alles Selects auf den Key und maximal ein ORDER BY. Details folgen in den nächsten Wochen wenn ich alle Zahlen kontrolliert und reproduziert habe.

Mein neuer Laptop hat mir auch schon viel Freude bereitet und die versprochene Zusammenfassung für FreeBSD 7-current folgt natürlich auch demnächst. So kann ich wieder einige Jahre lang produktiv arbeiten auch wenn mir doch einige Fehler in FreeBSD und diversen Programmen untergekommen sind. Das wird sich aber bis zum Release bestimmt noch bessern.

FreeBSD, Helma : Read more : comments (0) : 16.09.2007 21:22

MySQL 5.1 sucks

Datenbanken sind wie Banken - sie müssen nicht perfekt sein aber sie sollten zumindest den Anschein erwecken denn immerhin vertraut man ihnen sehr wichtige Dinge an. Mit MySQL 5.0 war ich da eigentlich immer sehr zufrieden es gibt keine Probleme und man vertraut einander.

Eigentlich habe ich nur einen Tag eingeplant für die Vorbereitungen meines MyISAM vs. InnoDB Vergleichstests für typische Helma Last. Jetzt hab ich allerdings bereits mehr als 2 Tage damit verbraucht und schön langsam die Nase voll.

Das erste Probleme ist schon nach der Installation von MySQL 5.1.21 aus den Ports aufgetreten. Man startet den Daemon wie gewohnt und ....

> /usr/local/etc/rc.d/mysql-server start Starting mysql. > [: -eq: unexpected operator

na bravo da war wieder jemand nicht in der Lage ein platformunabhängiges Shell Script zu schreiben. Diese exotische Funktionalität hat wohl noch niemand getestet denn auch mit einigen Versuchen und Änderungen lässt sich der Daemon nicht starten. Das ist auch auf der FreeBSD Mailingliste schon jemandem aufgefallen.

mysqlslap

Gut also mache ich den Test mit 2 Rechnern und am Server läuft wieder MySQL 5.0 und nur der Client bekommt 5.1 weil mysqlslap erst ab 5.1.4 dazugekommen ist. Der erste Durchlauf dauert dann auch nur fast 2 Stunden (ca 650k Selects) bis der Prozess mit einem Out of Memory Fehler aussteigt. Das ist nicht euer Ernst oder? Leider wohl doch zumindest gibt es den Bug #28284 Test "mysqlslap" reports "out of memory" schon seit Mai. Dieser ist seit 2 Wochen gefixt und kommt dann hoffentlich in der nächsten Version. Also werde ich erstmal abwarten und alle MySQL Entwickler in meine Gebete einschließen -- die haben es wohl dringend nötig.

Helma : Read more : comments (1) : 09.09.2007 18:34