My Universe Blog
Die Rückkehr der Primzahl
Posted by Jesco Freund at Sept. 2, 2010 9:16 p.m.
Vor über einem Jahr hatte ich mal über einen kleinen Wettstreit bezüglich eines Primzahl-Generators gebloggt. Damals hatte ich mich darauf beschränkt, das Problem durch geschickte Partitionierung des zu testenden Intervalls zu parallelisieren. Allerdings war meine Implementierung alles andere als perfekt und krankte vor allem an Pythons Global Interpreter Lock. Meine Freundin hatte mich mit ihrer Implementierung fast um Faktor 2 geschlagen ![]()
Doch nun habe ich sie in Händen, die ultimative Waffe des Primalitätstesters: im Zen Python Blog ist die Implementierung des Miller-Rabin-Tests in Python wunderbar beschrieben und erklärt. Dieser Test ist probabilistisch; nach unseren Spielregeln muss also bei einem positiven Treffer auf jeden Fall ein deterministischer Test (Primfaktorzerlegung) durchgeführt werden. Allerdings liefert Miller-Rabin verhältnismäßig wenige False Positives, so dass sich mit Hilfe dieses Tests das Finden von Primzahlen noch deutlich beschleunigen lassen sollte.
No comments | Defined tags for this entry: algorithms, programming, Project Euler, python
Webentwicklung mit Spring 3, Maven und Eclipse
Posted by Jesco Freund at Aug. 27, 2010 4:24 p.m.
Derzeit befasse ich mich (mal wieder) mit Java, genauer mit der Entwicklung einer Webanwendung in Java (und keine Sorge, ich bin nicht auf einmal durchgedreht – ich mache das eigentlich nur, um meine negative Grundhaltung gegenüber Java ab und an zu bestätigen
). Zum Einsatz kommt dabei Spring – genauer gesagt das Spring Web MVC framework. Und wie es sich bei einem richtigen™ Java-Projekt gehört, erfolgt die Entwicklung mit Eclipse.
Nun ist es aber leider so, dass ausgerechnet für die aktuelle Eclipse-Version (3.6 „Helios“) die automagischen Tools von SpringSource noch immer nicht verfügbar sind (mal abgesehen davon, dass man mittlerweile ohne Registrierung nicht mehr an die Downloads rankommt). Hinzu kommt, dass mit Spring schnell mal ein paar größere Abhängigkeitsbäume entstehen – nervig, wenn man da beim Deployment auf dem Servlet Container immer drauf aufpassen muss (ich verwende Tomcat).
Zum Glück gibt es da ein kleines Helferlein, das trotzdem die komfortable Arbeit mit Spring und Eclipse ermöglicht und nebenbei über alle Abhängigkeiten wacht, so dass die erzeugten .war-Dateien hinterher schmerzfrei deployed werden können. Die Rede ist von Maven. Leider gibt es für Maven (noch) keinen ArcheType für ein Spring 3.0 Projekt – mit ein bisschen Handarbeit hat man sich aber schnell ein funktionierendes Grundgerüst zusammengezimmert. Wie das genau vonstatten geht, wird in diesem Artikel beschrieben.
continue reading Webentwicklung mit Spring 3, Maven und Eclipse
No comments | Defined tags for this entry: development, Eclipse, Java, Maven, MVC, Spring
Wiki Shutdown
Posted by Jesco Freund at Aug. 21, 2010 2:37 p.m.
Ankündigung in eigener Sache:
Das My Universe Wiki steht kurz vor der Abschaltung. Hintergrund: Der Server, auf dem das Wiki bisher gehostet war, geht nächste Woche vom Netz und in den Ruhestand. Da ich die Wiki-Artikel in letzter Zeit ohnehin nur unzureichend gepflegt habe, wollte ich kein neues MoinMoin-Wiki mehr aufsetzen.
Stattdessen habe ich den für „rettungswürdig“ befundenen Content in reStructuredText umformatiert und hier auf der neuen Website in eigene Seiten gepackt. Sämtliche Rezepte sind nun über den neuen Reiter Kitchen Hacks zu erreichen. Für die beiden FreeBSD-Artikel habe ich noch keine vernünftige Lösung, deshalb verlinke ich sie erst mal hier:
No comments | Defined tags for this entry: blog, MoinMoin
Muss man eigentlich jeden Scheiß mitmachen?
Posted by Jesco Freund at Aug. 15, 2010 2:02 a.m.
Ich hatte mich ja schon einmal darüber ausgelassen, dass Betreiber von Blogs nur allzu sorglos Buttons, Comics und Videos von Servern Dritter einbinden, ohne auch nur eine Sekunde darüber nachzudenken, dass dadurch auch Informationen über jeden einzelnen Besucher an diese Dienste zurückstreuen – und zwar ohne, dass sich ein Besucher dagegen wehren könnte.
Die neueste Pest auf diesem Feld heißt Flattr. Das neue an Flattr ist der Lockstoff, mit dem Blogger und Twitterer geködert werden sollen, ihre Seiten zu verwanzen. Etablierte Dienste wie Technorati und Facebook setzten bislang nur auf die persönliche Anerkennung, vulgo Streicheleinheiten für's Blogger-Ego, um Mitspieler für die Generierung ihres Datenkapitals zu gewinnen. Der neue Mitspieler fährt da schwerere Geschütze auf.
continue reading Muss man eigentlich jeden Scheiß mitmachen?
1 comment | Defined tags for this entry: blog, privacy, Web 2.0
Traurige Nachricht zu OpenSolaris
Posted by Jesco Freund at Aug. 13, 2010 10:39 p.m.
Im Netz kursiert ein geleaktes Schreiben (Echtheit nicht bestätigt), in dem Oracle das Ende von OpenSolaris erklärt. Künftig soll es wohl – analog zur Oracle Database – eine Express-Version geben, die zwar kostenfrei, aber nicht Open Source ist. Ob diese auch im Funktionsumfang gegenüber dem für nächstes Jahr angekündigten Solaris 11 abgespeckt sein wird, war dem Schreiben nicht zu entnehmen. Dazu passt eine Diskussion im OpenSolaris-Forum.
Das Ende von OpenSolaris zieht weitaus schwerere Konsequenzen nach sich, als vielleicht auf den ersten Blick zu vermuten ist. Einige Technologien, die im Rahmen des OpenSolaris-Projekts entwickelt wurden, sind auch in andere Open Source Projekte eingeflossen. Zu den prominenteren Vertretern gehören dabei ZFS und DTrace, die beispielsweise in FreeBSD eingeflossen sind.
Durch das aktuelle Verhalten von Oracle (monatelanges Schweigen, seltsames Gebahren gegenüber dem OpenSolaris-OGB und zuletzt die Patenttrollerei) werden diese Technologien zum Risiko für FreeBSD. Zwar dürfen ZFS und DTrace rein lizenzrechtlich problemlos als Bestandteil des FreeBSD-Kernels verteilt werden. Jedoch kann wohl derzeit nicht ausgeschlossen werden, dass Oracle diese beiden Produkte als Closed Source weiterentwickelt und vom derzeit verfügbaren Quellcode ausgehende Forks mit Patentklagen bedrohen wird.
Auch wage ich zu bezweifeln, dass außerhalb von OpenSolaris und ohne Unterstützung durch ehemals Sun eine effektive Weiterentwicklung von ZFS und DTrace möglich sein wird – dazu fehlt schlicht die Manpower. ZFS beispielsweise ist bei FreeBSD eine One Man Show – für die Portierung gerade noch ausreichend, aber Weiterentwicklung wird so nicht funktionieren. Da tröstet es auch wenig, dass vor gerade mal 10 Tagen mit dem Illumos Project der Versuch gestartet wurde, ein wirklich freies OpenSolaris zu entwickeln. Auch dieser Trupp ist nicht gerade üppig mit Manpower ausgestattet, und wenn Oracle mit der Patentkeule winkt, sind die Lichter da schneller wieder aus, als dort die Sonne aufgehen kann.
Irgendwie war ja soetwas zu befürchten – Oracle ist in der Open Source Welt nicht wirklich verankert, und Larry Ellison hat schon immer keinen Zweifel daran gelassen, dass es in allererster Linies um's Geldverdienen geht. Erschreckend ist nur, dass OpenSolaris nicht die letzten Open Source Projekte sind, die durch die Sun-Übernahme in ihrer Existenz bedroht sind. Mal gucken, wen die sich als nächstes zur Terminierung vornehmen – MySQL, oder doch erst NetBeans?
No comments | Defined tags for this entry: FreeBSD, OpenSolaris, Oracle, Sun, ZFS
Dumping MySQL – Aber Richtig!
Posted by Jesco Freund at Aug. 9, 2010 9:21 p.m.
MySQL ist immer noch die im Web-Umfeld am häufigsten eingesetzte Datenbank. Damals™ war die MyISAM Storage Engine auch ne dolle Sache. Schnell (verglichen mit Konkurrenzprodukten), und als i-Tüpfelchen auch noch datenbankbeschleunigtes Wühlen in Texten. Doch oh weh, die Programmierer wurden anspruchsvoller, begannen, komplexere Anwendungen zu schreiben und verlangten auch von ihrer Datenbank immer mehr: Transaktionen muss sie beherrschen, und Constraints, bitteschön!
Die zwischenzeitlich eine Weile lang in Mode befindliche Berkeley-Engine konnte so etwas wie Transaktionen, aber mit Constraints war immer noch Essig. Die Rettung nahte in Gestalt von InnoDB. ACID-konform war das schuckelige Teilchen, Constraints, Stored Procedures und Hastenichgesehen sind mittlerweile auch für MySQL kein Thema mehr.
Doch wehe, wehe, wenn ich auf das nächste sehe: Bei aller Liebe zu InnoDB, die Werkzeugsammlung, die der Administration von MySQL dient, nimmt nicht immer Rücksicht auf den Fortschritt…
continue reading Dumping MySQL – Aber Richtig!
No comments | Defined tags for this entry: MySQL, server, SQL
Backtory is moving forward
Posted by Jesco Freund at July 27, 2010 7:35 p.m.
The going is tough, but at least there is any going – I think this describes best my progress with Backtory. During the last two weeks, we've been on holiday in Denmark. I used some of the rather rainy days to code on Backtory, and here's what I got done so far:
- Libsynctory is in a working state now, meaning it does what is expected of it. However, it's not yet nice – no proper documentation, no thread safety, no error tracing.
- Libyar got a bit further. The container file layout is finalized and properly documented. An awful lot of macros and some init voodoo for thread saftey are ready, but the lib itself is of no use yet.
- The Backtory application itself hasn't been touched by me for some weeks now – I concentrated efforts on the two above-mentionned libs. However, I have made up my mind about the application (again
). There will be a “cheap” CLI application, most probably implemented in Python. The more complex thing (daemon, configuration via network and stuff) will become eBacktory, of which I'll take care later.
So first priority for me is to get libyar ready to use, and to finish libsynctory into a state that could be called “release-ready”. When both libs are done, I'll first finalize a CLI for YAR files before taking care of the Backtory implementation itself. As I see tough times ahead concerning my professional life, I dare not give any forecast when I'll be able to spare the hours so urgently needed to finish any of the mentionned tasks. But as I already statet – the going is tough, but at least there is any going…
No comments | Defined tags for this entry: backtory, C, development, synctory, yar
Es ist vollbracht
Posted by Jesco Freund at July 27, 2010 5:04 p.m.
Nach beinahe dreimonatiger Sendepause und vielen Stunden Codewühlerei habe ich meine neue Website für einsatzfertig befunden – und heute live geschaltet. Als Backend kommt nun eine Django-basierte Eigenentwicklung zum Einsatz, welche die einzelnen PHP-Applikationen ablöst.
Hier die wichtigsten Änderungen im Überblick:
- Die URLs im Blog haben sich geändert. In Anlehnung an Wordpress-URLs werden Einträge jetzt immer nach Jahr, Monat und Tag ihrer Veröffentlichung strukturiert und mit einem Slug (Bezeichner) identifiziert.
- Lässt man besagtes Slug in den URLs weg, bekommt man das Blog für das jeweilige Jahr, den Monat oder den Tag angezeigt. Anstelle der Datumsfragmente lassen sich auch einzelne Autoren oder Tags verwenden.
- Die alte Feed-URL http://www.my-universe.com/blog/feeds/index.rss2 ist nicht mehr gültig. Stattdessen funktioniert nur noch http://www.my-universe.com/blog/feeds/ – dafür aber mit derselben Flexibilität wie die Archiv-URLs (Angaben von Datumsfragmenten, Autor oder Tags möglich).
Alle anderen Änderungen betreffen im wesentlichen das Backend und sind daher primär für André und mich relevant.
Eine Bitte noch in eigener Sache: Ich habe mir zwar für die Entwicklung keinen Termindruck auferlegt und auch in meinem Staging-System ausgiebig getestet. Ich will aber nicht ausschließen, dass irgendetwas nicht wie erwartet funktioniert, Links vielleicht tot sind oder eingebundene Bilder fehlen. Wenn so etwas auffällt, bitte eine kurze Mail an mich – dann kann ich zumindest versuchen, es zu reparieren.
No comments | Defined tags for this entry: blog, Django
cdeploy Has Entered FreeBSD Ports
Posted by Jesco Freund at May 9, 2010 5:32 p.m.
The utility cdeploy (developed by me within the scope of the root-tools project) has been committed to the FreeBSD Ports. From now on, installing cdeploy on FreeBSD is as simple as:
cd /usr/ports/sysutils/cdeploy
make install clean
Originally, cdeploy has been developed to deploy centrally (e. g. in a scm) maintained configuration files onto a target system. A sample configuration for this purpose is described in the RootForum wiki (German). Of course, you can abuse cdeploy for any other kind of files… ![]()
No comments | Defined tags for this entry: code, development, FreeBSD, ports, root-tools, RootUtils
Go: First Contact
Posted by Jesco Freund at May 8, 2010 12:38 a.m.
Und wieder ist die Welt um eine Programmiersprache reicher geworden – die Rede ist von Go, einer unter Schirmherrschaft von Google entwickelten Sprache, zu deren Vätern auch Vertreter der Unix-Prominenz (wie etwa Ken Thompson) gehören. Auch wenn einige „Fach“-Journalisten (mal wieder) die Sensation wittern und bereits die Totenglocken für C, C++ und Java läuten hören, habe ich mal (entgegen meiner Gewohnheit, bei journaille-generierten Hypes aktiv wegzusehen) ein bisschen mit Go herumgespielt, um mir ein eigenes Urteil erlauben zu können.
Auf den ersten Blick wirkt die Sprache ein bisschen wie „OK, wir nehmen C, fügen Objektorientierung hinzu, ohne die Komplexität von C++ ertragen zu müssen, und packen noch ein bisschen Nebenläufigkeit dazu“. Auf den zweiten Blick offenbart sich, dass die Sprache offenbar einer Hippie-Kommune entsprungen ist – jedenfalls lässt sich nicht mehr so genau sagen, wer die eigentlichen Eltern sind
. C und C++ haben auf jeden Fall Pate gestanden (bei Ken & Co. auch nicht anders zu erwarten), aber auch Elemente von Java, Python und sogar Pascal sind mit eingeflossen.
continue reading Go: First Contact
2 comments | Defined tags for this entry: C, Go, google, programming, python

Content is subject to the conditions of the