Google und die leidige WLAN-Affaere

19. Juni 2010

Also ich habe mich bisher ja aus der Affaere rund um das Datenschutzdillema in Verbindung mit Google Street View herausgehalten, aber jetzt muss ich mich doch mal einmischen und eine Lanze für Google brechen. Wie bekannt hat Google beim Aufzeichnen der Bilder fuer ihr Street-View-Projekt auch Standorte von WLAN-Stationen aufgezeichnet um seinen Nutzern auch ohne GPS eine ungefaehre Standortbestimmung zu ermoeglichen. Das ist ja jetzt ein alter Hut. Dass sie dabei, ob versehentlich oder nicht, auch WLAN-Daten aufgezeichnet und gespeichert haben, ist auch nichts neues. Auch dass sich Google fuer alles oeffentlich entschuldigt und die Aufzeichnungen eingestellt hat, sollte bekannt sein. So weit so gut. Nur darf Google die Daten nicht loeschen, weil verschiedene Datenschuetzer und Regierungen, die sonst uebrigens meist fuer Loeschen sind, die Daten einsehen wollen. Und was ist das Ergebnis? – Google hat auch Passwoerter und eMail-Inhalte gespeichert. Wirklich, echt, ganz ehrlich! Das gibt es hier nachzulesen.

Das ist ja der Hammer! Irre. Muss man sich erst mal auf der Zunge zergehen lassen … Google, du bist so boese! Damit hat ja keiner rechnen koennen, also wirklich nicht. Auch Passwoerter. Ihr fiesen … mir fehlen die Worte! [/Ironie]

Und dafuer hat es jetzt Experten gebraucht, die das auswerten? Ich weiss gar nicht ob ich lachen oder weinen soll. Wer so, entschuldigt aber anders kann man es nicht sagen, _dumm_ ist und sich ueber ein ungesichertes(!!!) WLAN einwaehlt und dann auch noch Dienste benutzt, die Passwoerter im Klartext(!!!) versenden einsetzt, der braucht sich nicht beschweren dass ihn jemand abhoert. Kinder, was soll der Scheiss? Wenn ihr keine Ahnung von Technik habt, dann lasst die Finger davon oder informiert euch vorher. Und jammert hinterher nicht permanent rum, dass ihr dies oder jenes nicht gewusst habt und wie boese doch die anderen sind. Ich kann es nicht mehr hoeren!

WordPress-Plugin: jQuery Comment Preview

23. Mai 2010

Weil ich keine Lust habe mich drueben bei WordPress zu registieren, sag ich es schnell so. Seit ein paar Minuten ist bei mir das Plugin jQuery Comment Preview im Einsatz. Das Teil ist schlicht, einfach und genial.

Vielen Dank fuer die Entwicklung, Dimox.

Ubuntu 10.04 vs. Chromium – Der Kampf um die Titelleiste – Teil 2

22. Mai 2010

Neulich hatte ich darueber berichtet, dass Chromium in Ubuntu die Fensterbuttons rechts hatte – auch unter dem neuen Ubuntu bzw. Mac OS X obwohl diese in beiden Betriebsystemen links vorgesehen sind. Inzwischen hat sich da aber etwas getan und das Ergebnis kann sich sehen lassen.

ubuntu-chrome-titelbar-leftside

Von mir ein herzliches Dankeschoen an die Entwickler. Ich bin sehr zufrieden mit meinem Chromium Browser!

Facebook-App-Blocker als Chrome Erweiterung veroeffentlicht

21. Mai 2010

facebook-application-blocker-logo-small Nachdem ich neulich ein Skript veroeffentlicht habe, mittels diesem man die Anwendungenspostings in Facebook ausblenden lassen kann, habe ich dieses etwas ausgeweitet und als Erweiterung/Extension fuer Googles Browser Chrome veroeffentlicht. Dieses kann direkt bei Google heruntergeladen werden.
main_menu
Die neusten Funktionen sind eine grafische Oberflaeche, die direkt in die Facebook-Seite integriert ist sowie einige Einstellmoeglichkeiten. Dazu gehoert unter anderem eine Whitelist, mittels der geregelt werden kann welche benutzerdefinierten Anwendungen nicht geblockt werden sollen, sowie das farbige Hervorheben von Applikationspostings um diese sofort als solche zu erkennen. Mehr dazu findet ihr auf der eigens zu der Extension verfassten Seite auf meinem Blog (englischsprachig), oder direkt bei Google in der Extension-Gallery.

Facebook – Laestige Applikationen aussperren mit Chromium

13. Mai 2010

Vor einigen Tagen hatte ich bereits darueber berichtet, dass mir bei Facebook die Anwendungen ungeheuer auf die Nerven gehen, die sich ungefragt in den eigenen Neuigkeiten einmisten. Jede Anwendung muss einzeln blockiert werden um diese fuer die Zukunft zu ignoieren. Facebook scheint daran auch nichts aendern zu wollen.

Nun bin ich vor kurzem ueber eine Erweiterung fuer Chromium/Google Chrome gestossen, die sich Personalized Web nennt. Diese Applikation erlaubt es den Quelltext von Webseiten in Chromium zu veraendern. Sie bietet auch die Eigenschaften eigenen Code auszufuehren. Perfekt dachte ich mir und machte mich an die Arbeit mir etwas zu ueberlegen um mich der laestigen Facebook Anwendungen zu entledigen.

Die Theorie

Schaut man in den Facebook-Quelltext und analysiert diesen, stellt man fest, dass alle Eintraege die auf der Pinnwand (egal ob die eigene oder bei anderen) gemacht werden das Div-Elternelement mit der ID profile_minifeed besitzen, d.h. direkte Kind-Elemente davon sind. Weiterhin macht es uns Facebook gluecklicherweise einfach die "boesen" Eintraege, welche ueber Applikationen gemacht wurden, von den "guten", naemlich den normalen Eintraegen, zu unterscheiden. Facebook verwendet ein Attribut namens data-ft in dem, sofern der Eintrag von einer Applikation stammt, ein app_id vorkommt. Ein Beispiel eines solchen Elements koennte so aussehen:

HTML:
  1. <div id="div_story_499681885_101495166563750" data-ft="{"src":"9","sty":"63","actrs":"1152153362","fbid":"121006254577135","s_obj":"9","s_edge":"1","s_prnt":"9","app_id":"65496494327"}">(...)</div>

Das Tolle daran ist, dass nur die von Applikationen erstellten Eintraege den app_id-String aufweisen. Die Idee ist nun mittels einem Script, welches clientseitig ausgefuehrt wird, also via JavaScript, die Kinder zu loeschen auf die dieses Kriterium zutrifft und damit die nervigen Eintraege zu verstecken.

Die Praxis

In der Praxis braucht es erstmal die Moeglichkeit beim Laden der Facebook-Seite ein Skript auszufuehren, welches die oben genannte Aufgabe uebernimmt. Dazu verwende ich die oben vorgestellte Erweiterung fuer Chromium, mittels der es moeglich ist den Quellcode von Webseiten on-the-fly zu manipulieren. Mittels diesem schiebe ich Facebook das folgende Script unter:

JavaScript:
  1. function removeAppEntries() {
  2.  feed = document.getElementById("profile_minifeed");
  3.  if (feed === null) {
  4.   feed = document.getElementById("home_stream");
  5.  }
  6.  if (feed === null) return;
  7.  
  8.  childs = feed.childNodes;
  9.  for (i=0; i<childs.length; i++) {
  10.   node = childs.item(i).getAttributeNode("data-ft");
  11.   if (node !== null) {
  12.    var re = new RegExp("app_id");
  13.    var m = re.exec(node.nodeValue);
  14.    if (m != null) {
  15.     feed.removeChild(feed.childNodes.item(i));
  16.     i--; // decrease i, because we removed one element
  17.    }
  18.   }
  19.  }
  20. }
  21.  
  22. var _timer = setInterval(function() {removeAppEntries();}, 500);

Dieser Code muss unter "Add JavaScript" eingefuegt werden. Die Match-Url fuer das Script lautet ^https?://www.facebook.com/.

Alles in allem sollten eure gemachten Einstellungen dann so aussehen (auf das Bild klicken um es zu vergroessern):
facebook-remove-app-entries-chromium-v1

In der letzten Zeile des Codes wird ein Timer gesetzt, der alle 500ms das Script aufruft. Da Facebook sehr viel Inhalte dynamisch nachlaed (AJAX ist hier das Stichwort) ist es nicht moeglich den Code beispielsweise beim onload-Event des Body-Tags aufzurufen, da dieser dann nur einmal ausgefuehrt wird und beim Nachladen von Code via AJAX nicht ausgefuehrt werden wuerde. Vielleicht hat jemand von euch noch eine andere Idee als das mit einem Timer zu realisieren, aber mir ist keine eingefallen. Da das Script aber sowieso sehr schlank ist macht es eigentlich auch nichts aus dieses ueber einen Timer alle halbe Sekunde aufzurufen. Sollte das Script euren Rechner dennoch zu sehr auslasten, dann koennt ihr diesen Wert jederzeit erhoehen.

Bitte beachtet auch, dass das Script unmittelbar ALLE Eintraege die von Applikationen gemacht wurden versteckt. Alle meint hier wirklich alle, d.h. es gibt keine Whitelist oder aehnliches. Solltet ihr also auch nur eine Applikation nutzen und deren Eintraege sehen wollen, dann lasst die Finger von dem Script.

So und das war dann auch schon das ganze Hexenwerk. Mittels diesen wenigen Zeilen Code werden nun alle Applikations-Postings versteckt. Aetsch, Facebook.