Wer A Sagt

Tägliche Beobachtungen

16. Mai 2009
von Rainer
2 Kommentare

Update von Windows 2000 auf Windows 7

Windows 7Als ich noch jünger war und mehr Zeit hatte, habe ich ziemliche viele Betriebssysteme ausprobiert. Seit einigen Jahren verwende ich nun Ubuntu/Kubuntu und wenn etwas damit nicht geht Windows 2000.
Einen zwingenden Grund Windows 2000 zu aktualisieren gab es nicht. Windows XP war kein Fortschritt und Vista erst recht nicht. Wozu sollte man dafür Geld ausgeben, wenn man es eh kaum nutzt und keinen Vorteil davon hat.

Die Nichtverfügbarkeit von Visual Studio Express 2008 für Windows 2000 brachte mich auf den Gedanken, daß Microsoft Beta Versionen von Windows 7 zum Download anbietet. Statt der Beta Version gab es zu dem Zeitpunkt schon den Release Candidate, den ich mir herunterlud und dieses Wochenende installierte.

Ich begann mit dem Versuch eines Updates von Windows 2000 auf Windows 7. Die DVD Installation klappte zwar, aber beim Start des Betriebssystems kam der Text “Dienste werden gestartet”, dann kam die Meldung, daß das ein Problem auftrat und das Setup nach einem Neustart weitergeführt wird. Leider ging es nicht weiter. Nach kurzem Überlegen, ob auf der Partition noch etwas wichtiges war, lies ich sie vor der Installation formatieren. Diesmal funktionierte die Installation dann.

Schade ist, daß man wie bei Windows üblich, noch Gerätetreiber installieren muß. Treiber für WLAN und Sound fehlten. Ich installierte zu erst die falschen WLAN Treiber, was zur Folge hatte, daß die Downloadrate bei unter 10KB/s lag, was auch seinen Reiz hatte, da man wieder mal mitbekommen hat wie es früher war, als man noch Analog Modem, oder ISDN benutzte.

Windows 7 macht, ein paar Stunden nach der Installation, einen guten Eindruck. Es sieht optisch gut aus, obwohl ich die Aero Effekte abstellen werde. Die Größe der Icons im Panel hat mir allerdings nicht gefallen. Wenn man die kleinen Icons verwendet sieht das Panel wieder so aus, wie in den vorigen Windows Versionen. Schön fand ich, daß nach der Installation nun nur noch das Papierkorb Icon auf dem Desktop zu sehen ist.
Am Auffälligsten war dann noch die Zip Behandlung. Unter Vista kam mir das sehr langsam vor, so daß man 7Zip benutzen musste. Bei Windows 7 funktioniert das Entpacken nun mit angenehmer Geschwindigkeit. Auch die Startgeschwindigkeit von Windows und der Programme ist recht kurz.

Außer das Windows 7 bunter ist und das mehr Programme laufen, gibt es zu Windows 2000 keine Vorteile. Durch die Möglichkeit Windows 7 eine recht lange Zeit kostenlos verwenden zu können, spricht allerdings auch wenig gegen ein Update. Es freut mich, daß Microsoft das Betriebssystem ähnlich wie bei Linux Distributionen zum kostenlosen Download anbietet. Wenn Windows 7 bei Erscheinen dann nicht mehr als 100 Euro kostet, ist es gut möglich daß ich es mir kaufe, ansonsten kann ich ja immer noch auf Windows 2000 zurückwechseln.

14. Mai 2009
von Rainer
Keine Kommentare

ruby-dbi und Unicode

Gestern und heute habe ich einige Stunden damit verbracht nach einem Fehler zu suchen, der erst auftrat, als eine bei einer Rails Anwendung die Datenbank von MySQL auf SQL Server gändert wurde.

Beim Auslesen eines Passwordhashs aus einem Zeichenfeld wurde von Rails statt dem letzten Zeichen ein Null Charakter zurückgegeben. Dies geschah nur, wenn die Länge des Strings der Länge der Spalte entstprach, hier waren es 40 Zeichen. Vergrößerte man die Spalte auf 41 kam der richtige Wert zurück.

Es konnte schnell ausgeschlossen werden, daß es an der Datenbank, oder an der ODBC Einstellung lag, da mit anderen Anwendungen der richtige Inhalt zurückkam. Die Ursache lag also zwischen der Anwendung und der ODBC Verbindung. Dies gab mir die Gelegenheit die Komponenten dazwischen und ruby-debug genauer kennenzulernen, also den activerecord-sqlserver adapter, ruby-dbi und ruby-odbc. Leider konnte ich nichts finden, da der Debugger trotz Step into nicht in eine Funktion hineinspang. Nach einer Weile wusste ich auch warum. Ich lud mir den Quellcode zu ruby-odbc herunter und erkannte, daß es eine Funktion einer Binärlibrary war. Die auch noch zu debuggen war mir zu viel, es war auch schon kurz vor Feierabend. Ich schrieb dem Autor von ruby-odbc, da ich annahm, daß das Phänomen möglicherweise schon bekannt ist.

Da mir der Autor abends schon antwortete konnte ich am nächsten Tag gleich sinnvoll weitermachen. Er schlug vor die ODBC Daten zu protokollieren. Das Tracen klappte nicht sofort, weil komischerweise nur die SQLs von Migrationen getraced wurden, nicht die SQLs der Anwendung, aber das Log brachte mich der Lösug schon viel näher. Dort sah ich das die von ruby verwendete Feldlänge nur die Hälfte der Länge der Abfrage von MS Access war. ruby-odbc sah also nicht, daß dies ein Unicode Feld war.

Ich sah mir dann den Code der odbc Bibliothek an und mir fielen #ifdef unicode Zeilen auf, woraus ich schloß, das Unicode eine Konfigurationsmöglichkeit sein muß. Daraufhin tat ich das, was man eigentlich als erstes machen sollte. Ich las die README Datei in der tatsächlich die Lösung stand:

if $KCODE == "UTF8" then
  require 'odbc_utf8'
else
  require 'odbc'
end

Dies fügte ich in dbd/odbc.rb was auch in diesem Patch zu finden ist.

14. März 2009
von Rainer
Keine Kommentare

Update von Ubuntu 8.10 auf 9.04

Gestern aktualisierte ich mein OS auf Ubuntu 9.04. Die 6.Alphaversion schien mir sicher genug zu sein. Beim Update trat ein Fehler im Paket checkbox auf, welcher verhinderte das weitere Pakete über apt-get installiert werden konnten. U.A. konnte deswegen die zum Kernel passenden Nvidia Treiber nicht installiert werden, wodurch X nur mit dem vorherigen Kernel funktionierte.
Nachdem ich das Paket hwtest und ubuntu-desktop, keine Angst der Gnome Desktop wird nicht mit deinstalliert, über “dpkg –remove ..” entfernt habe und danach “apt-get -f install” aufgerufen habe, war die Paketverwaltung wieder in Ordnung und ich konnte die restlichen Pakete installieren.
Bis auf eine leicht größere Schrift ist mir bei Ubuntu 9.04 allerdings nichts Neues aufgefallen.

Reblog this post [with Zemanta]

7. Februar 2009
von Rainer
2 Kommentare

Lokalisierung nach Update auf Rails 2.3

Nach einem Update von Rails 2.2.2 auf Rails 2.3 funktionierte das Localization Plugin simple_localization, welches ich hauptsächlich wegen der Fehlermeldungen verwendet habe, leider aufgrund eines Fehlers nicht mehr. Dies brachte mich dazu, mich mit den Lokalisierungsfunktionen von Rails zu beschäftigen.

Die Hinweise gelten hauptsächlich für ein Update einer bestehenden Anwendung. Bei neuen Projekten werden die genannten Änderungen teilweise von Rails gemacht.

Die Dateien mit den Übersetzungen kommen nach config/locales und werden automatisch geladen. Daher fügt man folgende zwei Zeilen in die environment.rb im Rails::Initializer Block ein:

# The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded.
config.i18n.default_locale = :de

Nun erstellt man das Verzeichnis “config/locales” und darin die Datei de.yml

Mögliche Strings zum Übersetzen findet man unter dem Ruby gems Verzeichnis, oder durch Ausgabe des Inhalts von config.i18n.load_path

Allerdings wundert es mich, daß ich noch keine fertigen Übersetzungen gefunden habe. Wer die Fehlermeldungen nicht auch selbst übersetzen möchte, kann meine de.yml als Vorlage verwenden.

Wer genaueres über die Lokalisierung erfahren möchte kann sich den Guide zur Rails Internationalization API durchlesen.

Reblog this post [with Zemanta]

25. Dezember 2008
von Rainer
2 Kommentare

Mr. Tweet

Durch den Podcast net@night 80: Mr. Tweet wurde ich auf Mr.Tweet aufmerksam. Dies ist ein Agent, der einem eine Liste von Twitter Benutzern anzeigt, die von den Personen gefolgt werden, denen man selber folgt. Dadurch sollte man Personen finden, die einen recht hohen Kompetenzgrad haben. Interessanterweise findet man dadurch wohl tatsächlich auch alle wichtigen Leute auf Twitter, weil die Vernetzung recht hoch ist. Ob die dann tatsächlich aber etwas interessantes Twittern ist eine andere Frage.

4. Dezember 2008
von Rainer
Keine Kommentare

Meine neuen In Ohr Kopfhöhrer

Seit zwei Jahren hatte Shure E2 Ohrhöhrer. Meine ersten richtigen In Ohr Kopfhöhrer. Zuvor hatte ich ein Model von Sony, welches nicht so isolierend war. Besonders störend daran war zudem die asynchrone Kabelführung. Eine sehr seltsame Idee, da damit das Gewicht größtenteils an einem Ohrstück hing. Nachdem ich einen Ohrstöpsel verlor und sich die Isolation löste,  fielen mir die Ohrhöhrer von Shure und Co. auf. Vor allem fiel mir auf, daß sie ein Stück teurer sind :) Ich bestellte mir dann die Shure E2, da ich nicht so viel mehr ausgeben wollte.

Leider hat sich in letzter Zeit die Kabelisolation gelöst, was ein sehr verbreitetes Problem bei dem Modell ist. Ich hatte davon schon vor dem Kauf in einem Kommentar auf Amazon gelesen. Shure soll aber die Ohrhöhrer innerhalb von zwei Jahren kommentarlos austauschen. Leider waren nun zwei Jahre gerade um, d.h. bei Shure hat man das gerade richtig getimed :). Seit gestern funktioniert leider auch der linke Höhrer nicht mehr, was wohl eine Folge der fehlenden Isolierung war, damit brauchte ich nun Neue.

Gestern Abend habe ich dann erstmal die Ohrhöhrer ausprobiert, der bei meinem MP3 Player dabei war und unbenutzt in der Schachtel lag. Ich probierte sie kurz, aufgrund des ungenügenden Halts und der offenen Bauform habe ich sie gleich wieder in die Schachtel gesteckt.

Da die Fahrt mit der Straßenbahn ohne Musik schwer erträglich war informierte ich mich den Tag über Ohrhöhrer. Preislich wollte ich so 100 Euro ausgeben. Die Kabel sollten über die Ohren gehen, da dadurch der Halt besser ist und er sollte den Außenschall gut isolieren.

Nach einiger Zeit einen sehr ausführlichen Bericht über Ultimate Ears Super.Fi 5 auf anythingbutipod. Das Design gefällt mir nicht so sehr. Klang, Tragekomfort sollen jedoch gut sein, leider kann man laut einem Thread auf HEAD-FI, die Kabel nicht wie bei anderen Ultimate Ears Modellen austauschen. Der Preis mit 130 Euro ist zwar etwas höher als bei den E2s, aber liegt noch im Rahmen des Bezahlbaren. Von Klang habe ich keine Ahnung, daher ist es wahrscheinlich egal welchen ich kaufen würde, aber wenn schon Tragekomfort und Haltbarkeit besser sind, als beim Shure, lohnt es sich, denn der Shure Ohrhöhrer wird nach einiger Zeit des Tragens unangenehm. Der Tester der Ultimate Ears erwähnt, daß er sie im Schlaf getragen hat. Etwas das mit dem Shure bei mir gar nicht ging.

Die Ohrhöhrer sind inzwischen angekommen. Klanglich sind sie bisher heller und haben weniger Bass, als die E2C. Im Review auf anythingbutipod wird erwähnt, daß sie nach einem “Burn In” Prozess besser klingen sollen. Etwas von dem ich bisher noch nichts gehört habe, aber das ich zwangsweise ausprobieren werde.

15. November 2008
von Rainer
Keine Kommentare

OceanLab – Satellite

Ein schönes Video, das ich heute zum ersten Mal gesehen habe. Als das Stück vor einigen Jahren herauskam habe ich mir die Promo Maxi gekauft. (Ich sollte die Platten mal wieder digitalisieren, wenn ich dazu komme).
Ich habe am Wochenende begonnen den Beitrag zu erstellen, habe ihn dann aber erstmal gespeichert, weil Aufgrund des Scripttags auf armadamusic.tv, das Video sofort losspielt, was ja eigentlich keiner mag, wenn es auf der Seite noch weiteren Inhalt gibt. Daher schrieb ich eine Email an Armada und nach einiger Zeit bekam ich Antwort: Wer auch Videos von armadamusic.tv einbetten möchte, ohne das sie sofort gespielt werden, der fügt folgendes ans Ende des src Attributs: “&play_key=23940310&startmode=CLICKTOSTART”.
Die Email kam übrigens von Robert Nickson, was mich sehr verblüfft hat.

15. November 2008
von Rainer
Keine Kommentare

Datenbank Synchronisation

Zur Zeit beschäftige ich mit soalib. Einer Library mit der sich unter Anderem Datenbanktabellen (Java, C++,C#) synchronisieren lassen. Leider ist weder die Dokumentation ausführlich, noch erhält man aussagekräftige Fehlermeldungen.
Was auch zur Undurchsichtigkeit bei trägt sind die zwei Verzeichnisse, die von soalib verwendet werden. Der Server befindet sich unter server/runtime, dort befindet sich ein Log für Mappings und Synchronisierungen. Ein Verzeichnis mit den Konfigurationsdaten befindet sich im Verzeichnis soalib des Benutzers. Dort findet man die Verbindungsinformationen, Tablemapping Informationen und die Stati der Synchronisationen.
Der Weg zu einer funktionierenden Tabellensynchronisation besteht dann aus drei Schritten. Dem Erzeugen eines Verbindungsschlüssels für jede Datenbank. Dem Erzeugen der Tabellenabbildungen und der Synchronisation.
Das Erzeugen der Schlüssels ist relativ einfach. Beim Erzeugen der Mappings sollte man die Mappingprüffunktion verwenden und prüfen ob die Mappings OK sind, denn es wird auch eine Datei für inkonsistente Mappings erzeugt. Dies ist allerdings nicht ausreichend für eine funktionierende Synchronisation. Beginnt man mit dem Synchronisieren sollte man Schritt für Schritt die Tabellen durchgehen. Ich habe darauf geachtet, das für die Tabelle ein Verzeichnis mit dem Synchronisationsstatus unter dem soalib Ordner im Benutzerverzeichnis angelegt wurde, denn die Synchronisation bricht im Fehlerfall meist ab, ohne einen konkreten Fehler anzuzeigen.
Worauf man bei den Tabellen achten sollte:
- Die Tabellennamen dürfen keinen Bindestrich enthalten
- Tabellen auf die in Foreign Keys verwiesen wird, müssen im Mappingfile sein
- Ein Mapping mit tinyint(1) funktionierte nicht, nur tinyint(3)

9. November 2008
von Rainer
Keine Kommentare

Where do those values come from?

I am currently working on views for user administration. When I go to the view to create a new user, there is always the login name and password already filled in. I wondered where those values came from. I printed the values of the User model. It was empty. Was there an object which masked those values? Luckily I finally realized that it was the browser autocompletion, after inserting an autocomplete=”off” attribute to the input like described on Selfhtml, the entries in the form were empty.

Social Widgets powered by AB-WebLog.com.