Wie so oft sind es die kleinen Dinge im Leben die einen echt fertig machen können. Zum Beispiel wenn man seine JSP Seiten in den falschen Ordner legt. Ich hatte sie in WEB-INF und nicht in WebContent. Da muss man sich auch nicht über nen 404 wundern.
Archive for Computer
2 Couchapp Frameworks
Couchapps sind statische Webseiten die aus CouchDB geladen werden (CouchDB spricht ja http) und dynamisch über Javascript Daten aus CouchDB nachladen können. Um die Couchapps zu in die CocuDB zu laden und den Umgang einfach zu gestalten gibt es das python Framework couchapp und das ruby Framework soca.
couchapp wurde von Chris Anderson (einem der Hauptautoren des “CouchDB The Definitive Guide” Buchs) entwickelt und verwendet evently um dafür zu sorgen das die Webseiten RESTFul sind (Beispiel). soca steht für Sammy-On-CouchApp wurde von Aaron Quint entwickelt und verwendet sammy.js für die “RESTFulness” der Seite (Beispiel).
evently und sammy.js setzten beide auf jquery auf. couchapp ist wohl das weiter verbreitete und hat mehr Dokumentation (Beispiel), allerdings finde ich es etwas seltsam sich in den “evently weg” zur Strukturierung des Codes einzulassen. Bei sammy sieht für mich erstmal intuitiver aus aber die Beispiele haben nicht wie erwartet funktioniert und die installation des gem schlug fehl.
pdfbook ist toll oder viel Zeit vertan
Ich lese immer noch am liebsten auf Papier und es hat mich schon lange geärgert das nur der Acroread unter Linux Broschürendruck (Booklet printing) ermöglicht. Also habe ich die Funktion so gut es geht nach gebaut dabei habe ich eine beeindruckend lange Pipe gebastelt von pdf zu ps, dann umformatiert mit psbook und wieder zurück in pdf. Anschließend konnte man es dann mit Evince, wenn man 2 Seiten auf einer, “Fit to Page” und den Duplexdruck auf Short-Edge stellt die Broschüre auch wunderbar ausdrucken.
Dann habe ich pdfbook gefunden (weil ich mich verschrieben habe ich wollte psbook schreiben) es ist ein Teil von PDFJam und gut versteckt da es nicht in der Beschreibung erwähnt wird und eine suche nach pdfbook in einer Suchmaschine deiner Wahl wahrscheinlich auch nicht viel hilft. Lange Rede kurzer Sinn es hat meine ganze Pipe ersetzt ist viel bequemer, schneller und qualitativ (da nicht ständig von einem Format in das andere konvertiert wird ) besser. Der einzige Punkt an dem ich noch nachbessern musste, ist das Ubuntu 10.10 die 2.5 Version von PDFJam mitliefert und seit 10.05 gibt es die Version 2.6. Diese bringt einen besseren Standard Algorithmus für den Broschürendruck mit. Das war aber schnell geändert einfach in der /usr/bin/pdfbook die Option –booklet true nach den Aufrufen von pdfjam einfügen.
Jetzt steht dem Ressourcen sparendem drucken nichts mehr im weg.
Rails3 und CouchDB
Ich hab mich die letzten Tage ein wenig in Rails3 in Zusammenspiel mit CouchDB als Datenbank eingearbeitet. Als allererste Einführung kann ich wärmstes Aimee Daniells erste Schritte mit CouchDB und Rails empfehlen. Es ist zwar schon etwas älter aber als Einführung gut geeignet und toll geschrieben.
Im Prinzip tolle Technologien aber ich kann voll und ganz Karel Minařík zustimmen der Einstieg ist wirklich nicht leicht! Es gibt eine Fülle von Bbilotheken/Plugins oder Gems (wie auch immer) die alle irgendwie verschieden sind und alle einen möglichst einfachen Zugriff aus ruby auf eine Datenbank in CouchDb gewähren. Man kann sie mehr oder weniger unterteilen in Bibliotheken die versuchen eine Syntax ähnlich der von ActiveRecord zu bieten und denen die versuchen näher am der eigentlichen API zu bleiben. Bei meiner Suche nach Auswahlkriterien bin ich unter anderem auf Alexander Lang Artikel zu dem Thema gestoßen.Ein wichtiges Kriterium ist meiner Meinung nach die Aktualität der Bibliothek. Einerseits können, bei so einem bewegtem Umfeld ,Bibliotheken an denen schon seit einem halbes Jahr nicht weiter entwickelt wurde vielleicht schon veraltet bzw. verwaist sein. Andererseits gibt es für die neusten Versionen kaum einführende Dokumentation. Ich habe:
- Couchrest Model (eher CocuhDB style)
- Simply Stored (eher ActiveRecord style)
in die nähere Auswahl genommen. Sie scheinen mir am weitesten entwickelt zu sein und basieren auf bereits “etablierten” Bibliotheken.
Zu Simply Stored habe ich noch diesen Vortag gefunden und diese Beispiele. Die Beispiele habe ich teilweise zum laufen bekommen indem ich die Zeile
require "helper"auskommentiert habe.
Spannender fand ich aber die Couchrest Model Geschichte. Vor allem da in der README von ActiveModel aus Rail3 die Rede ist und das erschien mir als konsequent. Leider hatte ich auch hier zuerst keinen Erfolg damit eine Beispiel Rails Applikation aufzusetzen. Die Erlösung kam erst als ich im Couchrest “Forum” einen Hinweis auf eine Beispiel Rails Applikation gefunden habe die ich dann nur noch klonen brauchte. Jetzt musste ich nur noch Rails auf 3.0.1 aktualisieren damit die der Code aus dem Couchrest Model repository läuft (Version 1.0Beta8) und es lief.
Der entscheide Part der die Verbindung zu CouchDB herstellt ist übrigens in: config/initializers/couchdb.rb und lautet:
1 2 3 4 | require 'couchrest/model' CouchServer = CouchRest::Server.new # defaults to localhost:5984 CouchServer.default_database = "appname-#{Rails.env}" |
Damit habe ich dann auch meine Beispiel Applikation zum laufen gebracht. Abschließend bleibt noch zu sagen das ich noch couchrest-rails ausprobieren möchte, ein Haufen Erweiterungen für Rails, die das handling von couchrest einfacher machen sollen. Aber ich weiß nicht ob das problemlos mit couchrest model zusammenspielt.
Gnome Bilderrahmen
Des öfteren habe ich Widgets ausprobiert die ein Foto in einem nettem Rahmen auf dem Desktop anzeigen. Aber ich hatte immer das Gefühl das das System dadurch langsamer anfühlt oder oder habe es eine Zeit lang benutzt und danach wieder vergessen zu installieren.
Eben habe ich herausgefunden das GNOME diese Funktion “quasi” mit Boardmitteln bereitstellt. Legt man sich ein Foto auf den Desktop, macht einen Rechtsklick drauf und und wählt dann “Icon größe verändern” bzw. Strech Icon, kann man die Größe fast beliebig anpassen.
Offline-youtube
Mittlerweile ist Youtube wohl so etwas wie eine riesige Musikdatenbank. Mein ehemaliger Mitbewohner hatte gar keine Musik auf seinem Computer und hat immer alles direkt von Youtube gespielt. Wenn ich einzelne Songs gut finde höre ich sie auch häufig bei Youtube, allerdings bevorzuge ich Musik zu hören wenn ich unterwegs bin. Und weil mobiles Internet Teuer ist und viel Strom isst habe ich mir mal angesehen was es für Software für das N900 gibt um Youtube Videos auf das Gerät zu bannen.
Gefunden habe ich zwei mytube und zoutube beide gehen nicht mehr, aber mytube ließ sich reparieren mit diesem patch hier.
So weit so gut, jetzt haben wir eine “Video” Datei von dem Lied und sie wird auch vom N900 Mediaplayer abgespielt, wenn man ein paar erweiterte Codecs installiert. Aber im Prinzip will ich ja nur das Lied hören und nicht das Video dazu sehen, zumal das Video meist nur ein Coverbild ist. Die Videodatei hat auch noch den Nachteil das es mehr Rechenzeit brauch und vor-allem mehr Strom da man das Display nicht ausstellen kann und auch nicht das Programm wechseln ohne das das Video pausiert wird. Also habe ich mir noch ffmpeg installiert und mit
ffmpeg -i input.flv -vn -acodec copy output.aac
die Tonspur raus kopiert. Das geht recht schnell sogar auf dem N900 und es wird nichts neu codiert und danach ist es eine normale Audiodatei. Das einzige Problem was ich noch mit dieser Lösung habe ist das ich leider kein Programm um Taggen von acc gefunden habe. Daher lässt sich so ein Lied nicht leicht finden. Man kann nur nachträglich ein id Tag mit Banshee hinzufügen.
This Place
Eine Datenbank von guten (Schlaf) Plätzen. Auf die Idee bin ich in Australien gekommen. Es gibt da den CAMPS Atlas in dem alle (legalen) Rastplätze mit all ihren Einrichtungen eingezeichnet sind. An den wäre das Programm angelehnt. Es läuft auf einem Smartphone, man kann via GPS Orte speichern und zusätzlich aus einer Anzahl an Eigenschaften wählen die der Ort hat (z.B. Trinkwasser, gut Aussicht, etc.). Man sollte noch selber Eigenschaften eingeben können (z.B. als Tags), die dann wenn sie häufig benutzt werden auch als Standard Eingenschaften aufgelistet werden. Speichern und wenn das nächste mal Netz vorhanden ist hoch damit in die Datenbank. Andersherum sollte man sich natürlich Plätze in seiner Nähe Anzeigen lassen können. Dafür muss man entweder Online seien oder Man läd sich einen Teil der Datenbank runter. Vielleicht alle Plätze aus einem Land oder Bundesland. In diesem Fall sollten natürlich auch noch Updates der Offline Daten möglich sein, wenn man wieder Netz hat.
Die Letzte wichtige Funktion ist das Bewerten und kommentieren der Plätze . So das man sieht X Menschen haben diesen Platz so bewertet und haben ihn kommentiert. Auch die Kommentare werden erst Offline gespeichert und später wenn man Online ist hochgeladen.
Für das Projekt würde sich wieder CouchDB anbieten, da man damit gut von Haus aus verschiedene Versionen einer Datenbank synchronisieren kann.
Movie Manager
Ich habe unter zumindest unter Linux noch keine zufriedenstellende Software gefunden mit der man seine digitale Filmsammlung ordentlich im Griff behalten kann. Im Prinzip will ich die selbe Funktionalität wie sie aktuelle Software zum abspielen von Audiodaten liefert.Es gibt GCstar, mit dem man allgemein Sammlungen managen kann und die haben auch eine gute Unterstützung für Filme aber man merkt schon das GCstar eher für generelle Sammlungen ausgelegt ist.
Daher habe ich mir überlegt wäre es nett mal in die Richtung was zu machen vor allem da ich gerne mal eine CouchDB Application basteln würde und auch schon ewig nichts mehr mit ruby gemacht habe. Über CouchDB habe ich letztens ein CRE podcast gehört und da wurde erwähnt wie man quasi ein Programm in der Couch wohnen lassen kann, und das würde ich gerne mal ausprobieren.
Froscon Werbung
Ich bin grad das erste mal ausserhalb des Rheinlandes auf nicht von mir angebrachte Werbung für die Froscon gestoßen. Ich werte das als äusserst positiv. Hoffentlich wird es nicht zu voll
Tiling Compiz
Mir wurde letztens vor Augen geführt das die meisten Windowmanager nicht in der Lage sind Windows in einer ordentlichen Weise zu managen. Damit meine ich die Funktion die Fenster an bestimmte Orte immer wieder zu platzieren oder sie dynamisch Sinnvoll neu zu ordnen. Es gibt auch eine Wikipedia Seite dazu. Dort werden auch diverse Programme/Windowmanager aufgelistet die die Funktion beherrschen bzw. nachliefern.
Da ich nicht gleich mein ganzes Gnome umkrempeln wollte habe ich mich für die Quick and Dirty Variante entschieden. Das Python Script Stiler.py in der geforkten Version, kann mit mehreren Monitoren umgehen ist schnell installiert und bietet sinnvolle default Einstellungen. Als Abhängigkeit hat es das Programm wmctr das aber in den Ubuntu Quellen enthalten ist.
Ich habe die cycle Funktion per Compiz in eine der Bildschirmecken gelegt und die Auslösezeit angepasst(wie hier beschrieben).
Ein paar Kleinigkeiten stören mich noch:
- ich musste die stiler.py in ein System Verzeichnis kopieren von meinem bin im Home hat es Compiz nicht gestartet
- Es werden bei Compiz sämtliche Fenster auch die auf anderen Arbeitsflächen neu auf einer angeordnet.