Struck will Milliarden für Rüstungsprojekte ausgeben - aber im Nahverkehr sollen eine Milliarde in den Fernverkehr verschoben werden weil nicht genug Geld für beides da ist. Was für eine Moppelkotze
Archiv 16.1.2005 - 21.1.2005
Virtualisierung für Desktop-Prozessoren - gerade für Serverparks sehr interessant. Natürlich geht das heute mit den diversen VMWare-Versionen, mit User-Mode-Linux und noch ein paar anderen Projekten, aber eine Unterstützung in der CPU macht solche Lösungen natürlich effizienter.
Weil Gier ist Geil ...
Die Deutsche Welle fragt in Anbetracht der neuen GVL Gebührenpläne: Auf Wiedersehen, Webradio? Ich sehe durchaus die Notwendigkeit für die Vergütung von Künstlern ein. Aber welchen Dienst erweist die GVL den Künstlern, wenn sie durch Erhöhung der Gebühren den Künstlern einen Teil ihres Marktes vernichten? Gerade die kleinen Webradios sind ja auch dafür bekannt öfter mal eher selten gespielte Künstler zu bringen.
Was mich auch daran stört: die Erhöhung der Gebühren kommt ganz ohne irgendeine Form von Verbesserung oder Erweiterung - im Gegenteil, die Bedingungen werden eingeschränkt, der Preis angehoben. Mehr zahlen für weniger Leistung.
Da braucht sich die GVL nicht über negative Kritik zu wundern, denn sowas nennt man nomralerweise Kartellmissbrauch, Wucher oder Abzocke.
WordPress : Tackling Comment Spam ist eine recht vollständige Zusammenstellung der diversen Ansätze gegen Kommentarspam und Trackbackspam in WordPress.
Der Papst und die Gummitütchen

Der Papst lebt immer noch in seiner Traumwelt: "Gegen Ausbreitung von Aids hilft Keuschheit" - was natürlich eine ziemlich absurde Haltung ist, wenn man sich die Problematik in Gegenden wie Afrika anschaut. Dort können weite Teile der Bevölkerung nicht mal dem von der katholischen Kirche ja befürworteten Geschlechtsverkehr zur Kinderzeugung nachkommen ohne sich anzustecken ...
Die Haltung des Papstes in diesem Thema ist schlicht und einfach unverantwortlich. Gerade in Entwicklungsländern hat die Kirche oft einen noch viel zu grossen Einfluss und sollte sich bewusst sein, das Menschen dort durch ihre Unsinnigen Reden sterben. Man kann den Problemen der Überbefölkerung in solchen Gegenden und der Gefahr sich an Aids anzustecken nicht durch alberne Hinweise auf Keuschheit entgegentreten - da helfen nur Aufklärngskampagnen und gerade die Förderung des Einsatzes von Kondomen.
heise online - EU-Rat will weiteren Anlauf bei Softwarepatenten wagen
heise online - EU-Rat will weiteren Anlauf bei Softwarepatenten wagen und tritt weiter die Meinung der Bevölkerung und der Parlamente mit Füssen. Und unsere Regierung in Berlin sitzt weiter auf ihrem fetten von der Wirtschaft gepuderten Arsch und macht nichts. Egal ob durch so einen Mist der Softwaremittelstand Probleme bekommen wird, egal ob das ganze nur den grossen Softwaregiganten hilft, egal ob es nur ein Amerika-in-den-Arsch-kriechen ist. Niemand schert sich wirklich um die Sache, es sind doch nur so ein paar Softwarefuzzis die Krach machen, wen scheren die denn.
Und irgendwann wird selbst die dümmste Ministerin merken das Softwarepatente keine Arbeitsplätze schaffen.

Menschenverachtende Idee des Tages
Das Bangkog Hilton installiert Kameras im Todestrakt zur öffentlichen Ausstrahlung des Lebens der Gefangenen die auf die Hinrichtung warten - da hilft es auch nicht, das sie nicht planen die Hinrichtung selber zu zeigen. Das auch verurteilte Verbrecher Menschenrechte haben wird leider immer wieder ignoriert. Und damit stellt der Staat sich mit den Verbrechern letzendlich auf eine Stufe. Es verwundert also nicht, das ähnliche Praxis in den USA - zumindestens zum Teil - schon üblich ist. Das die Todesstrafe an sich sowieso schon eine der unmenschlichsten Ideen ist, die eine Gesellschaft haben kann (im Gegensatz zu allen anderen üblichen Strafen ist sie eben nicht reversibel oder zumindestens Entschädigbar bei Irrtum), steht sowieso ausser Frage. Staaten mit Todesstrafe (und damit letztendlich einem Rechtssystem das auf Rachegedanken und nicht auf Schutz der Gesellschaft aufbaut) kann ich nicht als sonderlich zivilisiert ansehen ...
Outlook zusammen mit Hotmail-Zugang zur Miete - na toll, verbreitet doch eine der beiden grössten Virenschleudern noch mehr als sie sowieso verbreitet ist.
SCO vs. Linux: SCO bekommt weiteres Material
Die auf den ersten Blick etwas seltsame Entscheidung der Richterin im Prozess SCO vs. IBM wird - wie üblich - von Groklaw erklärt. Die Rolle der Richterin ist eben nicht die Klärung wer Recht hat - das ist ein anderer Richter. Ihr Job ist nur dafür zu sorgen das alle Beteiligten alles relevante Material auf den Tisch legen. Es geht also alleine um die Ermittlungsunterlagen. Trotzdem ist das ganze natürlich wieder die nervige Verzögerungstaktik von SCO am Werk. Aber eben nicht der grosse Zwischenerfolg für SCO als das man das ganze evtl. sehen könnte.
Seltsame Haltung von Planetopia
Im Spreeblick hat der Planetopia-Journalist um Entfernung des Fragenmitschnittes gebeten - was mich daran fasziniert: er hatte keinerlei Skrupel seine verfälschten Schlüsse in der Sendung vor einem Milliionenpublikum zu veröffentlichen. Aber gegen die Veröffentlichung der Fragen die er gestellt hat, hat er was. Verträgt er seine eigene Medizin nicht?
Die Schlagzeile Staatsakt für die Flutopfer im Bundestag ist ein klassischer Beweis dafür, das die deutsche Sprache dringend Klammern zur Vorrangsdefinition benötigt
Versicherungen wollen Einblick in Gentestergebnisse
Versicherungen wollen Einblick in Gentestergebnisse. War ja zu erwarten, das sowas kommt. Schliesslich ist das der beste Weg für diese Abzockunternehmen sich aus den letzten verbleibenden Situationen zu verpissen wo sie vielleicht doch bezahlen müssten. Und genau darum geht es bei Versicherungen ja: den Leuten etwas zu verkaufen das man ihnen im Ernstfall garnicht bereit ist zu geben. Ist ja auch leicht, die Politik zwingt die Bürger notfalls dazu.
Aber in der Gentechnik und dem Aufbau von Genprobensammlungen stecken ja überhaupt keine Risiken und wir sind doch alle viel zu paranoid das wir diesen Lügnern und Betrügern nicht glauben. Jau. Klar. Und Schweine können fliegen.
bigempty.com ist ein sehr schönes Fotoblog mit einem sehr minimalistischen Design. Ein nettes Gimmick: die Hintergrundfarbe des Fussbereiches orientiert sich am angezeigten Foto - keine Ahnung ob es automatisch berechnet wird, aber die Idee ist nett.
Bundesgrenzschutz heißt bald Bundespolizei - war da nicht mal was von wegen Verbot einer Bundespolizei für Deutschland? Egal, auch diese letzte Schamgrenze fällt.
Fotos folternder Soldaten im Irak schockieren die Briten - aber werden sie deshalb ihrem Premier die Meinung sagen? Und wichtiger: wird Blair jetzt endlich von dem Wahnsinn Abstand nehmen? Oder wenigstens für die Zukunft daraus lernen und den Iran-Wahnsinn nicht mitmachen, der sich bei den Amerikanern so langsam andeutet?
Got New Spam Tactic Figured
Asymptomatic » Got New Spam Tactic Figured berichtet übert eine neue Taktik der Blogspammer. Und zwar tauchen relativ harmlose Kommentare auf Blogs auf, die keinen einzigen Link enthalten. Wenn die Spammer diese Kommentare über Google wiederfinden wissen sie, das sie dort höchstwarscheinlich weitere Kommentare ablassen können - und umgehen die Sperren, die darauf beruhen das ein Kommentar automatisch freigegeben wird wenn ein Besucher unter seiner eMail-Adresse schon mal einen freigegebenen Kommentar hatte. Es könnte also sein das nach einem Hey, Deine Seite finde ich toll Kommentar dann plötzlich ein Berg von Blogspam aufschlägt ...
Offenbar härtere Strafen für Drängler geplant - halte ich auch für dringend angebracht. Ich krieg jedesmal die Krise wenn wir mal auf der Autobahn unterwegs sind. Das ist doch pervers, was sich da einige hinterm Steuer erlauben ... (und nein, wir gehören weder zu den notorischen Linksfahrern noch zu den lahmen schleichern)
RSS 1.1: RDF Site Summary (DRAFT)
RSS 1.1: RDF Site Summary (DRAFT) - wie sinnvoll. Irgendjemand hat sich RSS 1.0 (ja, dieses ungeliebte RDF-basierte Format das eigentlich keiner so richtig kennt) und dazu einen Update entworfen. Weil, es gibt ja noch nicht genug Feed-Formate, da muss man ja unbedingt noch eins dazu packen.
Passend dazu bin ich dann auch noch über das HTML Syndication Format gestolpert - auch so eine sinnvolle Sache, da hat sich jemand gedacht den Feed einfach als speziell getaggten XHTML Source auszuliefern.
Und im Gegensatz zur RSS 3.0(das auf YAML basiert statt auf XML) meinen die anderen beiden es wohl mehr oder weniger ernst (beim HTML Syndication Format hoffe ich ja immer noch das es nur eine aufwändig gestaltete Ente war ...)
Schwarzenegger lehnt Gnadengesuch ab
Der Terminator macht seinen Filmfiguren alle Ehre - und schickt mal wieder einen Menschen in den Tod.
Sicher und anonym im Internet mit Proxys - Anleitung zur Nutzung von Privoxy und tor. Hatte ich irgendwie noch nicht hier verlinkt. Ist so gut, sollte man lesen. Wird man nicht dümmer von.
Subtraction: New, Improved Original Flavor!
Khoi Vinh stellt sein neues Design vor. Irgendwie cool wie er durch Weglassen einen - für mich - recht interessanten Eindruck produziert. Mir gefällt es jedenfalls sehr gut.
Ich wär ja froh wenn ich mal ein eigenes Design hinkriegen würde und meine Designs nicht immer irgendwo klauen müsste ... (einer der echten Vorteile von WordPress - das Kubrick Design mag ja mitlerweile etwas weit verbreitet sein, aber es lässt sich wenigstens auch von Design-Daus wie mir anpassen ohne das einem alles um die Ohren fliegt)
WordPress NoFollow Plugin
Das WordPress NoFollow Plugin versieht Links in Kommentaren mit dem rel="nofollow" um ihnen das Google-Ranking zu nehmen. Wobe ich persönlich daran schade fände, das dann generell Links nicht mehr von den Kommentaren gefolgt wird - und damit gerade die für kleinere Blogs brauchbare Möglichkeit durch aktive Diskussion in anderen Blogs das eigene zu promoten wegfällt. Ok, letzten Endes ist das auch nicht so schlimm, aber irgendwie geht schon ein kleines Stückchen der Ein Link wäscht den Anderen Mentalität der Blogs verloren ... Ein kleines Handicap ist, das der Autor das Plugin direkt verlinkt hat und dummerweise sein Server das PHP direkt ausführt. Im Moment kann man es also nicht runterladen, man kriegt nur eine leere HTML Seite
Zope-Hosting und Leistung - Englische Version
Jemand bat mich um eine englische Übersetzung meines Artikels zu Zope Hosting und Performance. Hier ist sie - okay, es ist nicht so sehr eine direkte Übersetzung, sondern eine Überarbeitung der Geschichte auf Englisch. Viel Spaß damit.
Kürzlich hatte der Schockwellenreiter Probleme mit seinem Blog-Server. Er verwendet Zope mit Plone und CoreBlog. Da ich seit einigen Jahren professionelles Zope-Hosting betreibe, Systeme, die im Bereich von 2000-3000 Hits pro Minute liegen, dachte ich, ich stelle einige der Dinge zusammen, die ich gelernt habe (manchmal auf die harte Tour) über Zope und Performance.
- Der wichtigste Schritt, den ich unternehmen würde: schlankere Anwendung. Werfen Sie alles aus Ihrer Zope-Datenbank, was nicht dort bleiben muss. Wenn es kein Content-Management benötigt, speichern Sie es in Ordnern, die von Apache bereitgestellt werden. Verwenden Sie mod_rewrite, um es nahtlos in Ihre Website zu integrieren, so dass die Leute von außen keinen Unterschied bemerken. Dies kann am besten für Layout-Bilder, Stylesheets usw. erfolgen - Apache ist viel schneller beim Liefern dieser Dateien.
- Verwenden Sie Zope-Caching, wenn möglich. Der Hauptparameter, den Sie überprüfen müssen: Haben Sie genug RAM. Zope wird beim Verwenden von Caching wachsen (insbesondere der RAMCacheManager). Die automatische Bereinigung wird Sie nicht retten - Zope wird trotzdem wachsen. Richten Sie eine Prozessüberwachung ein, die automatisch Zope-Prozesse tötet und neu startet, die über eine obere Grenze hinauswachsen, um Paging aufgrund eines zu hohen Speicherverbrauchs zu verhindern. Dies ist sogar eine gute Idee, wenn Sie überhaupt kein Caching verwenden.
- Es gibt zwei bemerkenswerte Cache-Manager: einer verwendet RAM und der andere einen HTTP-Beschleuniger. Der RAMCacheManager zwischenspeichert Ergebnisse von Objekten im Speicher und kann verwendet werden, um kleine Objekte zu zwischenspeichern, die viel Zeit oder Ressourcen für die Konstruktion benötigen. Der HTTPCacheManager dient zur Verwendung eines HTTP-Beschleunigers - die meisten Leute werden Squid verwenden, aber Sie können auch einen entsprechend konfigurierten Apache verwenden. Der Cache-Manager stellt die richtigen Expires- und Cache-Control-Header bereit, so dass der meiste Verkehr aus den HTTP-Beschleunigern und nicht aus Zope geliefert werden kann.
- Große Zope-Objekte töten die Performance von Zope. Bei der Verwendung von Caching zerstören sie die Effizienz des Cachings, indem sie den Cache mit großen Blobs von Dingen verunreinigen, die nicht oft benötigt werden, und Zope selbst wird durch sie ebenfalls in der Performance beeinträchtigt. Der Grund dafür ist, dass die Zope-Ausgabe im Speicher konstruiert wird. Die Konstruktion großer Objekte im Speicher verbraucht viele Ressourcen aufgrund der Sicherheits- und Architekturschichten in Zope. Besser ist es, sie mit Cronjobs oder anderen Mitteln außerhalb des Zope-Servers zu erstellen und sie direkt mit Apache zu liefern. Apache ist viel schneller. Eine typische Situation ist, wenn Benutzer PDF-Dokumente in Zope erstellen, anstatt sie außerhalb zu erstellen. Schlechte Idee.
- Verwenden Sie ZEO. ZEO ist großartig. Wirklich. Im Wesentlichen handelt es sich dabei nur um die ZODB mit einer kleinen Kommunikationsschicht darüber. Diese Schicht wird in Zope-Instanzen verwendet, anstatt die ZODB direkt zu verwenden. Auf diese Weise können Sie mehrere Prozessgruppen auf Ihrer Maschine ausführen, die alle mit derselben Datenbank verbunden sind. Dies hilft bei dem oben erwähnten Prozessneustart: Wenn einer ausgefallen ist, erledigt der andere die Arbeit. Verwenden Sie mod_backhand in Apache, um die Last zwischen den Prozessgruppen zu verteilen, oder verwenden Sie andere Lastausgleichswerkzeuge. ZEO macht auch regelmäßige Datenbankpacks einfacher: Sie laufen auf dem Server und nicht in den Zope-Instanzen - sie bemerken den laufenden Pack eigentlich kaum.
- Wenn Sie es haben, verwenden Sie eine SMP-Maschine. Oder kaufen Sie eine. Wirklich - das hilft. Sie müssen ZEO und mehrere Zope-Instanzen ausführen - andernfalls wird Sie der globale Interpreter-Lock von Python treffen und Zope wird nur einen der beiden Prozessoren verwenden. Das ist einer der Gründe, warum Sie mehrere Prozessgruppen von Anfang an wollen - Verteilung der Last auf der Maschine selbst, Nutzung mehrerer Prozessoren.
- Sie können die Leistung verbessern, indem Sie die architektonischen Schichten reduzieren, durch die Ihr Code geht. Python-Skripte sind schneller als DTML. Zope-Produkte sind schneller als Python-Skripte. Entfernen Sie komplexen Code von Ihrem Server und verschieben Sie ihn in Produkte oder andere externe Orte. Dies erfordert das Umschreiben von Anwendungscode, daher ist es nicht immer eine Option - aber wenn Sie es tun, wird es sich auszahlen.
- Lassen Sie Ihre ZODB-Datei nicht zu groß werden. Die ZODB fügt nur beim Schreiben hinzu - die Datei wächst. Sie wächst ziemlich groß, wenn Sie nicht regelmäßig packen. Wenn Sie nicht packen und Sie Multi-GB-ZODB-Dateien haben, beschweren Sie sich nicht über langsame Serverstarts ...
- Wenn Sie komplexen Code in Ihrer Zope-Anwendung haben, kann es sich lohnen, ihn in einen externen Server zu stellen und mit Zope über RPC-Mittel zu verbinden, um die Ausführung auszulösen. Ich verwende mein |TooFPy| für solche Dinge - ziehen Sie einfach den Code heraus, bauen Sie ein Tool und hängen Sie es über XMLRPC in die Zope-Anwendung ein. Ja, XMLRPC kann ziemlich schnell sein - zum Beispiel ist pyXMLRPC eine C-geschriebene Version, die sehr schnell ist. Das Verschieben von Code außerhalb von Zope hilft, weil dieser Code keinen der statisch zugewiesenen Listener blockieren kann, um Dinge zu berechnen. Das Erhöhen der Anzahl der Listener-Threads zahlt sich nicht so aus, wie Sie erwarten würden: aufgrund des globalen Interpreter-Locks wird trotzdem nur ein Thread zur gleichen Zeit laufen und wenn Ihr Code C-Erweiterungen verwendet, kann er sogar alle anderen Threads blockieren, während er verwendet wird.
- Wenn Sie PostgreSQL verwenden, verwenden Sie PsycoPG als Datenbank-Treiber. PsycoPG verwendet Sitzungs-Pooling und ist sehr schnell, wenn Ihr System viele Hits erhält. Andere Treiber blockieren Zope oft aufgrund von Einschränkungen wie nur einer Abfrage zur gleichen Zeit und anderem solchen Unsinn. Viele Administratoren mussten auf die harte Tour lernen, dass 16 Listener-Threads nicht wirklich 16 verfügbare Slots sind, wenn SQL-Treiber ins Spiel kommen ...
Es gibt noch mehr Möglichkeiten, die Leistung zu verbessern, aber die oben genannten sind mit relativ wenig Aufwand umsetzbar und hängen größtenteils davon ab, ob Sie genug Speicher haben und vielleicht eine SMP-Maschine. Speicher ist wichtig - je mehr, desto besser. Wenn Sie Speicher in Ihren Computer stecken können, tun Sie es. Es gibt so etwas wie zu viel Speicher nicht (solange Ihr Betriebssystem die Menge an Speicher unterstützt, natürlich).
Was tun, wenn selbst diese Tipps oben nicht funktionieren? Ja, ich war in dieser Situation. Wenn Sie in eine solche Situation geraten, gibt es nur eine - eher brutale - Lösung: aktives Caching. Damit meine ich das Herausziehen von Inhalten vom Zope-Server mit Cronjobs oder anderen Mitteln und das Speichern in Apache-Ordner und das Verwenden von mod_rewrite, um nur statische Inhalte an Benutzer zu liefern. mod_rewrite ist Ihr Freund. Im Wesentlichen nehmen Sie einfach die Seiten, die Sie derzeit umbringen, und machen sie pseudo-statisch - sie werden nur gelegentlich aktualisiert, aber die Hits erreichen Zope überhaupt nicht.
Ein weiterer Schritt ist natürlich mehr Hardware. Wenn Sie ZEO verwenden, ist es kein Problem, eine Farm von Zope-Servern vor Ihren ZEO-Maschine zu stellen (wir haben derzeit 5 Dual-Prozessor-Maschinen, die die Zope-Instanzen ausführen, und zwei eher große, fette, hässliche Server im Hintergrund für Datenbanken, Frontend mit zwei Apache-Servern, die im Vergleich zu den Backend-Dingen fast wie Zwerge aussehen).
Zope ist eine fantastische Software - verstehen Sie mich nicht falsch. Ich mag es. Besonders die Tatsache, dass es eine integrierte Entwicklungsumgebung für Webanwendungen und Content-Management ist, ist sehr schön. Und die einfache Integration externer Datenquellen ist auch schön. Aber Zope ist ein Ressourcenfresser - das ist nicht diskutierbar. Es gibt kein solches Ding wie ein kostenloses Mittagessen.
DNA-Analysen: Bayern startet Bundesratsinitiative

DNA-Analysen: Bayern startet Bundesratsinitiative - wer sonst wenn nicht die Bayern? Aktuelle Vorkommnisse werden als willkommener Anlass gesehen um schnell irgendwelche Änderungen durchzuprügeln. Egal das durch diese Änderung weitaus mehr als mit Fingerabdrücken möglich wird - und das viel mehr Missbrauchsmöglichkeiten vorhanden sind (z.B. Gen-Analyse zur Bewertung von Tauglichkeiten).
Auch das Urteil des Bundesverfassungsgerichtes das explizit DNA Analysen auf besonders schwere Verbrechen eingeschränkt hat wird dabei ignoriert. Wen schert auch das Bundesverfassungsgericht, wenn man mit Populismus so schön für Stimmung sorgen kann ...
Grafedia
Grafedia ist sowas wie Links für die Hardware da draussen. Ein Wort als eMail-Adresse unter einer Domain benutzt und man erhält als Antwort ein File. Das Konzept ist also simpel - interessant wird es dadurch, das man Handys einsetzt um die Mail zu schicken - und das Ergebnis auch aufs Handy zurückbekommt. Und das man die Wörter irgendwo draussen an Wände und ähnliches packen kann. Irgendwie verrückt, irgendwie schön. (Gefunden beim Spreeblick)
LynuxWorks Introduces First User-Mode Linux Software for Apple PowerPC G5 Based on the Linux 2.6 Kernel - damit kann man jetzt auch auf PPC-Maschinen logisch getrennte virtuelle Umgebungen unter Linux aufbauen.
MathWorld News: The Mathematics of Tsunamis - interessante (wie ich finde) Erläuterung der Wellenentwicklung von Tsunamis. Gefunden im zeitwissen:log.
Organizer Overload
5 Minuten gegrübelt welches Gerät gerade einen Alarm abgegeben hat und woran zum Geier mich das erinnern sollte. Nach dem Check von mehreren Geräten und Programmen gemerkt das es ein eigentlich schon längst gelöschter Alarm im (nicht gesyncten, daher nicht aktuellen) PDA war. Mangelnde Erkennungsfähigkeit von Alarmsignalen durch Alarmtondiversitätsüberlastung ...
QuickSilver: Act Without Doing
Brian Mastbrook beschreibt sehr schön wie Quicksilver das beste aus den Welten der tastaturgesteuerten Interfaces und der grafischen Interfaces verbindet. Leider läuft QuickSilver erst ab 10.3, weshalb ich immer noch mit LaunchPad festhänge - das allerdings in den neuesten Versionen (bis auf den wirklich extrem lahmen Start) schon ganz gut mithalten kann.
Allgemein finde ich diese sich langsam entwickelnde Idee der Kombination von grafischen und tastaturgesteuerten Interfaces sehr angenehm. Grafische Oberflächen sind zwar gut in der Präsentation von komplexeren Strukturen (eine Verzeichnisstruktur erschliesst sich mir grafisch schneller als von der Shell), aber oftmals doch recht umständlich zu bedienen. Tools wie QuickSilver und LaunchPad helfen da ungemein. Vermutlich würde auch Apples Universal Key Access mir helfen - hätte ich 10.3 ...
Save Think Secret's Nicholas Ciarelli Petition
Save Think Secret's Nicholas Ciarelli Petition sollte man als Apple-User sich überlegen zu unterschreiben. Diese Klagerei von Apple jedenfalls ist weder positiv noch sinnvoll - schliesslich lebt die Apple-Welt auch unter anderem von ihren Gerüchten. Gefunden beim Spreeblick.
The Temboz RSS aggregator
The Temboz RSS aggregator ist ein sehr nett gemachter Aggregator in Python. Er benutzt den Ultraliberal Feedparser für das Parsing und kann OPML importieren. Die Oberfläche finde ich schick gestaltet und die Administration ist recht simpel. Und er hat ein paar nette Features wie das zweispaltige Layout und die recht einfache integrierte Filtermöglichkeit sowie recht brauchbare Feedlistensortierungen. Ich spiel mit dem gerade mal ein bischen herum - auch wenn das warscheinlich meine Motivation einen eigenen Aggregator zu schreiben reduzieren wird
Working with Automator
Working with Automator beschreibt wie das neue Automationswerkzeug von Mac OS X 10.4 arbeitet. Macht neugierig ... (Gefunden beim Schockwellenreiter)
Zope Hosting und Performance
Der Schockwellenreiter hat Probleme mit seinem Zope-Server. Da ich nun schon seit einigen Jahren professionell (in der Firma) Zope-Hosting mache und dabei auch ein paar ziemlich heftige Portale laufen habe (zwischen 2000 und 3000 Hits pro Minute sind da nicht selten - allerdings verteilt auf viele Systeme), hier mal ein paar Tipps von mir zur Skalierung von Zope.
- Der wichtigste Schritt, den ich jedem empfehlen würde, ist entschlacken. Werft aus dem Zope all das raus was nicht rein muss - was statisch erstellt werden kann, was sich nur selten ändert, wo kein Content-Management nötig ist: raus damit. Packt es in normale Apache-Verzeichnisse. Nehmt Apaches mod_rewrite und sorgt dafür das die alten Adressen weiter funktionieren, aber aus dem Apache kommen. Das betrifft vor allem all die kleinen Scheisserlein wie Layoutgrafiken und so - die brauchen nicht aus dem Zope zu kommen, die werden besser aus dem Apache geliefert.
- Benutzt das Zope-Caching, wenn irgend möglich. Irgend möglich heisst: genug Speicher auf dem Server, damit auch sich fettfressende Prozesse mal etwas Luft haben. Generell führt das Zope-eigene Caching dazu, das Prozesse immer fetter werden - das Aufräumen im eigenen Cache ist recht unbrauchbar. Also setzt eine Prozessüberwachung ein, die einen Zope-Prozess abschiesst und neu startet wenn er zu viel Speicher braucht. Ja, das ist wirklich sinnvoll und notwendig.
- Gute Cachingmöglichkeiten gibt es im Zope zwei: den RAMCacheManager und den HTTPCacheManager. Ersterer speichert Ergebnisse von Zope-Objekten im Hauptspeicher und kann daher einzelne Seitenkomponenten cachen - packt das da rein, was komplex zu ermitteln ist.Der zweite (HTTPCache) arbeitet mit einem Squid zusammen. Packt einen Squid als HTTP Accelerator vor euren Zope und konfiguriert den HTTP Cache Manager entsprechend, so das Zope die passenden Expire-Header erzeugt. Dann wird ein Grossteil eures Traffics aus dem Squid betrieben. Der ist schneller als euer Zope. Alternativ zum Squid kann man auch einen Apache als HTTP Accelerator mit lokalem Cache konfigurieren - ideal für die, die keinen Squid installieren können oder wollen, aber durchaus Möglichkeiten zur weitergehenden Konfiguration eines Apache haben.
- Grosse Zope-Objekte (und das meine ich wirklich im Sinne von KB) machen Zope tot. Beim Caching zerfetzen sie einem die schönste Cache-Strategie und Zope selber wird arschlahm wenn die Objekte zu gross werden. Der Grund liegt in der Zope-Architektur: alle Objekte werden erst mühsam in mehreren Schichten durch mehrere Softwarelayer zusammengedengelt. Im Speicher - und belegen daher im Speicher auch entsprechend Platz. Raus mit den komplexen Objekten mit riesigen KB-Zahlen. Macht sie kleiner. Erstellt sie statisch per Cronjob. Liefert sie aus dem Apache aus - es gibt nix blöderes als seine grossen PDFs alle im Zope in der ZODB abzulegen, oder gar dynamisch dort zu generieren.
- Installiert ZEO. Das Teil rockt. Im Prinzip ist es nur die ZODB mit einem primitiven Serverprotokoll. Wichtig daran: euer Zope kann auf mehrere Prozessgruppen aufgeteilt werden. Das wollt ihr wenn ihr per Prozessüberwachung einen amoklaufenden Zopeprozess abschiessen wollt, aber das Portal von aussen möglichst unbeschädigt aussehen soll - in dem Fall packt ihr auf den Apache einfach mod_backhand drauf, oder eine andere Balancer-Technik zwischen Apache und Zope. Zusätzlich macht der ZEO auch das Packen der ZODB (sollte täglich laufen) einfacher, da der Pack im Hintergrund auf dem ZEO läuft und die Zope-Server selber nicht gross beeinträchtigt werden.
- Wenn ihr habt, nehmt einen SMP-Server. Oder kauft euch einen. Wirklich - das bringt ne Menge. Voraussetzung ist allerdings die oben angesprochene Technik mit den mehreren Prozessgruppen - Python hat ein globales Interpreterlock, welches dazu führt das auch auf einer Mehrprozessor-Maschine eh nie mehr als ein Python-Thread gleichzeitig läuft. Von daher wollt ihr mehrere Prozessgruppen.
- Performance gewinnt man auch durch Ausschaltung von Schichten. Leider ist das oft nur mit Softwareänderungen realisierbar, daher eher für Selberstricker interessant. Packt komplexe Abläufe raus aus dem Zope-Server und packt sie in Zope Products. Zope Products laufen native ohne Beschränkungen im Python Interpreter. Zope Python Scripte und DTML Dokumente werden hingegen durch viele Layer geschleppt die dafür sorgen das ihr euch an die Zugriffsrechte von Zope haltet, nichts böses tut und auch sonst ganz lieb seid. Und sorgen dafür das ihr langsamer werdet. Products lohnen sich - kosten aber Arbeit und sind entgegen der anderen mehr technischen Tipps nicht immer umsetzbar.
- Zusätzlich hat es sich bewährt nicht zu viel Daten in die ZODB zu packen, vor allem nichts was diese erweitert - die ZODB wird nämlich nur grösser, kleiner wird sie nur beim Packen. Nach einiger Zeit hat man dann locker eine ZODB im GB-Bereich und braucht sich über langsame Serverstarts nicht wundern ...
- Wenn komplexere Abläufe im System vorkommen kann es Sinn machen die ganz auszulagern. Bei mir kommt dann immer das |TooFPy| zum Einsatz. Einfach die ganzen komplexeren Sachen in ein Tool umwandeln und dort reinhängen - der Code läuft ungebremst schnell ab. Vom Zope dann einfach mit einem SOAP Client oder XMLRPC Client auf den Toolserver zugreifen und die Funktionen dort ausführen. Ja, die mehrfache XML Wandlung ist tatsächlich weniger kritisch als der Ablauf von komplexerem Code im Zope - vor allem wenn dieser Code einiges an Laufzeit beansprucht. Zope blockiert dann nämlich einen seiner Listener - die Anzahl ist statisch. Und einfach hochdrücken bringt nix - dank des globalen Interpreterlocks würden dann nur mehr Prozesse aufeinander warten, das dieses Lock freigegeben ist (z.B. bei jeder C-Erweiterung die zum Einsatz kommt). Für die XMLRPC Kommunikation gibt es eine gute und schnelle C-Implementierung die in Python integriert werden kann, damit ist das XML-Overhead-Problem irrelevant.
- Wenn ihr PostgreSQL als Datenbank benutzt: nehmt PsycoPG als Datenbanktreiber. Das Session-Pooling bringt Zope erst richtig auf Touren. Generell solltet ihr schauen ob der entsprechende Datenbanktreiber irgendeine Form von Session Pooling unterstützt - notfalls über einen externen SQL Proxy. Denn sonst hängt in Zope bei SQL-Queries unter Umständen das ganze System, weil eine fette Query auf das Ergebnis wartet. Da ist schon mancher drauf reingefallen und hat lernen müssen das 16 Zope-Threads nicht gleichbedeutend mit 16 parallel bearbeiteten Zope-Zugriffen bedeuten muss, wenn SQL-Datenbanken im Spiel sind.
Es gibt natürlich noch eine ganze Menge mehr Sachen die man machen kann, aber die obigen sind weitestgehend aus dem Stand zu bewältigen und hauptsächlich davon abhängig das ihr genug Speicher im Server habt (und evtl. eine Mehrprozessormaschine - geht aber auch ohne). Wichtig ist der Speicher - je mehr desto besser. Wenn geht, steckt halt noch mehr Speicher rein. Man kann nicht zu viel Speicher haben ...
Was machen wenn das alles auch noch nicht reicht (ja, ich hatte das schon - manchmal hilft nur die ganz grobe Axt). Nun, in dem Fall gibt es Abwandungen der obigen Techniken. Meine Lieblingstechnik in dem Bereich ist aktives Caching. Damit meine ich, das im Zope an einer Stelle hinterlegt wird welche Dokumente aktiv gecached werden sollen. Dazu gehört dann auf der Kiste ein Script, das die Seiten vom Zope abruft und in ein Verzeichnis packt. Per Apache Rewrite Rules wird dann dafür gesorgt das von aussen die statischen Inhalte ausgeliefert wird. Im Prinzip sorgt man also dafür das die Seiten die am häufigsten besucht werden und die für diese Technik geeignet sind (also z.B. keine Personalisierungsdaten enthalten) einfach eine statische Seite rausgeht, egal was sonst passiert - die normalen Cachetechniken gehen da einfach nicht brutal genug vor, da geht noch zu viel Traffic durch auf den Server.
Ein weiterer Schritt ist natürlich der Einsatz weiterer Maschinen - einfach weitere Kisten daneben stellen und mit der ZEO-Technik miteinander verbinden.
Zope ist eine fantastische Software - gerade die hohe Integration von Entwicklungsumgebung, CMS und Server ist oft ungemein praktisch und die leichte Integrierbarkeit in externe Datenquellen ist ebenfalls sehr nett. Aber Zope ist ein Ressourcenschwein, das muss man so einfach mal sagen.
Zyklische Dependencies
Debian hat ein wunderschönes Paketsystem. Und es hat eine ganze Reihe von sehr brauchbaren Werkzeugen um Backports einfacher zu machen - zum Beispiel in dem man mit debootstrap ein chroot-Environment zusammenstellt in dem man gefahrlos die Pakete zusammentragen kann die man für den Build braucht und dann ein entsprechendes Paket erstellt. Ich habe das ganze schon mehrfach benutzt, es ist wirklich klasse.
Allerdings kann einen das auch manchmal in den Wahnsinn treiben. Ich wollte die neuste SQLite aus der Debian Testing installieren. Dazu brauche ich erstmal die nötigen Tools um das Paket builden zu können. Da ich ein neues chroot Environment aufgesetzt hatte, war noch nicht alles da - zum Beispiel fehlte mir cdbs, ein sehr mächtiges (und mitlerweile viel benutztes) Tool zur einfachen Erstellung von Debian Paketen. Das hatte ich schon mal vorher portiert, aber ich dachte mir die Gelegenheit sei günstig da mal eine aktuelle Version zu bauen.
Dachte ich. Fing auch ganz harmlos an - es braucht für die Dokumentation springgraph - ein Tool zur Formatierung von Grafen. Das Tool selber hat eigentlich keine Builddependencies (ausser den obligatorischen Debhelpern). Fein. Baut auch sehr schnell. Bei der Installation meckert es dann über fehlende Perlmodule für die GD2 Einbindung. Ok, Perlmodule zu portieren ist oft nervig, aber dieses sah eigentlich ganz simpel aus. Eine Reihe von Buildabhängigkeiten, klar, aber sonst harmlos. Bis auf den Fakt, das es zum Builden cdbs braucht.
Aaaaarghl!!!!
Okok, ich weiss was man machen muss. Trotzdem. Manchmal hab ich das Gefühl die Debian-Maintainer setzen sich heimlich zusammen um mich in den Wahnsinn zu treiben
D Programming Language
Das Referenzbuch zur D Programming Language(einem Nachfolger von C und C++ mit diversen Highlevel-Ideen) hat eine sehr faszinierende Klausel in der ersten Seite der Sprachbeschreibung stehen:
Note: all D users agree that by downloading and using D, or reading the D specs, they will explicitly identify any claims to intellectual property rights with a copyright or patent notice in any posted or emailed feedback sent to Digital Mars.
Ich habe so die Vorstellung das eine solche Klausel - die automatisch nur durch das Lesen der Dokumentation für einen Benutzer zwingend wird und etwas fordert, das der Benutzer unter Umständen garnicht leisten kann - ein bischen absurd ist. Mich würde mal die Meinung der Blawger dazu interessieren
E-Mails dürfen nicht gefiltert werden
Urteil: E-Mails dürfen nicht gefiltert werden - eine wichtige Entscheidung mit potentiell weitreichenden Folgen. Denn gerade die Stärkung des Rechts auf Geheimhaltung von eMail aber auch die Filterung führt in Unternehmen sicherlich zu Konflikten. Wichtig vor allem ist es, weil hier die Anwendbarkeit des Post und Fernmeldegeheimnisses auf eMail festgelegt wurde - ein Punkt, der bisher oft problematisch war.
Ok, bleibt natürlich noch offen was alles vor Gericht als plausibler Grund für Filterung Bestand hat - warscheinlich dann wieder etwas mehr als nur die Virenabwehr. Trotzdem ein Schritt in die richtige Richtung.
Anwärter auf den Preis für das absurdeste WordPress Plugin: ein Code39 Barcode Generator. Naja, vielleicht können dann ja Leute die Webseiten immer ausdrucken damit was anfangen
Entwicklung der Aqua-Variante von OpenOffice für Macintosh eingestellt - schade. Ok, NeoOffice/J ist eine brauchbare Alternative aber trotzdem, eine voll native OpenOffice Version hätte was gehabt.
Das Unwort 2004
Egal was morgen verkündet wird - mein Unwort ist Reform . Wie jeder Hirnfurz eines Ministers als Reform tituliert wurde ist einfach unsäglich dämlich.
Nach Fahndungserfolg im Fall Moshammer: Ruf nach Ausweitung der DNA-Analyse - wdr.de - Panorama - und die Büchse der Pandora öffnet sich immer weiter.
Planteopia - Wissenverbiegungsmagazin

Das Wissen schafts verbiegungsmagazin hat ja einen Beitrag über Weblogs verbrochen - und ein paar Blogger haben dazu Input geliefert. Das Ergebnis war natürlich ein totales Debakel - was will man von einem SAT.1 Magazin auch anderes erwarten? Sehr humorvoll die Reaktion vom Spreeblick auf den Quatsch. Und die Aufregung vom Schockwellenreiter kann ich gut verstehen.
Warum Jörg allerdings das ganze nicht gleich gegen Honorar gemacht hat, um wenigstens ein positives Ergebnis aus dem Quatsch zu ziehen, ist mir nicht so ganz klar. Hat er wirklich erwartet das sich bei SAT.1 irgendwas sinnvolles zum Thema Grassroots-Journalismus ergeben kann? Faktenfälschung und manipulative Schnitte sind bei solchen Magazinen doch an der Tagesordnung - es geht nur um reisserischen Müll, mit wirklicher Berichterstattung oder Reportage hat das ganze nichts zu tun.
Und Planetopia selber? Naja, im Gegensatz zur Boulevardpresse (deren Eskapaden manchmal vor unfreiwilligem Humor strotzen) ist das ganze auch noch so schlecht aufgezogen und die Beiträge so flach gehalten, das es nichtmal als Trash-Unterhaltung taugt ...
ChapterZero » IllustRender - man kann das vorige mit LaTeX auch ins Perverse treiben: der hier bindet über Ghostscript dann auch noch Grafiken ein ...
Clark Dalton gestorben?
Clark Dalton ist laut Gerüchten in Salzburg gestorben - ich gestehe, in meiner Jugend hab ich auch grössere Mengen von Perry Rhodan Heften gelesen ... Update: es ist war. Walter Ernsting ist tot. Komisch, wie ich mit dem Schriftsteller eigentlich nur sein Pseudonym verbinde und wie fremd sein richtiger Name klingt.
Kallisys | Newton | Einstein Project
Das Einstein Project ist ein Emulator für die Apple Newton Hardware. Dadurch wird zwar der eigene Mac nicht kleiner (und damit auch kein Ersatz für den PDA), aber man kann wenigstens mit einem der interessantesten PDA-Betriebssystemen spielen. Gefunden in Rainer Joswigs Lispnews.
Loch gegen Raab: Konto gesperrt, Gerichtsvollzieher bestellt - so muss man mit dem Raab umspringen
Longhand
Longhand ist ein netter kleiner Formelevaluator. Man könnte es auch Taschenrechner nennen, aber es ist ja ein Programm für den Desktoprechner. Sowas wie eine grafische Variante von bc - unterstützt auch beliebig grosse Zahlen. Nett und simpel für die kleine Berechnung zwischendurch.
MonkeyTyping - The PEAK Developers' Center
MonkeyTyping ist Phillip J. Ebys Ansatz für optional statisches Typing in Python. Sieht sehr interessant aus, die Idee. Was mich an Phillip immer wieder begeistert ist seine Fähigkeit über den Sprachtellerrand zu gucken - man denke nur an seine Arbeiten für generische Funktionen in Python. Genau solche Schübe braucht Python mal dringend wieder - einige Diskussionen rund um Python zeigen die ersten Anzeichen von Sprach-Inzucht (zum Beispiel diese nahezu Hass-Reaktionen auf die Erwähnung von Lisp und Lips-Features bei einigen Python-Advocates).
TextWrangler jetzt frei wie Freibier
Wenn ich mir den Featurevergleich vom jetzt kostenlos verfügbaren TextWrangler und BBEdit ansehe, dann gibt es eigentlich nur ein Feature, das mir fehlen würde: Shell Sheets. Diese Shell Sheets sind absolut genial - jedenfalls wenn man wie ich auf alten Macs mit MPW gearbeitet hat und sich an die Arbeitsweise gewöhnt hat. Im Prinzip wie ein Shell-Fenster im Emacs, nur das der Editor drumherum bedienbar ist
Ansonsten ist allenfalls noch die Einschränkung keine TextFactories mit TextWrangler bauen zu können (ausführen kann man sie aber) zu nennen, all den anderen Kram halte ich persönlich für absolut verzichtbar - besonders diese ganzen HTML Werkzeuge habe ich eigentlich nie benutzt.
Schön das BareBones endlich wieder eine nennenswerte freie Version ihres Editors zur Verfügung stellen.

