Javascript ist Toll!

8. Juni 2016 - 09:36

Firefox Update 44: Mozilla geht eure Sicherheitseinstellung am Arsch vorbei!

Ich bin nun zu Pale Moon gewechselt und möchte schildern warum:

Remove "Ask me everytime" cookies option

Ich nutze Firefox, bzw. dessen Vorgänger Mozilla seit 1998. Lediglich einige Netscape Versionen (ab ca. 4.7) waren nicht nutzbar. Als Mozilla Firefox 0.8 veröffentlichte war für mich sofort klar, dass ich keinen anderen mehr Browser brauche.

Das blieb bisher so, auch wenn ich die eine oder andere Änderung nicht gut fand. Meist liessen sich die Änderungen durch ein AddOn wieder Rückgängig machen. Doch in der Version 45 gab es eine unglaubliche Änderung, die sicherheitsbewusste Nutzer ignoriert.

Es handelt sich um eine Einstellung in der Rubrik "Datenschutz. Dort konnte man wenn die Option, dass eine Chronik "nach benutzerdefinierten Einstellungen" angelegt wird, dann auswählen das bei jedem setzen eines Cookies ein Abfragefenster erscheint (Auf englisch hiess diese Option "ask me everytime").

ask_cookie

Diese Auswahloption wurde entfernt und so geändert, dass alle Cookies erlaubt werden, was das gegenteil von dem ist, was der Nutzer in dem Fall gewünscht hat. Darüber hinaus wurde die oft über Jahre gepflegte Black- und Whitelist welche Domains cookies setzen dürfen und welche nicht, mir nichts dir nichts gelöscht!!!!

Bye, Bye Mozilla!

Du hast also seit Jahren auf allen Seiten, die Cookies setzen, eine Auswahl getroffen und diese Liste gepflegt. Das ist Arbeit die ICH investiert habe da mir daran liegt die Kontrolle zu behalten soweit es die Technik zuläßt. Und was macht Mozilla? Denen angeblich soviel an Sicherheit liegt? sie scheissen auf diese Arbeit und meinen Einstellungen!

Mozilla hat ein Problem

Mozilla hat ein Problem.
Seit einiger Zeit sinken die Nutzerzahlen rapide und sie denken sie müssten der Konkurrenz Chrome nacheifern. Mittlerweile sind die Nutzerzahlen zum Teil unter denen vom IE gesunken. Aber es gibt bei Mozilla offensichtlich Menschen, die die Auffassung vertreten, je mehr sich der eigene Browser an die Konkurrenz anpasst, um so erfolgreicher wäre es.

Das durch diese Veränderungen in erster Linie immer wieder die Leute verärgert werden und wurden, die für die Verbreitung von Firefox massgeblich verantwortlich sind, scheint denen nicht bewußt zu sein.

Früher war es so, dass fast jeder der Firefox auf einem Windowsrechner installiert hatte, dies getan hat, weil der Computerexperte aus dem Bekanntenkreis dies empfohlen hat. So habe auch ich mindestens 5-6 Leuten den Firefox nahegebracht, die ihn dann auch über Jahre genutzt haben. Auch bei denen die nicht aufgrund meiner Empfehlung Firefox als Hauptbrowser auf ihrem System hatten waren solche "Experten" der Grund dafür.

Aber ausgerechnet diesen Multiplikatoren wurden immer wieder vor den Kopf gestossen. Seien es Kleinigkeiten, wie z.b. das deaktivieren der ESC Taste um nervige animierte GIF Bildchen zu stoppen (Lösung: AddOn SuperStop) oder aber auch das die jahrelange gewöhnte Anordnung der Oberfläche massiv geändert wurde. Das hat dazu geführt, dass kaum noch jemand Firefox empfiehlt. Stattdessen sehe ich auf immer mehr Rechnern Chrome als Hauptbrowser. Den empfinden viele als leichter und aufgeräumter.

Firefox schaufelt sich sein eigenes Grab

Das heisst, der normale Nutzer tendiert zu Chrome was sich kaum verhindern läßt, da google hier viel tut, damit das so ist und durch Android auch innerhalb des Betriebsystem immer mehr Einfluss gewonnen hat. Doch für "Poweruser" die gerne möglichst viel Kontrolle über ihr System haben, war Firefox nach wie vor der bessere Browser. Das hält aber Mozilla nicht davon ab, diese immer zu vergraueln und ich halte die letzte Änderung in diese Richtung für den Gipfel des Eisbergs und habe den Browser gewechselt.

Wenn man sich den dazu gehörige Thread sin den Bugreport anschaut kann man sich nur wundern ob denen wirklich nicht bewußt ist, wie ihr Browser benutzt wird und was die Leute wollen. Im Bugzilla report der Schuld an dem entfernen der Option ist, steht folgendes:

-It exposes far too much detail about the underlying implementation of the Web

-It forces the user to make a ridiculous number of decisions before visiting a Web site.  
For instance, amazon.com produces 8 dialog boxes, and ebay.com 15.

-Even informed users will not always have enough information to make an informed choice.

Das sind Gründe, wo man am Sachverstand des Zuständigen zweifelt.
Die Leute die die diese sehr versteckte(!) Option nutzen, kennen diese Details und Wissen - und vor allem Wollen - mit diesen Uannehmlichkeiten umgehen. Das mache ich seit Jahren und Seiten die nerven, werden eben nicht mehr besucht.

Das heißt es gibt Leute bei Mozilla die genau entgegengesetzte Vorstellung über eine Funktion haben wie sie benutzt wird. Und dann wird halt der Sicherheitswunsch vieler Nutzer einfach mal umgedreht!

Da es kein AddOn gibt, das das gleiche macht, hatte ich zuerst eine alte ESR Version installiert. Auf https://www.mozilla.org/en-US/firefox/organizations/all/ läßt sich noch die Version 38 runterladen. (Stand: 6.5.2016). Aber mittlerweile habe ich eine Alternative gefunden und werde diese in Zukunft anpreisen.

Good Bye Firefox, Hello Pale Moon

Mittlerweile bin ich zu Pale Moon gewechselt und begeistert. Dieser Browser hat alles das was Firefox ausgebaut hat.

Weitere Informationen

Passend dazu kann man sich mal die Entwicklung der Nutzer ansehen, mittlerweile steht Firefox bei 5% und ist damit wieder hinter dem IE zurück gefallen. https://www.netmarketshare.com/browser-market-share.aspx?qprid=2&qpcustomd=0

Kategorie: Browser, Meinung / Comments (0) /
31. Dezember 2014 - 13:12

[Perl] CGI::param im Listkontext

Da ein angeblicher Perl Bug sogar beim 31C3 für "Erheiterung" gesorgt hat muss ich als Laie und langjähriger Perlnutzer hier mal meinen Senf dazu abgeben.

Das ist kein Perl Bug! Oder ein 20 year old vulernability.

Als ich versuchte diesen Fehler nachzuvollziehen fand ich es unverständlich, dass es professionelle Programmierer gibt, die diese Funktion so einsetzen, dass sie zu einer Lücke wird.

Denn im Grunde stimmt die Aussage, wenn die Methode CGI::param() in einem unbekannten Kontext benutzt wird, dann wird diese eine Liste zurück geben und dank der Flexibilität von Perl - die jedem Perlprogrammierer bekannt ist - diese auch zu einem Hash erweitert werden kann. Das führte dazu das in Bugzilla ein schwerwiegende Sicherheitslücke gefunden wurde. Das ist tatsächlich eine krasse Lücke, da sie zwei schwerwiegende Programmierfehler der Bugzilla Entwickler offenbart.

Diese beiden grundsätzlichen Paradigmen hätten diesen Bug verhindert.

Ich vermeide diesen Fehler in dem ich überhaupt keinen undefinierten Parameter zulasse. Mein Code würde so aussehen und tut es auch überall, wo ich CGI Parameter direkt an eine HASH Element übergebe:

perl
my $otheruser = Bugzilla::User->create({
    login_name => $login_name, 
    realname   => $cgi->param('realname') || '', 
    cryptpassword => $password});

Dadurch wird verhindert das Perl sich beschwert (mit aktivierten Warnungen) wenn kein CGI Parameter realname existiert. Konkreter:

perl
#!/usr/bin/perl
use strict;
use warnings;
use Data::Dumper;
use CGI;
use CGI::Carp qw(fatalsToBrowser warningsToBrowser);
warningsToBrowser(1);
BEGIN {
    print "content-type:text/plain\n\n";
}
my $cgi = CGI->new;
my $otheruser = {
    login_name => 'test', 
    realname   => $cgi->param('realname'), 
    cryptpassword => 'test'};
 
print Dumper $otheruser;

Wenn dieses Skript aufgerufen wird erscheint eine Warnung:

 warning: Odd number of elements in anonymous hash at /home/struppi/projekte/perl/test.pl line 15. 

In meiner Variante wird die Warnung verhindert. Selbst wenn dieses Skript mit mehreren Parametern realname aufgerufen wird, wird immer dadurch nur der erste Wert übernommen und sonst passiert nichts. Daher halte ich den hämischen Tonfall in diesen Vortrag für unangemessen, da dies also ein Fehler der Programmierer ist und nicht der von Perl.

Die weiteren Kritikpunkte in dem Vortrag verstehe ich nicht. Für mich ist die Art der Auflösung der Listen völlig normal. Wenn jemand nicht mit Perl vertraut ist mag das anders sein. Aber ich erwarte es so, wie es auf den Folien des Vortrag als ironisch als "reality" bezeichnet wird und nicht wie der Autor es erwartet.

Kategorie: Internet / Comments (0) /
24. März 2014 - 19:02

Gimp 2.8 Photoshop Tweaks

Bei meinem Umstieg von WindowsXP auf Linux war eine grosse Hürde ein passendes Grafikprogramm zu findenNicht weil ich soviel davon brauche, eher im gegenteil. Unter Windows nuzte ich zuletzt PaintShop Pro 6. Ein uraltes Programm aus der Jahrtausendwende.

Aber es konnte alles das, was ich brauche. Fotos verkleinern, komprimieren und konvertieren von Grafiken. Und das sehr schnell und einfach. für einen Webbastler wie mich reicht das, da ich nie irgendwelche schicken Glossy Elemente zaubern könnte. Selbst einfache Farbverläufen sehen bei mir nicht gut aus und wenn ich dann noch erzähle, dass ich mal wegen Kunst sitzen geblieben bin, ist klar warum ich kein tolles Grafikprogramm brauche :).

Lange Rede, kurzer Sinn: Durch den Umstieg auf Linux musste ich mich an Gimp gewöhnen und tat mich schwer mit den vielen schwebenden Fenstern. Nun hat endlich mal jemand sich hingesetzt und die Oberfläche so umgebaut, dass sie Photoshop ähneln soll (habe ich noch nie benutzt), was den Umgang mit Gimp für mich deutlich verbessert.

Laut Autor funktioniert das mit MacOS und Windows, ich habe es mit meinem Debian 7 getestet.


Screenshot von Gimp mit der Erweiterung Gimp 2.8 Photoshop Tweaks

Download

Gimp 2.8 Photoshop Tweaks

Kategorie: linux / Comments (0) /
3. Februar 2014 - 18:44

WordPress verbindet sich ungefragt mit google.com

Ich teste gerade lokal eine neuere Version (3.8.1) von WordPress und als ich in das Netzwerkpanel schaue, sehe ich das WordPress sich bei jedem Aufruf mit fonts.googleais.com verbindet. Egal ob im Backend oder auf der Seite. Selbst wenn ich ein komplett leeres Theme benutze, wird diese Seite aufgerufen. Ich weiß zwar nicht welchen Zweck das erfüllt, ich will das nicht und brauche es auch nicht!

Daher musste ich erstmal eine längere Suche starten, um den Hook zu finden, mit dem ich das einbinden abschalten kann.

Open Sans entfernen

Der folgende Code entfernt den Aufruf. Er muss in die functions.php des Theme.

php
//dispable google fonts open sans
add_action( 'wp_enqueue_scripts', 'remove_open_sans', 11 );
add_action( 'admin_enqueue_scripts', 'remove_open_sans' );
function remove_open_sans() {
	wp_deregister_style( 'open-sans' );
        wp_register_style( 'open-sans', false );
}
Kategorie: Wordpress / Comments (3) /
27. Mai 2013 - 17:52

LED Chareditor (2)

LED Scroller Chareditor (2)

Dieses Skript dient zum bearbeiten der Zeichen des LED Scrollers. Es erzeugt den Code, der für die Darstellung der Zeichen notwendig ist, um diese im LED Scroller benutzen zu können. Dies ist die erweiterte Version, die den erweiterten Zeichensatz benutzt, den ich in dem Artikel vorgestellt habe.

[... weiterlesen]
Kategorie: Javascript / Comments (0) /
6. Februar 2013 - 14:08

Javascript LED Scroller

Letztens gab es in den Kommentaren des älteren Artikels LED Laufschrift eine längere, anregende Diskussion mit einem Besucher Namens 'Jarbas'. Neben einigen Vorschlägen zur Verbesserung der technischen Umsetzung, äußerte er auch den Wunsch einen kompletten Zeichensatz in dem LED Panel darstellen zu können. Da ich keine gosse Lust hatte an dem Skript viel zu machen, verwies ich nur darauf wie das umgesetzt ist und dass ich eben keine Lust habe komplett alle Zeichen in eine Bitmap zu konvertieren. Auch wenn es mit dem LED Chareditor im Prinzip relativ einfach ginge.

Daraufhin erstellte der Besucher nahezu den kompletten Bitmap Zeichensatz, mit den gängigen Sonderzeichen und präsentierte ihn auf einer jsbin Seite. Da konnte ich nicht untätig bleiben. Merkte aber schnell, dass das die Änderungen einen etwas größeren Umbau des Skripts bedeuteten. Daher jetzt ein neuer Artikel zum überarbeiteten LED Scroller Skript, das es nun ermöglicht (fast) alle Zeichen darzustellen.

[... weiterlesen]
Kategorie: Javascript, Skripte / Comments (20) /
30. Oktober 2012 - 18:22

Firefox Screenshots

Mit dem neuen Firefox 16 lassen sich nun Screenshots von Internetseiten anfertigen, ohne das dafür ein AddOn nötig wäre. Egal ob die komplette Seite oder auch nur Teilbereiche davon. Dieses neue, sehr nützliche Werkzeug versteckt sich in der Entwicklerkonsole.

Geöffnet wird diese Konsole entweder über das Menü Extras > Web-Entwickler > Entwickler Symbolleiste oder mittels Shortcut ([Umsch]+[F2]). Daraufhin öffnet sich eine Eingabekonsole am unteren Fensterrand.

Wenn dort help eingegeben wird werden alle Befehle aufgelistet, die die Konsole momentan beherrscht. Ich möchte hier an dieser Stelle nur auf den Befehl screenshot eingehen.

Durch die Eingabe von:

screenshot test

wird der sichtbare Teil der aktuellen Seite unter dem Namen test.png im aktuellen Download Verzeichnis gespeichert. Das Standardformat für Schnappschüsse ist das png Format.

Wenn die komplette Seite gespeichert werden soll, müssen noch zwei weitere Parameter übergeben werden:

screenshot jstruebig.de --fullpage

Weitere Optionen können mit help screenshot angezeigt werden:

konsole_help_screenshot
Die Hilfeseite des Befehls screenshot

Kategorie: Browser / Comments (0) /
27. Oktober 2012 - 20:54

Tween Beispiele

Das Tween Objekt

Ich vertiefe hier noch einmal die Verwendung meines Tween Objektes. Hier zeigt sich, wie einfach und effektiv es sich nutzen lässt. Der Code um eine Animations zu erzeugen ist sehr kurz und wie ich finde auch übersichtlich.

Auf der Seite ist ein Animationsobjekt, das mit zwei Animation erzeugt wurde. Mit Hilfe eines Formulares können einige Parameter verändert und diese Animationen in unterschieldichster Weise gestartet werden.

Beispielcode

[... weiterlesen]
Kategorie: Javascript, Skripte / Comments (0) /
22. Juni 2012 - 11:13

Tween(2)

Die Technik um mit Javascript eine Bewegung zu animieren hatte ich in einem älteren Artikel bereits beschrieben und kündigte dort eine Fortsetzung an. Doch das Skript, was ich dort verwendet habe, hat sich im Umgang als etwas sperrig erwiesen, daher habe ich es nun komplett neu geschrieben.

Die neue Tween-Klasse kann nun deutlich mehr.
Mit ihr ist es möglich mehrere Elemente gleichzeitig oder auch mehrere Animationen parallel oder hintereinader zu benutzen. Der Animationsablauf läßt sich mit Events steuern. Dazu habe ich in das Skript eine kleine Event Klasse integriert.

Und das Tween Objekt läßt sich auch als Basisklasse für eigene Tweenobjekte benutzen. Es ist aber nicht auf Geschwindigkeit optimiert, trotzdem ist die Animationsgeschwindigkeit (gefühlt) ganz passabel.

[12.10.2012] Das Skript wurde mittlerweile mehrfach überarbeitet und ist dadurch was Funktionalität und Geschwindigkeit angeht deutlich besser geworden.

[... weiterlesen]
Kategorie: Javascript, Skripte / Comments (0) /
15. Juni 2012 - 17:35

WordPress und Javascript

In der letzten Zeit durfte ich mich etwas intensiver mit WordPress beschäftigen und bin dabei einer Lösung eines alten Problems auf die Spur gekommen.

Seit anbeginn hat mich WordPress hier im Blog genervt, weil es Javascript Code der innerhalb von Artikeltext eingebaut ist, mit internen Funktionen vor der Ausgabe so verändert, dass er nicht mehr lauffähig ist. Ich hatte schon 2008 darüber gebloggt und konnte zwischenzeitlich zumindest den Aufwand bei Updates deutlich verringern

Das Problem war, dass eine Funktion mit den Namen convert_chars() doppelte && Zeichen umwandelt. Da diese in JS das logische-Und sind funktioniert Javascript Code nicht mehr. Denn diese Funktion wird auf jeden Artikel Text angewandt. So wurde bei in Artikel eingebetteten Javascript Quellcode aus && immer && und folglich für den Browser fehlerhaft. Bisher habe ich bei jedem update die Funktion im Code von WordPress geändert. Was lästig ist.

Dabei wäre das Problem einfach zu lösen gewesen nur ich wußte bisher nicht wie. Im Template Verzeichnis kann in der Datei functions.php Einfluss auf das Verhalten von WordPress ausgeübt werden. Unter anderem können bestimmte Events verhindern werden. Um zu verhindern, dass z.b. die oben gennante Funktion aufgerufen wird, muss lediglich folgende Zeile in die Datei eingefügt werden:

php
remove_action('the_content', 'convert_chars');

Und auch das Plugin Text Control, das ich bisher benutzt habe, läßt sich komplett einsparen, mit den folgenden drei Zeilen:

php
remove_action('the_content', 'convert_chars'); 
remove_action('the_content', 'wptexturize'); 
remove_action('the_content', 'wpautop');

Schon kann problemlos auch JS Code in die Artikel eingefügt werden.

Kategorie: Wordpress / Comments (2) /
rats-wonderful
rats-wonderful
rats-wonderful
rats-wonderful