Vorhang auf für kendoo.net

Kategorie Kendoo 25.04.2009    Kategorie Kendoo Kendoo    Tags kendoo    Kommentare 2 Kommentare

Kleine Vorgeschichte: Dieses Blog ist in Django geschrieben und war mein erstes größeres Django-Projekt. Damals ging es mir vor allem darum, Django und Python zu lernen. Mit der Zeit hatte ich das Blog um verschiedene Sachen erweitert, z.B. eine Möglichkeit, Bilder hochzuladen, Passwörter auszugeben usw.

Aber eigentlich hat sowas nichts in einem Blog zu suchen, denke ich, daher habe ich mich dazu entschlossen, eine neue Applikation zu schreiben, die solche Dienste anbietet.

Somit gebe ich - nicht ohne Stolz - die Seite kendoo.net bekannt (Trommelwirbel bitte Wink ), erreichbar unter (wer hätte es gedacht):

http://kendoo.net

Derzeit bietet Kendoo folgendes:

- Einen Feedreader. Der Feedreader ist ähnlich wie z.B. Google Reader, aber bei weitem nicht so komplex. Er ist genau das, was ich immer als Feedreader haben wollte, aber nirgends finden konnte.
Der Feedreader unterstützt die gängigen Formate RSS 2.0, Atom 1.0 und RSS 0.91. Die Feeds werden alle 30 Minuten automatisch abgeholt. Einträge können mit einer Markierung gekennzeichnet werden, um sie für später vorzumerken.

- Eine MultiSuche! Dieses Formular fragt gleichzeitig die drei größten Suchanbieter ab: Google, Yahoo! und Microsoft Live Search. Die Ergebnisse werden nicht wie bei einer Metasuchmaschine miteinander verschmolzen, sondern nebeneinander in einer Tabelle dargestellt. Meistens ist das Gesuchte schon unter den ersten Treffern und so ist eine gute Übersicht gegeben. Außerdem kann es auch mal interessant sein, die Ergebnisse der Suchmaschinen direkt gegenüber gestellt zu sehen.
(bitte Hinweis hierzu weiter unten beachten!)

- Den schon bekannten Bildertausch. Hier kann schnell und einfach ein Bild hochgeladen werden, welches dann einfach verlinkt oder in Foren eingebunden werden kann. Allerdings ist hierzu jetzt eine Anmeldung notwendig.

Und soweit noch Zufallspasswörter und Weiterleitungen (Redirects). Um eine Weiterleitung einzurichten, ist auch eine Anmeldung notwendig. Die Weiterleitung selbst klappt dann natürlich ohne.

Wie ersichtlich werden dürfte, hatte ich bei der Entwicklung kein Massenpublikum im Sinn, sondern weil das Dinge sind, die ich selbst verwenden möchte. Und was liegt da näher, als sich selbst an der Umsetzung zu versuchen? Allerdings denke - und hoffe - ich, dass auch andere daran ihre Freude haben könnten. Daher ist das eine öffentliche Seite und es steht jedem Besucher frei, die Dienste in Anspruch zu nehmen.

Noch ein wichtiger Hinweis zur MultiSuche: Da die Situation mit der Vorratsdatenspeicherung derzeit reichlich undurchsichtig ist, werden bei allen Anfragen die IP-Adresse, der Suchbegriff und das Datum gespeichert (wie das auch Google usw. machen). Ich gebe zu, ich weiß nicht, ob das notwendig ist, aber da mir die Feinheiten des juristischen Denkens gänzlich unverständlich sind und das eine Grauzone darstellt, habe ich mich dazu entschlossen, so etwas einzubauen. Diese Daten werden automatisch nach 6 Monaten gelöscht und auf keinen Fall weitergegeben, außer es geht um eine Straftat und der Staat klopft an meine Tür. Sollte das Kapitel Vorratsdatenspeicherung irgendwann mal von den Verantwortlichen aufgegeben werden, wird dieses "Feature" sofort entfernt.
Vielleicht kann ein Leser mit juristischem Verständnis mir hier weiterhelfen und mich über diese Sache aufklären. Aber da die Suchanfragen gegenüber den Suchmaschinen von der IP dieses Servers gestellt werden, denke ich, ist es wichtig zu wissen, woher die Anfrage ursprünglich kam, falls es mal zu einer rechtlich heiklen Situation kommen sollte.

Zum Ende möchte ich aber auch noch auf das Impressum verweisen. Ich biete die Seite an, wie sie ist, ohne Ansprüche auf Erreichbarkeit oder Datensicherheit zu gewähren. Natürlich werden keine Daten weitergegeben wie z.b. die Mail-Adressen, die bei einer Registrierung verwendet werden!

Weitere Ideen sind immer willkommen, da ich plane, das in Zukunft noch auszubauen. Also wenn Du eine Idee hast, zögere nicht, mich anzuschreiben (kontakt@bheil.net).

P.S. Da dann bald die Blog-Software selbst von allem Schnickschnack bereinigt ist, werde ich diese als Open Source verfügbar machen. Allerdings müssen die meisten Formatierung derzeit als richtiges HTML angegeben werden und so plane ich, einen Editor wie TinyMCE einzubinden. Aber davon später mehr ...

Python 2.6 DeprecationWarning


Soeben habe ich den Server auf Ubuntu 9.04 aktualisiert. Das lief astrein und alles funktioniert einwandfrei. Nur selbst installierte Python-Module musste ich "neu einbinden" (sprich: Symlinks neu setzen und fertig).

Aber da nun Python 2.6 die Standard-Python-Version ist und bei mir etliche Python-Skripte - selbst geschriebene und fremde - in Cron Jobs laufen, quillt mein Posteingang wegen Mails aus eben diesen Cron Jobs über. Und alle handeln von DeprecationWarnings, also Warnungen, das Modul xy mit Python 3.0 wegfallen wird. Nun ist dies natürlich ungemein praktisch - für den eigenen Code. Aber keine dieser Warnungen kommt von meinem eigenen Code, sondern von fremden. Grmpf.

Bisher seh ich noch keine Möglichkeit, das sauber zu lösen, bis die entsprechenden Programmierer das angepasst haben und die neuen Versionen über die gängigen Pakete verfügbar werden. Bis dahin bleiben zwei "unsaubere Lösungen":

- Wird das Skript direkt über python aufgerufen, reicht es, den Parameter -Wignore anzugeben. Das ignoriert aber alle Warnungen!

- Bei schweren Fällen geht nur ein gepflegter Eingriff in das Python-Modul selbst. Da etliche Python-Skripte Warnungen wegen dem sets-Modul ausgeben, kann diese durch ein Editieren der Datei /usr/lib/python2.6/sets.py und dem Auskommentieren des Codes unterdrückt werden:

#import warnings
#warnings.warn("the sets module is deprecated", DeprecationWarning,
#                stacklevel=2)

Ist aber zugegeben keine gute Lösung. Aber bis das "Problem" in allen Skripten gelöst sein wird, wird es noch dauern. Bisher scheint das auch nur beim sets-Modul notwendig zu sein.

Kennt jemand eine bessere Lösung? Bin für jede Hilfe dankbar.

Eluveitie - Omnos


So Musik gibts viel zu selten:

http://www.youtube.com/watch?v=msRy4vcSX4k

Ubuntu 9.04 (Beta) auf Asus eeePC 900


Vor ein paar Tagen beschrieb ich die gelungene Installation vom Ubuntu Jaunty Netbook Remix auf meinem Asus eeePC 900. Nachdem ich nun einige Zeit damit gearbeitet habe, habe ich mich heute dazu entschlossen, wieder ein "normales", herkömmliches Ubuntu zu installieren. So nett der Netbook Remix mit der auf kleinen Bildschirmen optimierten Oberfläche auch ist - im Praxiseinsatz war es für mich eher hinderlich. Vielleicht bin ich die normale Oberfläche auch schon zu gewohnt, aber ich war unterm Strich bei der meisten Arbeit langsamer und es fühlte sich einfach nicht so "rund" an. Einen wirklich rationalen Grund gibt es wohl nicht - aber mit dem Standard-Gnome-Desktop (mit Anpassungen) komme ich einfach besser zurecht.

Die Installation der neuesten Version funktioniert immer noch genauso, wie im Artikel zu Ubuntu Hardy beschrieben. Allerdings - wie auch schon beim Netbook Remix-Test erwähnt - funktionieren die meisten Dinge out-of-the-box, bei denen zuvor manuell nachgebessert werden musste.

Zuerst muss ein USB-Stick zur Installation vorbereitet werden. Wer ein Ubuntu Intrepid 8.10-System zur Verfügung hat, kann einfach das Programm usb-creator verwenden. Das erledigt die gesamte Einrichtung des Sticks vollautomatisch. Sehr feines Ding!
Andere Wege sind im deutschen Wiki beschrieben.

Die Installation selbst verläuft wie gewohnt. Es empfiehlt sich allerdings, schon ext4 als Dateisystem zu verwenden: Die Performance ist spürbar besser als bei ext3!

Nach der Installation wird ein nicht-freier Madwifi-Treiber für WLAN angeboten. Ich habe diesen aber nicht installiert, da das WLAN sofort fehlerfrei funktionierte.

Das funktioniert alles:
- Funktionstasten (bis auf die fürs WLAN Fn+F2, da passiert nichts)
- WLAN
- Sound
- Webcam

Nicht getestet habe ich das Mikrophon, da ich es eh nicht verwende.

Die Compiz-Einstellung, damit Fenster auch über den Rand des Monitors geschoben werden können, empfiehlt sich weiterhin:

sudo gconftool-2 --set /apps/compiz/plugins/move/allscreens/options/constrain_y --type bool 0

Die Prozessortaktung geht nachwievor nicht automatisch, da das entsprechende Kernel-Modul fehlt. Die Installation verläuft exakt wie im alten Artikel beschrieben. Ebenso habe ich auch die dort beschriebenen Optimierungen vorgenommen, um das Swappen z.b. so weit wie möglich zu unterbinden.

Allerdings sind diese Anpassungen optional, so dass durchaus gesagt werden kann, dass Ubuntu 9.04 reibungslos auf dem Asus eeePC 900 funktioniert.

Abwrackprämie unverschlüsselt?


Da ich überzeugter Nicht-Autofahrer bin, habe ich nur am Rande mitbekommen, dass die Anträge zur Abwrackprämie online gestellt werden müssen. "Die Behörden gehen mit der Zeit, recht so" dachte ich. Aber anscheinend ist das Formular nur unverschlüsselt erreichbar: http://www.ump.bafa.de/ Shocked

Da werden private Daten abgefragt und dann einfach so verschickt, und das, obwohl der Großteil der Nutzer wohl ziemlich unwissend in Computerfragen sein dürfte und sich darüber bestimmt nicht im Klaren ist. Das ist ja schon grob fahrlässig von den Machern, sowas nicht ausschließlich über https anzubieten.

Das ist kein Vorzeige-Beispiel von gelungenem eGovernment.

ASCII-Tabelle

Kategorie Software 08.04.2009    Kategorie Software Software    Tags ascii    Kommentare 0 Kommentare

Auch eine ASCII-Tabelle ist oft hilfreich ...



HTML- und XHTML-Entities

Kategorie Code 08.04.2009    Kategorie Code Code    Tags html, xhtml    Kommentare 0 Kommentare

Eine Liste aller HTML- und XHTML-Entities, wird ja doch öfters mal bei der Entwicklung gebraucht ...



Mehrere Dateien in Subversion ignorieren?


Letzt beschrieb ich, wie in Subversion pyc-Files ignoriert werden können. Schön und gut. Aber bei einigen Verzeichnissen muss auch noch eine zweite oder dritte Datei ignoriert werden. Nichts einfacher als das, dachte ich, wird ja kumulativ sein. Also verwendete ich die gleiche Anweisung, um auch die zweite Datei zu ignorieren. Das Ergebnis war ebenso unerwartet wie ernüchternd: Die vorherige Einstellung, also der Wert von svn:ignore, wurde schlichtweg überschrieben.

Anscheinend ist der einzige Weg, Subversion da mehrere Dinge beizubringen, der, zuerst eine Datei zu erzeugen mit jedem zu ignorierenden Pattern in eine eigene Zeile, also z.B. so:

*.pyc
dev.db
.pydevproject
.project

Dann kann dies mit folgender Anweisung hinzugefügt werden:

svn ps svn:ignore -F DATEINAME trunk/

Elegant ist was anderes. Und intuitiv ist das auch nicht. Hab ich vielleicht etwas übersehen und gibts doch ne bessere Lösung dafür?

Jedenfalls sollte aber das Ergebnis überprüft werden, damit da nichts schief gegangen ist:

[12:05:51]bheil@192.168.178.3:~/SVN> svn propget svn:ignore trunk
*.pyc
dev.db
.pydevproject
.project

Ubuntu 9.04 Netbook Remix (Beta)


Ich nenne einen Asus eeePC 900 mein Eigen, auf dem Ubuntu frisch und fröhlich seinen Dienst schiebt. Mit ein paar Handgriffen lief auch Version 8.04 bzw. 8.10 einwandfrei. Vor kurzem flatterte eine Mail mit dem bezeichnenden Betreff "Ubuntu Netbook Remix 9.04 Beta released" in meinen Posteingang. Da ich das Netbook in erster Linie zum Surfen und "Server überwachen" verwende und da im Moment keine wichtigen Daten drauf sind, dachte ich mir, könnte ich die Beta doch mal ausprobieren.

Also das USB-Image der Beta heruntergeladen. Auf einen USB-Stick bekommt man das recht einfach:

sudo dd if=ubuntu-9.04-beta-netbook-remix-i386.img of=/dev/sdb1 bs=1024
/dev/sdb1 muss hierbei natürlich mit dem richtigen Wert ersetzt werden. Dieser kann leicht über mount herausgefunden. Einfach schauen, wo der USB-Stick gemountet wurde.

Die Installation verlief einwandfrei und einfach, wie von Ubuntu gewöhnt. Die Eingabemasken sind nun an die kleine Bildschirmgröße angepasst und werden bildschirmfüllend dargestellt. Bei der Partionierung habe ich gleich das neue Dateisystem ext4 ausgewählt. Wenn schon, denn schon. Wink

Beim ersten Start war ich regelrecht überrascht - wo die Vorgängerversion ca. 70 Sekunden brauchte, um vollständig zu booten, ist die neue in nicht mal 30 Sekunden einsatzbereit. Wahnsinn!

Der Netbook-Remix präsentiert sich recht ansprechend und aufgeräumt (klicken für Originalgröße):
Ubuntu 9.04 Netbook Remix

Was mich aber noch mehr erstaunte bzw. erfreute, ist, dass sofort alles out-of-the-box funktionierte: WLAN, Mikro, Webcam, Sound. Alles klappte sofort. Das einzige Manko, das mir bisher aufgefallen ist: Die Grafikperformance ist recht bescheiden in der neuen Menüstruktur. Aber das dürfte auf die Beta zurückzuführen sein. Anwendungen wie Firefox etc. laufen genauso schnell wie bei 8.10 auch.

Ansonsten ein absolut empfehlenswertes Upgrade: Ubuntu ist endlich richtig auf den Netbooks angekommen! Abgesehen von der Grafikperformance läuft das System rund. I'm very impressed. Cheesy

PISA: PDF-Dokumente in Python einfach erstellt


Auf meiner Arbeit wurde sehr lange ein Word-Makro verwendet, um Text in eine bestimmte Form zu pressen und dann auszudrucken. Dieses Makro war nicht gerade einfach in der Bedienung und relativ fehleranfällig, überdauerte aber die Zeit von Office 97, Office XP bis hin zu Office 2003 - in Office 2007 funktioniert es schlicht nicht mehr.

Nun stand ich vor dem Problem, das Makro in Office 2007 wieder zu flicken (oh Graus), oder vielleicht gleich das Ganze in einer anderen Umgebung umzusetzen. Die Wahl war klar und die betroffenen Kollegen, die damit am Ende arbeiten würden, hatten nichts gegen meinen Vorschlag, eine kleine Webanwendung zu schreiben, die die Konvertierung macht und daraus ein PDF generiert.

Die Django-Applikation war schnell geschrieben, aber da ich noch nie in Python ein PDF erstellt hatte, dachte ich, dass wird ein ziemlich großer Aufwand - bis ich auf Pisa stieß. Das ist nicht der berühmt-berüchtigte Test für das Bildungssystem, sondern ist ein HTML/CSS-zu-PDF-Konverter für Python. Lizenziert unter der GPLv2 steht dem Einsatz nichts im Wege.

Wer also HTML/CSS kann, der kann damit auch ziemlich einfach PDF-Dateien erstellen. Ein Bild könnt Ihr Euch auf der Demo-Seite von Pisa machen. Die Handhabung ist simpel und in der Dokumentation steht alles, was man wissen muss.

Damit war das angesprochene Projekt in wenigen Stunden umgesetzt. Und kein Microsoft Office ist mehr nötig - nur ein Browser und ein PDF-Reader. Zu guter Letzt ist auch der Arbeitsplatz nicht mehr relevant. Die Kollegin kann den Druck anstoßen, wo auch immer sie gerade arbeitet.

Open Source macht einfach produktiver! Smile