Subscribe: Jörgs Webnotizen
http://notizen.joergkrusesweb.de/feeds/atom.xml
Added By: Feedage Forager Feedage Grade B rated
Language: German
Tags:
auf  browser  das  dass  die  eine  einen  für  ich  ist  kann man  kann  man  mit  nicht  oder  sich  und  von 
Rate this Feed
Rate this feedRate this feedRate this feedRate this feedRate this feed
Rate this feed 1 starRate this feed 2 starRate this feed 3 starRate this feed 4 starRate this feed 5 star

Comments (0)

Feed Details and Statistics Feed Statistics
Preview: Jörgs Webnotizen

Jörgs Webnotizen



Blog über Debian GNU/Linux, Webserver und Webprogrammierung



Updated: 2017-10-24T19:01:16Z

 



Anpassung der Browserauswahl von „Can I use…“

2017-10-24T19:01:16Z

Auf der Website Can I use… kann man sich zu unterschiedlichen HTML-, CSS- und JavaScript-Eigenschaften die Unterstützung von verbreiteten Browsern anzeigen lassen. Für Webprogrammierer eine sehr gute Hilfe bei der Frage, welche neuen Features man denn schon einsetzen kann. In der Standardseinstellung zeigt Can I use… zur besseren Übersicht nur die Browser-Versionen an, die weltweit […]

Auf der Website Can I use… kann man sich zu unterschiedlichen HTML-, CSS- und JavaScript-Eigenschaften die Unterstützung von verbreiteten Browsern anzeigen lassen. Für Webprogrammierer eine sehr gute Hilfe bei der Frage, welche neuen Features man denn schon einsetzen kann. In der Standardseinstellung zeigt Can I use… zur besseren Übersicht nur die Browser-Versionen an, die weltweit einen Marktanteil von mindestens 0,5% haben.

Die Browser-Statistik bezieht Can I use… von StatCounter. Über den Settings-Buton in der orangenen Box kann man die Statistik-Auswahl konfigurieren. So lässt sich unter „Add usage source“ ein einzelnes Land importieren, wie z.B. Germany, welches man dann weiter oben unter „Source“ auswählen kann. Da die Browser-Statistik in Deutschland sich teils beträchtlich von der globalen Verteilung der Webbrowser unterscheidet, kann eine solche Auswahl z.B. Sinn machen, wenn eine Website vorrangig für Besucher aus Deutschland erstellt wird. Alternativ lassen sich auch Analytics-Statistiken importieren.

Darüber hinaus kann man mit dem Schieberegler „Min. browser usage“ eine niedrigere oder höhere Prozentzahl als die voreingestellten 0,5% festlegen. Mit weiteren Einstellungen kann man weitere weniger verbreitete Browser hinzufügen, die Kategorien der Features sowie deren Status beschränken.

Folgende Browser-Unterstützung zeigt caniuse.com in der Standardeinstellung für die HTML-Flexbox an:

(image)

Folgende Browser-Unterstützung zeigt caniuse.com für die HTML-Flexbox an, wenn als Statistik-Quelle Deutschland ausgewählt wird, einige weitere Webbrowser hinzugefügt werden und Versionen ab einem Marktanteil von 0,2% angezeigt werden:

(image)




Mit aptitude einzelne Pakete downgraden

2017-08-29T14:07:29Z

Wer Debian Testing oder Unstable auf seinem Rechner installiert hat, kann hin und wieder mit dem Problem konfrontiert werden, dass eine Anwendung nach einer Aktualisierung nicht mehr wie gewünscht funktioniert. Das Programm apt-listbugs kann vor einem Upgrade auf kritische Bugs hinweisen, falls es hierzu schon einen entsprechenden Bugreport gibt. Wenn man bereits eine defekte Version […]

Wer Debian Testing oder Unstable auf seinem Rechner installiert hat, kann hin und wieder mit dem Problem konfrontiert werden, dass eine Anwendung nach einer Aktualisierung nicht mehr wie gewünscht funktioniert. Das Programm apt-listbugs kann vor einem Upgrade auf kritische Bugs hinweisen, falls es hierzu schon einen entsprechenden Bugreport gibt. Wenn man bereits eine defekte Version installiert hat und es keinen Workaround für einen schwerwiegenden Fehler gibt, bleibt einem manchmal aber nur, das betreffende Programm wieder auf die alte funktionierende Version downzugraden.

Mit „aptitude versions“ kann man sich die verfügbaren Versionen anzeigen lassen, z.B. von einem fiktiven Paket xyz:


aptitude versions xyz

Ist die alte Version nicht mehr verfügbar, kann diese ggf. über snapshot.debian.org bezogen werden. Dort sucht man den letzten Snapshot, der die alte Version noch enthielt und fügt dann gemäß der Anleitung auf der Startseite in der sources.list einen temporären Eintrag hinzu, z.B. für den Snapshot vom 09.08.2017 16:31 Uhr für Debian Buster:


deb http://snapshot.debian.org/archive/debian/20170809T163146Z/ buster main

Nach einem „aptitude update“ sollte dann die alte Version zur Verfügung stehen, was sich wieder mit „aptitude versions“ überprüfen lässt. Das Paket kann man dann downgraden, indem man die dort aufgeführte Versionsbezeichnung mit einem Gleichheitszeichen an den Paketnamen anhängt, z.B. die Version „1:2.3.4-5“:


aptitude install xyz=1:2.3.4-5

Den Eintrag in der sources.list sollte man danach wieder entfernen. Damit das Paket beim nächsten Upgrade nicht wieder auf die defekte Version aktualisiert wird, setzt man es noch auf „hold“:


aptitude hold xyz

Natürlich verfolgt man noch den betreffenden Bugreport. Sobald der Fehler in einer neueren Version behoben ist und diese verfügbar ist, gibt man das Paket wieder für das Upgrade frei:


aptitude unhold xyz



Webseiten testen unter Linux

2017-06-12T05:17:13Z

Hat man als Linux-User eine Webseite erstellt und möchte, dass diese in den gängigen Webbrowsern wie gewünscht angezeigt wird, kommt man um das Testen nicht herum. Einige Browser lassen sich unter Linux installieren, andere, wie der Internet Explorer, Edge oder Safari hingegen nicht. Man muss allerdings nicht unbedingt mit jedem Browser testen. Einige Browser verwenden […]

Hat man als Linux-User eine Webseite erstellt und möchte, dass diese in den gängigen Webbrowsern wie gewünscht angezeigt wird, kommt man um das Testen nicht herum. Einige Browser lassen sich unter Linux installieren, andere, wie der Internet Explorer, Edge oder Safari hingegen nicht. Man muss allerdings nicht unbedingt mit jedem Browser testen. Einige Browser verwenden die gleiche Browser-Engine (welche für das Rendern der Webseite zuständig ist). So kann es ausreichen, in seine Test-Suite jeweils einen Vertreter der folgenden fünf Browser-Engines aufzunehmen, die den Browser-Markt weitgehend abdecken.

Gecko

Gecko ist die Browser-Engine von Mozilla Firefox (aka Iceweasel). Man kann aber auch andere Gecko-Browser zum Testen verwenden, wie z.B. SeaMonkey (aka Iceape).

Blink

Blink ist Googles Fork der Browser-Engine Webkit (s.u.). Außer von Google Chrome wird Blink auch von Opera (ab Version 15) sowie Vivaldi verwendet, alle auch unter Linux installierbar. Als OpenSource-Liebhaber nutzt man aber wohl lieber Chromium.

Webkit

Webkit basiert ursprünglich auf KHTML, der Browser-Engine des KDE-Browsers Konqueror und wurde von Apple für seinen Browser Safari entwickelt. Die Engine steckt auch in den älteren Android-Browsern. Unter Linux eignet sich Epiphany zum Testen – der Standard-Browser von Gnome ist schon vor neun Jahren von Gecko auf Webkit umgeschwenkt. Auch in Konqueror lässt sich schon seit einigen Jahren Webkit anstelle des Vorläufers KHTML nutzen. Darüber hinaus verwendet auch noch Midori Webkit, allerdings hat dieser Browser seit August 2015 kein Update mehr erhalten.

Trident / EdgeHTML

Microsofts Browser-Engines Trident und EdgeHTML sind die einzigen in dieser Übersicht, die nicht OpenSource sind, die Browser Internet Explorer und Edge laufen (nativ) nur noch unter Windows. Vor zehn Jahren war der Wine-basierte IEs4Linux ausreichend, um eine Webseite für den IE6 zu testen. Für neuere Versionen eignet sich Wine wohl nicht mehr so gut, wie die Bewertungen zeigen. Seit einigen Jahren bietet Microsoft zu Testzwecken Virtuelle Maschinen mit verschiedenen IE- und Edge-Versionen an, darunter auch als VirtualBox-Images, die in einer VirtualBox-Installation unter Linux lauffähig sind (ausreichende Rechnerkapazität vorausgesetzt). Die kostenlose Lizenz von 90 Tagen lässt sich nach einer Anleitung auf dem Desktop mehrfach verlängern, und wenn man zudem wie empfohlen einen Snapshot anlegt, kann man das Image über einen längeren Zeitraum nutzen. Ich empfehle für einfache Tests ein Image mit dem IE11. Ältere Versionen sind inzwischen obsolet und eine Webseite, die mit dem IE11 funktioniert, wird voraussichtlich auch mit dem Nachfolger Edge funktionieren.




Link mit CSS deaktivieren

2017-05-08T15:37:32Z

Manchmal kann es sinnvoll sein, einen Textabschnitt nur bei einer bestimmten Bildschirmbreite oder -höhe mit einem Link zu versehen. Wenn beispielsweise in der mobilen Ansicht ein Kontaktformular erst durch Scrollen sichtbar wird, kann man in einer Textbox im oberen, sichtbaren Bereich die Wörter „Kontakt aufnehmen“ in einen Link einbetten, der zu dieser Stelle springt. Manchmal kann es sinnvoll sein, einen Textabschnitt nur bei einer bestimmten Bildschirmbreite oder -höhe mit einem Link zu versehen. Wenn beispielsweise in der mobilen Ansicht ein Kontaktformular erst durch Scrollen sichtbar wird, kann man in einer Textbox im oberen, sichtbaren Bereich die Wörter „Kontakt aufnehmen“ in einen Link einbetten, der zu dieser Stelle springt.


Kontakt aufnehmen

In der Desktop-Ansicht befindet sich das Kontaktformular nun neben der Text-Box, so dass darin enthaltene Link keinen Sinn macht. Zur Abhilfe kann man ihn mit CSS formatieren, so dass er wie ein gewöhnlicher Textabschnitt ausschaut und der Mauscursor beim Drüberfahren sich nicht in eine Hand verwandelt. Hierzu versieht man den Link mit einer ID, z.B. skip-to-contact-form:


Kontakt aufnehmen

Bei einer Mindestbreite des Viewports von 1000px kann der Link dann beispielsweise folgendermaßen wegformatiert werden:


@media screen and (min-width: 1000px) {
    #skip-to-contact-form {
        cursor: default;
        text-decoration: none;
        color: #000;
    }
}

Allerdings ist er dann weiterhin klickbar. Wenn der Besucher den Textabschnitt mit der Maus markieren möchte, könnte er auf diese Weise den Sprung zum Kontaktformular auslösen, was für Irritationen sorgen könnte. Um den Link zu deaktivieren braucht es nicht zwangsläufig JavaScript, in CSS3 kann man hierzu auch die Eigenschaft pointer-events nutzen:


@media screen and (min-width: 1000px) {
    #skip-to-contact-form {
        pointer-events: none;
        cursor: default;
        text-decoration: none;
        color: #000;
    }
}

Abgesehen von Opera Mini, der vorwiegend bei der mobilen Ansicht zum Einsatz kommt, unterstützen alle aktuellen Browser-Versionen diese CSS-Eigenschaft (siehe caniuse).




Firefox soll keine neue Seite über mittlere Maustaste laden

2017-04-24T18:33:11Z

Es passiert selten, aber wenn es passiert, dann ist es extrem ärgerlich: ich schreibe gerade an einem Posting in einem Forum, und möchte (unter Linux) per mittlere Maustaste noch eine URL in das Posting kopieren. Da ich in Eile bin, klicke ich nicht in das Eingabefeld, sondern leicht daneben. Schwups, lädt Firefox die URL im […]

Es passiert selten, aber wenn es passiert, dann ist es extrem ärgerlich: ich schreibe gerade an einem Posting in einem Forum, und möchte (unter Linux) per mittlere Maustaste noch eine URL in das Posting kopieren. Da ich in Eile bin, klicke ich nicht in das Eingabefeld, sondern leicht daneben. Schwups, lädt Firefox die URL im selben Tab. Ein Betätigen der Backtaste lädt die vorhergehende Seite neu, mit leerem Textarea. Den Text darf ich nun nochmal von vorne schreiben.

Zum Glück ist dieses Verhalten konfigurierbar. Um das Laden der gepasteten URL zu deaktivieren, kann man in about:config den Wert für middlemouse.contentLoadURL auf false setzen. Alternativ kann man folgende Zeile in die Datei user schreiben:


user_pref("middlemouse.contentLoadURL", false);

Die Datei befindet sich unterhalb des Profilverzeichnisses, unter Linux also ~/.mozilla/firefox/.default/user

Wenn ich möchte, dass Firefox eine URL aus der Zwischenablage direkt lädt, dann öffne ich mit Strg + T einen neuen Tab und klicke mit der mittleren Maustaste in die Adressleiste. Von daher kann ich auf diese Funktion gut verzichten.




Nervige Benachrichtigungen in Filezilla abstellen

2017-04-04T22:10:34Z

Vor einiger Zeit war es noch so, dass Filezilla nach einem abgeschlossen Up- oder Download unterhalb des System Trays von Xfce eine Benachrichtigung „Übertragungen abgeschlossen“ anzeigte, wenn ich zwischenzeitlich das Fenster oder den Workspace gewechselt hatte. Ich empfand dieses Vorgehen eigentlich als ganz nützlich, bis Filezilla irgendwann sein Verhalten änderte und mich über den fertigen […]

Vor einiger Zeit war es noch so, dass Filezilla nach einem abgeschlossen Up- oder Download unterhalb des System Trays von Xfce eine Benachrichtigung „Übertragungen abgeschlossen“ anzeigte, wenn ich zwischenzeitlich das Fenster oder den Workspace gewechselt hatte. Ich empfand dieses Vorgehen eigentlich als ganz nützlich, bis Filezilla irgendwann sein Verhalten änderte und mich über den fertigen Download auch dann benachrichtigte, wenn das Fenster des FTP-Clients sich noch im Vordergrund befand – und mit der Zeit fingen diese Benachrichtigungen an zu nerven.

Jetzt habe ich mich mal auf die Suche gemacht, wo man dieses Verhalten vielleicht konfigurieren könnte. In den Einstellungen bin ich leider nicht fündig geworden. Im Filezilla-Forum bin ich dann auf diesen Thread gestoßen. Musste man Anfangs noch die Konfigurationsdatei filezilla.xml bearbeiten, um die Notifications abzustellen, so kann man jetzt über einen rechten Mausklick in die Warteschlange die „Aktion nach dem Abarbeiten der Warteschlange“ konfigurieren und hierbei die Option „Benachrichtigungsblase anzeigen“ deaktivieren (durch Auswählen der Option „Keiner“). Die Einstellung bleibt auch nach dem Schließen von Filezilla erhalten. Der Grund, dass diese Option nicht in den allgemeinen Einstellungen, sondern in der etwas versteckten Warteschlangen-Konfiguration untergebracht ist, ist vermutlich, dass man die Benachrichtungs-Funktion dort für längere Downloads „mal eben schnell“ wieder aktivieren kann?




gc_maxlifetime in .htaccess Datei anpassen

2017-03-16T19:39:10Z

Möchte man den Session-Timeout in PHP nur für eine Domain oder ein einzelnes Verzeichnis erhöhen, kann man hierzu den Wert für den php.ini Parameter session.gc_maxlifetime entsprechend anpassen. Läuft PHP als Modul des Apachen (mod_php), so geht dies nicht über eine php.ini Datei im jeweiligen Verzeichnis. Stattdessen könnte man den Wert aber in der .htaccess Datei […]

Möchte man den Session-Timeout in PHP nur für eine Domain oder ein einzelnes Verzeichnis erhöhen, kann man hierzu den Wert für den php.ini Parameter session.gc_maxlifetime entsprechend anpassen. Läuft PHP als Modul des Apachen (mod_php), so geht dies nicht über eine php.ini Datei im jeweiligen Verzeichnis. Stattdessen könnte man den Wert aber in der .htaccess Datei des betreffenden Verzeichnisses definieren:



    php_value session.gc_maxlifetime 3600

Unter Debian hat dies allerdings keinen Effekt, da dort der Garbage Collector von PHP deaktiviert ist, indem der Wert für session.gc_probability in der php.ini auf 0 gesetzt wurde. Stattdessen räumt ein Cronjob die Session-Dateien ab und dieser kümmert sich nicht darum, was in einzelnen .htaccess Dateien steht. Man könnte nun für das genannte Verzeichnis die Garbage Collection von PHP wieder aktivieren und hierzu ein eigenes Session-Verzeichnis definieren:



    php_value session.gc_maxlifetime 3600
    php_value session.gc_probability 1
    php_value session.gc_divisor 100
    # session path must be outside of document root
    php_value session.save_path /path/to/sessions

Der PHP-Prozess (im Fall von php_mod unter Debian: www-data) muss für das angegebene Session-Verzeichnis Lese- und Schreibrechte haben.

Aber Achtung: die Session-Dateien müssen gut vor unbefugten Zugriffen gesichert werden! Das Session-Verzeichnis sollte deswegen von außen nicht erreichbar, also außerhalb des DocumentRoot gelegen sein!




Duplicate Content auf example.com und example.com/ (?)

2017-02-16T21:20:11Z

In meinem Webmaster-Forum habe ich erfahren, dass es SEO-Tools gibt, welche ein Duplicate-Content-Problem erkennen, wenn unter http://example.com und http://example.com/ derselbe Inhalt angezeigt wird. Das ist allerdings Unsinn. Enthält eine URL einen leeren Pfad, so wird dieser gewöhnlicherweise bereits vom Client (Firefox, wget etc.) durch einen Slash ersetzt. Es ist also nicht anderes zu erwarten, als […]

In meinem Webmaster-Forum habe ich erfahren, dass es SEO-Tools gibt, welche ein Duplicate-Content-Problem erkennen, wenn unter http://example.com und http://example.com/ derselbe Inhalt angezeigt wird. Das ist allerdings Unsinn. Enthält eine URL einen leeren Pfad, so wird dieser gewöhnlicherweise bereits vom Client (Firefox, wget etc.) durch einen Slash ersetzt. Es ist also nicht anderes zu erwarten, als dass dann vom Webserver auch derselbe Inhalt zurückgesendet wird; eine Weiterleitung von der ersten zur zweiten Variante zur Vermeidung von Duplicate Content wäre zudem gar nicht möglich, worauf übrigens auch im Artikel To slash or not to slash im Google Webmaster Central Blog auf amüsante Weise hingewiesen wird:

Rest assured that for your root URL specifically, http://example.com is equivalent to http://example.com/ and can’t be redirected even if you’re Chuck Norris.

Es handelt sich also um zwei äquivalente Varianten einer URL; im Gegensatz zu http://example.com/foo und http://example.com/foo/, deren Pfad sich einmal auf eine Datei foo und einmal auf ein Verzeichnis foo bezieht, verweisen sowohl http://example.com als auch http://example.com/ beide auf das DocumentRoot-Verzeichnis.




LEO mit neuen, statischen Such-URLs

2017-04-24T18:16:03Z

Zum schnellen Übersetzen von englischen Begriffen hatte ich in Firefox LEO als Suchmaschine eingerichtet. Wie ich heute bemerken musste, führen die Anfragen inzwischen auf eine 404-Seite: Error 404 – Not found Not found: The server has not found anything matching the Request-URI. Der Grund hierfür ist, dass LEO die alten Such-URLs nach dem Muster dict.leo.org/dictQuery/m-vocab/ende/de.html?searchLoc=0&lp=ende&lang=de&directN=0&search=suchbegriff&resultOrder=basic&multiwordShowSingle=on […]

Zum schnellen Übersetzen von englischen Begriffen hatte ich in Firefox LEO als Suchmaschine eingerichtet. Wie ich heute bemerken musste, führen die Anfragen inzwischen auf eine 404-Seite:

Error 404 – Not found

Not found: The server has not found anything matching the Request-URI.

Der Grund hierfür ist, dass LEO die alten Such-URLs nach dem Muster dict.leo.org/dictQuery/m-vocab/ende/de.html?searchLoc=0&lp=ende&lang=de&directN=0&search=suchbegriff&resultOrder=basic&multiwordShowSingle=on auf statische URLs nach dem Muster dict.leo.org/englisch-deutsch/suchbegriff umgestellt hat.

Mit einer einfachen Anpassung in der Lesezeichenverwaltung konnte ich die Funktionalität wiederherstellen. In dem Adressfeld muss hierzu folgende URL eingetragen werden:


http://dict.leo.org/englisch-deutsch/%s

In das %s fügt Firefox dann den Suchbegriff ein. Allerdings löscht der Browser nach Änderung des Lesezeichens dessen Schlüsselwort, über welchen ich dieses schnell aufrufen kann. Nachdem ich in dem Eingabefeld für das Schlüsselwort erneut ein „l“ eingegeben habe, erhalte ich durch ein Strg + T sowie Eingabe von „l suchbegriff“ in das Addressfeld wieder schnell die betreffende Übersetzungsseite von LEO in einem neuen Tab.




Änderungen an 301-Weiterleitungen nicht wirksam?

2017-04-24T18:16:53Z

Ein Problem, das in meinem Forum immer wieder mal angesprochen wird, ist, dass Änderungen an Redirects in der .htaccess Datei scheinbar nicht greifen. Also z.B. das Entfernen solch einer Redirect-Direktive: Redirect permanent /foo http://example.com/bar … oder beispielsweise die Änderung solch einer mod_rewrite Rule: RewriteRule ^/?foo$ http://example.com/bar [R=301,L] Das Schlüsselwort permanent bzw. das Flag R=301 sorgen […]

Ein Problem, das in meinem Forum immer wieder mal angesprochen wird, ist, dass Änderungen an Redirects in der .htaccess Datei scheinbar nicht greifen. Also z.B. das Entfernen solch einer Redirect-Direktive:


Redirect permanent /foo http://example.com/bar

… oder beispielsweise die Änderung solch einer mod_rewrite Rule:


RewriteRule ^/?foo$ http://example.com/bar [R=301,L]

Das Schlüsselwort permanent bzw. das Flag R=301 sorgen hier dafür, dass der Redirect mit einem Status Code 301 erfolgt, welcher anzeigt, dass der Inhalt dauerhaft zu der neuen URL umgezogen wurde. Aus diesem Grund cachen Browser wie Firefox und Chrome das Weiterleitungsziel. Wird die Weiterleitung in der .htaccess Datei entfernt oder geändert, bekommt der Browser davon nichts mit, da er direkt die gespeicherte Ziel-URL abruft. Deswegen sollte man den Browser-Cache beim Testen von 301-Redirects deaktivieren oder zwischenzeitlich leeren. In Firefox lässt sich der Cache sehr einfach deaktivieren über die Webdeveloper Toolbar (Deaktivieren -> Cache deaktivieren) oder über Firebug (im Dropdown vom Tab Netzwerk „Browser-Cache deaktivieren“ auswählen).