Mittwoch, 23. Januar 2013

Falsche Farben bei Videos in Totem, MiniTube etc. / Wrong colors of videos in Totem, MiniTube etc.


Deutsch
English
Auf meinem Ubuntu Linux System stellen Totem, MiniTube und andere Videoabspieler (aber nicht Flash und HTML5 Videos im Browser) falsche Farben dar. Blauer Himmel wird z.B. orange, Gesichter grün.On my Ubuntu Linux system Totem, MiniTube and other video players (but not Flash and HTML5 videos in browsers) get displayed with wrong colors. For example, blue sky turns orange, faces turn green.
Das liegt an einer verstellten Einstellung zum Farbton von Videos. (Siehe Ubuntu Forum) Unter askubuntu findet man die Lösung:This is caused by a wrong setting of the hue on video playback. (see Ubuntu forum) The fix for this has been provided by askubuntu:

  1. Öffne Totem und spiele ein Video ab.
  2. Wähle "Bearbeiten > Einstellungen"
  3. Verschiebe unter "Anzeige" den "Farbton"-Regler, bis die Farben im Video stimmen. (Bei mir musste der Regler bis ganz nach links.)

  1. Run Totem and play a video.
  2. Select "Edit > Settings"
  3. Under "Display" adjust the "Hue" unless the colors of the video are correct. (I had to shift the "Hue" control to the very left.)

Unartige Kinder aufgepasst...

... sonst ergeht es euch so:

Ein Blick auf Vala

Vala ist eine Programmiersprache, die seit 2006 im Linux-Umfeld verfügbar ist. Ich habe mich daran gesetzt, ein kleines Projekt in Vala auszuführen und hier mein Resümee.

Compiler und Tools

Der Vala Compiler und  etwaige Bibliotheken konnte ich einfach aus den Ubuntu Paketquellen beziehen. 

IDE

Niemand lernt gerne Buildskripte oder kryptische Kommandozeilenbefehle oder tippt in einem Texteditor herum. Ernsthaftes Programmieren findet daher normalerweise in einer IDE, einer integrierten Entwicklungsumgebung statt. Für Vala sieht es da ziemlich mau aus. Ich habe MonoDevelop verwendet und das dafür verfügbare Vala-Plug-In installiert, beides aus den Ubuntu Paketquellen. Für Windows... nun, Pech gehabt.

Die Guten, die Schlechten und die Hässlichen

Die IDE funktioniert, ist aber sehr langsam. Debugging ist eine Qual. Gut, das hat nichts mit Vala zu tun, zeigt aber, dass sich da nicht unbedingt viele Gedanken gemacht wurden. Ich habe den Eindruck, dass Vala dringend eine richtige IDE benötigt.
Die Dokumentation (kontextsensitive Hilfe) ist bestenfalls als rudimentär zu bezeichnen, bei mir fiel sie zwischenzeitlich gerne auch aus. Also immer wieder lästig in der Online-Dokumentation herumsuchen, die überdies oft nicht mehr als nur die Signatur von Methoden, Signalen und Properties zu bieten hat. Zu wenig Beispiele, zu wenig Dokumentation, ... das Leben des Vala-Programmierers ist hart, denn letztendlich muss er doch immer wieder in die C-Quellen der Bibliotheken schauen. Vala fehlt, wie den meisten Open-Source-Projekten, eine vernünftige Dokumentation.
Wobei wir schon beim nächsten Punkt wären: C. Vala ist C# in vielen Dingen sehr ähnlich (es gibt Signale/Events, Properties, viele gleiche Schlüsselwörter, ...), man merkt jedoch stark, dass Vala auf Biegen und Brechen mit dem steinalten und unkomfortablen C kompatibel sein muss und dass es stark mit der Linux-Welt (besonders GNOME) verbandelt ist. Beispiele gefällig?
  • Methoden überladen - geht nicht. Methoden unterschiedlicher Signatur müssen unterschiedliche Namen haben. Das mag für einen C-Programmierer wenig ausmachen, ist aber wirklich nicht mehr Stand der Technik.
  • GObject und co. - Vala nutzt die Infrastruktur von GObjekt sehr heftig, hat sie aber nicht richtig in die Sprache integriert. Wenn faktisch jede Klasse ohnehin von GLib.Objekt ableitet muss - warum ist das nicht in die Sprache integriert und ich muss es immer wieder angeben? So fühlt sich Vala immer wieder als Wrapper für GObject und Konsorten an, seien es Signale oder das lästige Speichermanagement. Es sind die technischen Schwächen von C und GObject, wegen derer man sich in Vala mit den owned und unowned Schlüsselwörtern herumschlagen muss, wegen derer Multithreading stellenweise kompliziert ist (siehe yield), wegen derer man sich Gedanken ums Speichermanagement machen muss (das tun Ada, Java und C# selbstständig).
  • Es fehlt an plattformübergreifenden Bibliotheken. Python, Java, JavaScript, Ruby, C#, Delphi, Ada, diese Sprachen sind erfolgreich, weil sie einen umfangreichen Satz an Bibliotheken mitbringen, die immer und überall verfügbar sind. In Vala muss man sie sich erst besorgen. Das mag für einen C-Programmierer Alltag sein, als moderner Programmierer ist es aber einfach nur lästig.
Jedoch bringt Vala auch einige nette syntaktische Neuigkeiten mit, die C# noch vermissen lässt:
  • Default-Werte für Properties.
  • Das aus C# bekannte INotifyPropertyChanged Interface, mit dem man Wertänderungen eines Properties mitgeteilt bekommt, wird in Vala praktisch automatisch umgesetzt, weil GObject es kann.

Fazit

Für einen C# Programmierer (oder Java...) hat Vala wenig zu bieten, es ist vor allen Dingen sehr schlecht dokumentiert und es fehlen Beispiele, die IDE und das Tooling sind eher dürftig. Für größere oder plattformagnostische Projekte ist das einfach zu unbequem. Will man aber ein kleines Programm für Linux schreiben und kennt sich ohnehin schon in den gängigen Linux-Bibliotheken aus, so ist Vala eine sehr gute Alternative zu C, C++ und anderen Katastrophen und spart tatsächlich Zeit. So findet man in der Liste der in Vala geschriebenen Projekte denn auch fast nur kleine Progrämmchen.

Dennoch: Unter Linux wird Vala wohl längere Zeit überdauern, weil Unity und Zeitgeist (beide Teil von Ubuntu) damit entwickelt werden.

Will man größere Projekte schreiben oder plattformunabhängig sein oder mehr Dokumentation haben, so sollte man statt Vala lieber eine andere Sprache nutzen. Von denen, die Ubuntu vorschlägt, scheinen mir QML, C#, JavaScript und Python die geeigneteren Alternativen zu sein.

Mittwoch, 2. Januar 2013

Unable to connect to RDP server / Verbindung zum RDP Server fehlgeschlagen

German English
Nachdem ich von meinem Rechner mit Ubuntu 12.04 lange Zeit via RDP (z.B. mit Remmina) auf einen Windows 7 Rechner zugriff, hat dies vor kurzem plötzlich aufgehört zu funktionieren mit folgendem Fehler: I've connected to Windows 7 from my Ubuntu 12.04 for some time now via RDP (e.g. using Remmina). However, this has suddenly stopped working recently. I got the following error:
Verbindung zum RDP Server fehlgeschlagen Unable to connect to RDP server
Das Problem steckte im Cache für bekannte Hosts und ihre Fingerprints. Dadurch wird normalerweise sichergestellt, dass man mit dem richtigen Zielrechner verbunden wird. Die Lösung für das Problem findet man mal wieder bei ask ubuntu, man muss den Cache löschen. Also einfach die Kommandozeile öffnen und folgenden Befehl ausführen: The problem originated from a cache of known hosts and their finger prints. Normally, this would ensure that you connect to the right target PC. The solution for the problem can once again be found on ask ubuntu, you simply have to clear the cache. So open a terminal and type:
rm ~/.freerdp/known_hosts
(Man kann auch das ganze Verzeichnis ~/.freerdp löschen...) (You could also delete the folder ~/.freerdp....)