Neu Entdeckt: Google’s SEO ist sich dem Filterbubbleproblem bewusst und bringt einige ziemlich gute Argumente vor. Ausserdem entdeckt: Die “verbatim” Suchoption deaktiviert mit einem einfachen Click alle Personalisierungsfeatures, …aber Facebook ist immer noch evil
Filterbubbleupdate
Filterbubblenotizen
Ich habe “The Filter Bubble” von Eli Pariser gelesen (und sogar schon zwei Wochen darüber nachgedacht). Das Buch ist wirklich nicht schlecht (zumindest in der Sachbuch-zu-aktuellem-Thema Liga). Ein paar Sachen die mir in Erinnerung geblieben sind und hier notiert werden damit sie das auch noch ein wenig bleiben.
- Das Buch verzichtet fast vollständig auf die guten alten “deutschen” Privacy Argumente. Diese Diskussion läuft ja immer ab a la: Wenn du etwas aufgibst (privacy) bekommst du etwas tolles (gratis Service). Die Argumentation im Buch ist erfrischend anders: Das was du da gratis bekommst ist gar nicht so toll. Es könnte, wenn man den Gedanken zu Ende denkt sogar schaden, da es deine Sichtweise einschränkt.
- Fundamental attribution fallacy: Dieser psychologische Effekt ist etwas tricky. Im Prinzip ist die Beobachtung, dass Menschen bei der Erklärung von beobachtetem Verhalten Anderer die Beobachtung eher charakterlichen Eigenschaften als situativen Eigenschaften zuschreiben. Wenn Alice Bob an einer Treppenstufe stolpern sieht, wird sie Bob eher für ungeschickt halten, als wenn sie selbst stolpert (und das der unebenen Stufe zuschreibt). Algorithmische Analysen des Users machen den gleichen Fehler. Wenn ein Algorithmus von meinem Klickverhalten auf meinen Charakter, meine Persönlichkeit schließt muss die situative Komponente ausgeblendet bleiben. Ein großer Teil davon (meine Stimmung, meine Müdigkeit, wer noch im Raum ist, etc.) steht überhaupt nicht zur Verfügung. Das Abbild wird immer einen Attributionsfehler tragen.
- Google als neuer Gatekeeper: Wenn sie sagen “We’re giving you the most relevant information,” ist das völlig undefiniert. Ist es für jemanden mit einer festen Meinung zu einem Thema relevanter mehr von dieser Information zu bekommen, oder gegensätzliche Information. Wer soll das entscheiden und wo beginnt der Paternalismus?
- Die Idee Filterung durch die Peergruppe ist eingebaut in Google’s Zukunftsvision. Google+ Circles sind eine weitere Filterbubbleschicht. (Diese Idee ist eigentlich von hier)
- Google ist wenigstens semi-öffentlich. Schonmal von Acxiom gehört? Die sammeln auch Daten, verknüpfen Sie, verkaufen Sie, und sind nicht dem öffentlichen Druck einer prominenten Firma wie Google ausgesetzt.
Dieses Buch ist voller interessanter Ideen die zum Weiterdenken und Diskutieren anregen. Sehr zu empfehlen.
Data liberation
Today I downloaded all my latitude data from Google (and afterwards requested deletion). When you Google for how to do this, you run into a particularly nasty filterbubble: Overexposure with a wrong solution. There are tons of pages coming up that tell you the obvious way to do it via the ‘Export’ button in the web interface. Now that doesn’t really work (anymore?). It just gives you thirty days at a time and the interface is slow and clumsy. (So much for Google’s commitment to data liberation!). As far as I can tell, the obvious one-click-download-all button does not exist. Funnily, the solution was quite simple: The export link (for a single day) contains the unix-times and looks as follows:
https://www.google.com/latitude/b/0/apps/history/kml?startTime=1331334000000&endTime=1331420400000
As startTime and endTime you can plug in unix-epoch dates which you can get with ‘date’ like so:
date '+%s' -d "2 years ago"
Google still fiddles with this somehow because “2 years ago” was interpreted as all the history since the beginning of the epoch (which gave me the desired result anyway). After this I deleted my location history online which is also non-trivial. The delete-all button also only appears if you select a day for which you have a location history. Deleting this data is also not available through your account dashboard. This all is part of my new web-hygiene: From now on I only surf (and search!) when being logged out of all tracking websites like facebook, Google, … I do the social networking in a separate browser, in fact. A pretty easy and convenient implementation of ‘do-not-track’ and more importantly ‘do-not-personalize’.
In principle I like the idea of location tracking as part of life-statistics. I just don’t want to upload it to Google in real-time. Couldn’t my phone just track locations? Let me know if there’s an app for that. (I use cyanogen, so I don’t benefit from the great features of provider delivered customer tracking via CarrierIQ) Finally, according to Google’s estimate I travelled 59,699 miles in the last year (phew!).
The filter bubble
Sometimes you find great stuff by accident. I remember a documentary on the power of Google that I saw on a flight, unable to sleep and having watched everything else remotely interesting. The documentary, made around 2005, was not very good. I don’t even remember its full name, but it featured an interview with some guy whose name I also forgot. He offered a truly new perspective on personalized search. I vividly remember what he said about the recommendation system on amazon: “It makes you more like you are.” Since then I’ve been thinking about this, for instance when reading tante’s datenschutzkritische defense of personalized search. Via Sebastian Spaeth‘s blog I now learned that this is all long known as the filter bubble, advertised by Eli Pariser who has already published a book with the same title. What I have not found are practical ways out of this danger.
my small ruby rant
Since ruby bashing is in season, I’ll try to be fashionable. Disclaimer: I don’t use ruby, I have nothing personal against the language, its developers, or Gentoo maintainers. I’m just offering my arch-testing perspective. One job that the x86 arch team has to do is to add the ~x86 keyword to new packages that the maintainers can’t test themselves. The same applies to packages that have new dependencies. Some people (like the ruby team) take this really seriously. Resulting in many keywording bugs for ruby packages and testing those is a real pain. Firstly, circular dependencies: Almost any test of a ruby package depends in a circular way on the package being installed already. The same applies to USE=”doc”. Then the dependencies among the keywording bugs are not properly resolved, that is one needs to figure out which other packages also need keywording, or in which order the bugs are to be processed. All this makes the process require a lot of manual intervention since in automated testing, there are tons of false positives. The amd64 arch does not suffer from this, since the maintainers add their keywords (I think). In the end ruby is an interpreted language. Most packages are arch independent. I suggest the ruby team just add the ~x86 keyword themselves, even if they only tested on ~amd64. Wouldn’t that work?
Scientific talks
I sit through a lot of scientific talks and some of them are just an awful waste of time. If you are brave enough and your time is more valuable (and you’re not squeezed into one of the farthest seats from the door) you can always leave, but that’s quite a strong statement. Sometimes I wonder how many people actually listen. Today I was thinking about a seminar room with an integrated voting system where each person in the audience had “I lost it, I wish I was not here” Button. Then different models of openness towards performance of the speaker could be implemented. For instance he or she could be given a printout of the proportions of pressed buttons evolving over time. Or one could implemented a “Seminar ends as soon as the approval rate drops below 10%”-model. That would be quite strong still, but as it is not clear who exactly pressed the button or not, some anonymity is guaranteed (assuming that there are at least 10 people, of course).
Such measures would maybe save some valuable time and nerves, but are probably hard to implement. Then how useful would they really be? Would overall seminar quality increase? I doubt it. Fear of being kicked out of your (job interview?) talk may affect your presentation too, and if a speaker is just indifferent towards the audience, then nothing will help. So if you are a speaker, then imagine sitting in your own talk for at least once. If you don’t like your talk, change it! And if you think all seminars are meaningless gatherings where nobody learns anything and everybody is just there for the cookies, then either your field is in deep trouble, or you should find another profession.
Archtesting with tatt
tl;dr: app-portage/tatt now also does keywording bugs and includes bugbrowser code stolen from arch-tools.
It had been a while since I last worked on my arch testing tool tatt. In the meantime Pawel’s arch-tools have gained momentum. Since I like to do archtesting from time to time, but felt too busy to develop tatt any further, last fall I thought of switching. I have now abandoned that plan. Pawel’s and my workflow just seem very different and I think it is good to have two different approaches to automated arch testing. In the end this will mean more issues identified, because different tests are carried out. Tatt’s design is very centered around the individual bug (though this may change in the future). I think of it as “Give it a bugnumber and it will create all the scripts for automated testing and committing”. Here’s how I currently use it:
# tatt -b ${bugnumber}
This will create a couple of scripts for USE-flag testing, rdep-testing, commit, clean-up, and also unmask the packages found in the title of the bug. When run with the -b option, the bug title is searched for package atoms. If there is a list of packages to be stabilized, I dump this list into a file and call tatt with
# tatt -b ${bugnumber} -f ${file-with-packages}
In this case it will use all the packages found in the file and write a single scripts that does testing for all of them. When the scripts have been created, I run them
# sh ${something}-useflags.sh
# sh ${something}-rdeps.sh
The something is a jobname, automatically determined from the filename with -f, or the packagename with just -b, or passed on to tatt with the -j option. These scripts will run various emerge commands and protocol the output in ${something}.report. If everthing went well, I then do all the manual testing which may include running the program for a couple of hours. This part is very important especially for packages in the games-* category! If something did not work, then comes the manual investigation, so let’s assume that everything is fine for now. In this case I commit the stabilization to CVS by running the commit-script:
# sh ${something}-commit.sh
(Actually, since the test machine is virtual and I try to keep it tidy, I mirror the script to my dev-machine and commit from there, but you get the point). Once the commit is done, I clean-up the bug using
# tatt -r ${bugnumber} -m “Funny message”
This will comment on the bug with your funny message and remove your arch alias from CC. You can also pass the -c option which will close the bug as fixed. For all this bugzilla-automagic your pybugz should be logged into bugzilla or at least not ask for the password all the time. You have to take care of that yourself, for instance by making “bugz” an alias.
All this is long implemented. What’s new: tatt now automatically determines whether the current job is a stable or keywording bug and writes the correct commit scripts. I also shamelessly merged some of Pawels bugbrowser code into tatt, so you can try this experimental feature using the -o option. Instead of passing a bugnumber, you would select the bug from the ncurses-browser, but again. My workflow is somehow different.
So much for now, let me know if you tried tatt and I would be delighted to receive pull requests on github.
Antifeatureanekdote
Mein Bürokollege, hat mir heute erzählt, er würde pdflatex nicht benutzen weil die Features des Anzeigeprograms von pdflatex so viel schlechter seien. Nach kurzer Konfusion hab ich rausgefunden, dass sein DVI-Viewer eine veränderte Datei (z.B. nach dem Aufruf von latex) neu lädt, sein PDF-Viewer (kommerzielles Adobe Programm) dieses Feature jedoch nicht unterstützt. In seiner Welt hatte er sich die Erklärung bereit gelegt, dass so etwas mit PDF irgendwie nicht gehen könne. Ich erinnere mich noch, dass irgendwann während meines Physikpraktikums im Grundstudium (2002?) diese Funktion aus dem Acrobat Reader entfernt worden war und sich damals alle aufgeregt haben. Benutzt wirklich noch irgendwer Adobe Reader?
Pick your battles
Zu den Grundprinzipien von “Getting things done” gehört: Jede Sache die man anders haben will in der Welt ist ein Projekt. Jedes Projekt braucht ein Ziel, und einen klar definierten Schritt wie man diesem Ziel näher kommt. Problem: Es gibt unglaublich viele Sachen die einem durch den Kopf gehen a la “ja das wäre super, das müsste man mal machen” und ich denke es ist gut sie zu sammeln. Noch wichtiger: Das Sortieren, und zwar ehrlich. Wie viele von diesen Sachen will ich wirklich. Wie viele sind mir die investierte Zeit wirklich wert? Die Suche nach ehrlichen Antworten hat mich zu interessanten Einsichten gebracht. Banalem Beispiel: In meinem .org file gibt es einen Bereich “tools” in dem ich Ideen zu meinen Tools (jeglicher Art) sammle. Dieser Bereich hatte einfach zu viele “ja, das wäre toll” Ideen. Beispiel: OpenVPN auf meinem Server einrichten. Klar wäre das toll, einmal im Jahr das Fussballspiel im deutschen Livestream vom Ausland aus zu sehen, aber ist ein Fussballspiel den Aufwand der Einrichtung und Pflege eines OpenVPN Servers mit den dazugehörigen Sicherheitsüberlegungen und Sorgen wert? Für mich ein klares Nein. Eigentlich war dieses “Nein” lange klar, und daher verschimmelte dieser Punkt in meiner “tools”-Liste. Meine neue Erkenntnis ist jetzt einfach: Wenn ich nicht sofort Interesse habe das Item umzusetzen, mit klar definierten Ergebnissen die mich vorwärts bringen, dann kann ich es auch einfach löschen. Der entscheidende psychologische Trick: Das nächste Mal wenn ich das Fussballspiel nicht gucken kann bin ich ehrlich zu mir selbst und stehe zu der Entscheidung warum ich OpenVPN nicht eingerichtet habe. Ich habe Zeit und gute Laune gegen dieses Fussballspiel getauscht und weiss noch warum. Viel besser als jedes Mal wieder in die “ach ja, das müsste man mal machen” Schleife zu geraten. Das hingegen ist schon wieder eine Weisheit aus “Getting things done”. Bewusst entscheiden Dinge nicht zu tun und dadurch fokussierter an den wichtigen Sachen arbeiten. The marital art of stress-free productivity.
How to copy files to a GalaxyTab 10.1 (on Gentoo)
Short recap: GalaxyTab 10.1, the fake iPad, illegal in Europe, no USB-mass storage, must use kies (not known to work on any platform), libmtp not working. So while Apple and Samsung go patent nuclear, I solved my “easy” problem of transfering a file to that tablet (using Gentoo, or just anything which has a command line). My earlier solution was undone by a software upgrade that Samsung pushed over the air. The new solution that I found now is so simple that I cannot believe not finding it earlier. Just use the adb debugging tool. Isn’t it completely obvious that this is the way to go? Well, you need to get the adb tool which is not included in the android-sdk anymore, but easy to find on the web. If you unlocked your phone to install cyanogenmod, then you may still have it around. The command is adb push with a quite obvious syntax. Remember that you need to put your device into USB-debugging mode via the settings, otherwise adb won’t connect. If you copy files to a non-system folder, like /sdcard/Downloads then no rooting is needed. Transfer speed is decent at about 1300kb/s on USB 2.0.
Happy Gentooing!
