2 Defizite von Konqueror (KDE 3.5.8)

Wenn man täglich mit Webseiten-Entwicklung zu tun hat, bleibt es nicht aus, dass man über Fehler in diversen Browsern stolpert.

Ärgerlich finde ich Bugs, die entstanden sind und auch nicht entdeckt wurden, weil die Entwickler/Tester nur den Normalfall betrachtet haben. Zwei schöne Beispiele liefert hier der Konqueror in seiner Rolle als Web-Browser.

Bug 1: Nur teilweise Darstellung von Bildern, wenn Webseiten geladen werden, nachdem (!) der Browser auf einen Zoomfaktor > 1 eingestellt wurde

Konqueror behandelt Bilder, deren Größe mit “em”-Vorgaben festgelegt sind, solange richtig, wie man die entsprechenden Webseiten bei normaler Schriftgröße lädt. Selbst eine nachfolgende Vergrößerung der Schriften bzw. des Browser-Bildes über “Ctrl +” (bzw. Strg +) skaliert die Bilder im erwarteten Maße. Lädt man jedoch Webseiten mit Bildern (deren größe mit “em” definiert wurde) bei bereits eingestelltem Zoomfaktor >1 (z.B. 1.5 durch zweimalige Anwendung von CTRL +), so werden die Bilder nur abgeschnitten dargestellt. Der Browser vergisst, Bildbereiche zu rendern, die über die Bildgröße hinausgehen, die bei einem Zoomfaktor von 1.0 gültig wären.

Meine Meinung: Hier wurde unzureichend getestet.

Bug 2: Properties von Iframes werden beim Laden einer Seite zu spät für Scripts bereitgestellt

Tritt im Zuge des Ladens einer Webseite das sog. “onLoad” – Ereignis auf, so sollten zu diesem Zeitpunkt alle Webseiteninhalte fertig aus dem Netz geladen sein und im Browser alle relevanten Informationen zu den geladenen Objekten zur Verfügung stehen. Eine solche Eigenschaft ist die (Gecko-spezifische) Eigenschaft “innerWidth” von “window”- oder “(i)frame”-Objekten. Firefox und Opera stellen diese Eigenschaft auch bereit, wenn das Onload-Ereignis eintritt. Nicht dagegen Konqueror – er liefert zwar “genauere” Daten als die anderen Browser, da er auch die breite von evtl. auftreteden Scrollbars der “(i)frames” berücksichtigt. Diese Daten stehen u.U. aber erst zeitverzögert nach dem Eintreten des “onLoad”-Ereignisses für die Verarbeitung in Javascript-Programmen zur Verfügung.

Meine Meinung: Ich weiß nicht, wie oft man “innerWidth” beim onLoad-Ereignis in der Praxis benötigt. Ich meine aber, dass die Vorgehensweise beim Konqueror die Verletzung einer natürlichen Erwartungshaltung an die Verfügbarkeit zu Seitenelementen billigend in Kauf nimmt. Der Sinn des onLoad-Ereignisses ist in gewisser Weise in Frage gestellt, wenn Objektinformationen erst nach diesem Zeitpunkt bereitgestellt werden. Der Bug riecht förmlich nach einem konzeptionellen Fehler bei der Behandlung von Iframes.

Compiz: Fehler mit Nvidia Treiber x86_64_169

Compiz Fusion und Fehler mit Nvidia treiber x86_64_169

Beim Einsatz dieses Treibers kann es je nach Grafikkarte unter Opensuse 10.3 passieren, dass ein Starten von Compiz über das das Compiz-Fusion-Icon dazu führt, dass die Fensterrahmen (window decoration) nicht angezeigt werden.

Dies geschieht ggf. auch dann, wenn alle notwendige Einträge im xorg.conf File vorhanden sind.

Hier helfen:

1) Beibehalten des Nvidia-Treibers -> Starte Compiz über eine Konsole mit “compiz-manager &” . Hier werden dann offenbar sinnvolle Parameter beim Start gewählt, die mit dem Treiber kompatibel sind.
2) Downgrade des Treibers.

Der 169-Treiber ist dennoch interessant. Er erlaubt nämlich eine viel bessere Synchronisierung der OpenGL-Darstellung mit der Vertikalfrequenz des Monitors (Einstellung im Compiz Einstellungsmananger unter dem Punkt “Allgemein”). Dies beseitigt das bemerkenswerte und üble Tearing der Kanten von “wobbling windows”, das mit Compiz-Fusion Einzug gehalten hat.

Es bleibt zu hoffen, dass demnächst ein besseres Treiber erscheint.

Smb4K zerstört /etc/sudoers Datei

Es ist mir nun schon mehrfach passiert, dass bei der  Ersteinrichtung von smb4k ein kleines Unglück passiert:

Beim Einrichten des Zugriffsverfahren  (Einrichten -> Administrator) wird bei der Wahl von sudo das /etc/sudoers File editiert. Aus irgendeinem Grund geht dies ab und zu schief und die Formatierung der Datei wird zerstört.

Der korrekte Zeilenaufbau dieser Datei ist aber essentiell. Werden z.B. Zeilenumbrüche an der falschen Stelle gesetzt, funktioniert danach unter KDE “kdesu” nicht mehr.

Weder smb4k läuft danach, noch yast2, etc. – im Grunde funktioniert nichts mehr , bei dem kdesu vorgeschaltet wird. kdesu liest die Einstellungen in /etc/sudoers aus und stößt dabei auf Fehler.  Dies resultiert unter KDE dann in einer Meldung vom Typ “su meldet Fehler”.

Testen kann man das sehr einfach, indem man das Kommando “visudo” als root verwendet. Man nehme eine kleine Änderung vor und speichere das Ergebnis ab. Die resultierenden Fehlermeldungen zeigen i.d.R., was geändert werden muss.

Zusätzlich gilt, dass folgende Einträge  vorhanden sein sollten :

——-

Defaults targetpw   # ask for the password of the target user i.e. root
ALL ALL=(ALL) ALL   # WARNING! Only use this together with ‘Defaults targetpw’!

# Runas alias specification

# User privilege specification
root    ALL=(ALL) SETENV: ALL

# Uncomment to allow people in group wheel to run all commands
# and set environment variables.
# %wheel    ALL=(ALL) SETENV: ALL

# Same thing without a password
# %wheel    ALL=(ALL) NOPASSWD: SETENV: ALL

# Samples
# %users  ALL=/sbin/mount /cdrom,/sbin/umount /cdrom
# %users  localhost=/sbin/shutdown -h now

# Entries for Smb4K users.
# Generated by Smb4K. Please do not modify!
User_Alias    SMB4KUSERS = userx

Defaults:SMB4KUSERS    env_keep=”PASSWD USER”
SMB4KUSERS    host = NOPASSWD: /opt/kde3/bin/smb4k_kill
SMB4KUSERS    host = NOPASSWD: /opt/kde3/bin/smb4k_umount
SMB4KUSERS    host = NOPASSWD: /opt/kde3/bin/smb4k_mount
# End of Smb4K user entries.
—-

“host” ist durch den lokalen Rechnernamen zu ersetzen

“userx” ist durch den User zu ersetzen, der/die smb4k benutzen darf. Hier kann auch eine komma-separierte Liste von Usernamen angegeben werden.

Ob root auch smb4k benutzen sollte, ist aus Sicherheitsgründen sehr diskutabel. Ich vermeide das.