Beiß in die Hand, die dich füttert

Kennt ihr die VG Media Gesellschaft? Nein? Nun, diese Gesellschaft ist ein Zusammenschluss vieler großer Verlage wie z.B. der BILD, Bunte, HAZ, etc. Kurz: All die großen Zeitungen, welche man meistens aus den Zeiten der Buchstaben auf Papier kennt und die wohl oder übel auch ins Internet mussten, um nicht ganz von der BILDfläche zu verschwinden.

Um nun auch noch Leser zu bekommen, müssen die Leute ja irgendwie erfahren, dass es die Seiten gibt. Da kann man dann entweder Werbung in den Zeitschriften und Zeitungen selbst machen, was nicht gerade sehr viel bringt, da die Generation Zeitung mit der Generation Internet nicht viel zu tun hat, oder man wendet sich an die Suchmaschine seines Vertrauens, welche einen dann in den Nachrichtenindex aufnimmt. Da Google in Deutschland die mit Abstand stärkste Suchmaschine ist, ließ man sich dort natürlich auch gerne eintragen.

Jetzt ist es nur so, dass VG Media gemerkt hat, dass sie nicht ganz auf dem Stand der Zeit sind und die Leser wegrennen/sterben. Jetzt gibt es zwei Möglichkeiten: Einen Sündenbock suchen oder den Inhalt auf den Stand der Zeit bringen und vielleicht mal ein wenig besser recherchieren und nicht als Quelle nur "Internet" oder "YouTube" angeben. Man entschied sich für den Weg des geringsten Widerstandes (so dachte man) und nahm den Sündenbock. Da ist es natürlich naheliegend die einzigen Websites zu nehmen, die sich für einen interessieren und fleißig Zitate der Artikel präsentierten: die Suchmaschinen.

Kurz (un)überlegt beschloss man also ein Leistungsschutzrecht für Presseverleger zu etablieren. Mit genug Unwissenheit der CDU und genug Geld von VG Media und co. ließ sich das dann auch zum 1. August 2013 durchtreten. Darin heißt es, dass jede Website, welche Bilder oder Zitate aus einem Artikel nimmt, vorher um Erlaubnis fragen müsse. Nett wie die Medien sind, darf man das dann natürlich auch - gegen eine Danksagung in Form von Geld. Kurz gesagt: Wenn eine Suchmaschine ein Thumbnail (Bild) oder ein Snippet (Zitat) eines Artikels der VG Media-Gruppe in den Suchergebnissen oder unter der News-Section anzeigt, muss Geld an die entsprechenden Verlage fließen.

Schwachsinn, denken sich die Suchmaschinen. Im Index ist man schließlich freiwillig, man profitiert ja deutlich durch die Klicks. Allein durch Google gehen jeden Monat über eine halbe Milliarde Klicks an deutsche Nachrichtenportale. Wer die nicht haben möchte, kann sich ja aus dem Index der Suchmaschinen austragen, oder nicht? Ja, das finden die Suchmaschinen auch. Web.de, T-Online, GMX und co. haben prompt reagiert und die betroffenen Seiten einfach komplett entfernt. Sie wollten es ja so.

tonlinesuche

Google hingegen zeigte sich kulant und kündigte an ab sofort nur noch die Überschrift und den Link zum Beitrag in den News-Ergebnissen anzuzeigen. Man möchte die Seiten ja nicht komplett zensieren. Die Verlage finden das alles natürlich "höchst problematisch", es herrscht ja eindeutig eine Wettbewerbsverzerrung aufgrund des großen Monopols, das Google hat. Es ist einfach unerhört Seiten zu beschneiden, welche auf ihr gutes Recht plädieren. Man hat ja gar nicht die Möglichkeit ohne Google zu überleben.

Auf gut Deutsch heißt das:

Wir haben die Hand gebissen, die uns füttert, und jetzt sind wir traurig, weil wir nicht mehr genug zum Essen bekommen.
Der VG Media Gesellschaft hat die ganze Aktion vom bösen Mr. Google so sehr nicht gefallen, dass sie Google gebeten haben mit der Sanktion noch 14 Tage zu warten, bevor sie angewendet wird. Das haben sie dann auch gemacht. Was die armen Verlage jetzt vor haben, kann nur spekuliert werden. Ich bin aber auf jeden Fall gespannt.

TL;DR: VG Media möchte Geld für die kostenlosen Anzeigen durch Google, Google entfernt die Anzeigen, VG Media will das nicht und weint. Stay tuned.

Update 16. Oktober 2014: So, die VG Media-Gruppe hat sich geäußert und zugegeben, dass deren Idee eher doch nicht so hundertprozentig durchdacht war. behauptet, dass Google das Monopol ausnutzt und die Verlage keine Chance mehr hätten. Insofern möchte man wohl klein beigeben und nicht auf das eigens durchgedrückte Leistungsschutzrecht bestehen. Allerdings nur bei Google. Alle anderen werden in Zukunft trotzdem zahlen dürfen.

Update 05. November 2014: Huch, damit hat niemand gerechnet. Der Google News-Traffic bricht um 80% ein. Die arme VG Media-Gruppe.

Update 10. November 2014: VG Media gibt nicht auf und versucht nun das ganze vor Gericht zu ziehen. Aus dem offiziellen Bericht gefällt mir außerdem folgendes Zitat sehr gut: "Den Vogel der Fehlinterpretation hat wieder einmal der im Vogelabschießen bestens geübte Stefan Niggemeier abgeschossen. Seine steile These: Die VG Media diskriminiert die kleineren Suchmaschinen wie 1&1 und Telekom, weil sie ihnen keine Gratislizenzen einräumt."

Update 11. November 2014: Wer zu faul zum lesen ist, kann sich auch gerne mein Video zu dem Thema angucken:

Update 11. Juli 2016: Es ist nun mittlerweile zwei Jahre her, seit die VG Media-Gruppe den Streit darum mehr oder weniger aufgegeben hat. Trotzdem muss man immer wieder gegen Klagen bezüglich des Leistungsschutzrechts kämpfen und weiter Gelder ausgeben. Das alles sollte sich daher also schon lohnen, oder? Fehlanzeige. Seit 2013 hat man ganze 714.540 Euro mit dem tollen, neuen Recht verdient. Und ausgegeben? Nun... so um die 3,3 Millionen. Hat sich also richtig schön gelohnt. Wieder einmal ein großer Sieg für die Print-Medien, die den Schuss nicht gehört haben!

Nothing for Android

Wie einige von euch wissen, bin ich der Entwickler der unglaublichen Nothing-App für Android, was bedeutet, dass ich nicht selten Feedback zu der doch sehr einfach gestalteten App bekomme.

Nothing hält, was sie verspricht. Nichts. Nichts ist einfach ein schwarzer Bildschirm mit einem durchsichtigen App-Icon ohne Namen. Nichts eben. Öffnet man die App, passiert nichts. Deinstalliert man sie, passiert nichts. Stellt man sich bei Verwendung auf den Kopf, passiert ebenfalls nichts. Sehr spannend also. Ich war schon ziemlich überrascht, wie einige Nutzer sogar einen Use-Case für die App finden konnten. Samsung-Nutzer verwendeten sie z.B. als Notizblock, andere als Tastensperre.

Die Bewertungen sind hervorragend. Die App hält genau das, was sie verspricht, stürzt nie ab und ist ein Spaß für die ganze Familie. Manche Nutzer sind jedoch enttäuscht, dass die App ja wirklich nichts macht. Hin und wieder kommt es dann sogar vor, dass jemand mir eine Mail schickt. Die zwei Highlights waren: "Dumm" und "Ey yo bro kann man da son horror Mädchen einfügen?"

Android Development

Ich habe in der Vergangenheit ja schon viel Dampf über Android abgelassen. Aber da man ohne das System nicht leben kann und die neuen Android Wear Smartwatches wirklich nicht schlecht sind (vor allem, wenn man sie mal mit der Apple Watch vergleicht), wollte ich mir ein Watch Face bauen. Das ist eine Art Theme für das "Ziffernblatt" der Uhr. Da für diese Watch Faces die neuste Version des SDKs benötigt wird, starte ich also meine Eclipse IDE mit ADT-Plugin, öffne den Android SDK Manager und ziehe die letzte Version des Android Wear SDKs auf meine Festplatte. Nach einem Neustart der Eclipse IDE werde ich mit der freundlichen Meldung begrüßt, dass ich doch den SDK Manager auf Version 23 aktualisieren solle, da Version 22 nicht mehr unterstützt wird. Netterweise kann ich mit einem Klick auch direkt nach Updates suchen. Problem nur: Version 22 ist aktuell.

Da ich wenig Lust habe mehr Zeit in die IDE zu investieren als in die Entwicklung des (nahezu nicht von Google dokumentierten) Watch Faces, lade ich mir die offizielle Android Studio IDE herunter und starte sie. Und direkt werde ich mit der Meldung "es ist ein Update für Android Studio verfügbar" begrüßt. Link zum Update? Nö.

Da ich die neuste Version bereits von der offiziellen Seite heruntergeladen habe, ignoriere ich die Meldung und erstelle mein neues Projekt, wobei mir der freundliche Wizard hilft. Ich wähle "Android Wear", gebe den Namen ein und drücke auf "Weiter". Android Studio fängt fleißig an zu rödeln und lädt die letzten Dateien aus dem Netz. Nachdem das Programm fertig ist und mir den Code-Editor präsentiert, bekomme ich direkt einen Haufen Fehlermeldungen auf den Bildschirm geschmissen:

Screen Shot 2014-09-14 at 21.14.23

Keine Ahnung, warum ich immer in jeden Fehler tappe, den eine Software nur haben kann, aber es nervt mich. Das macht doch alles keinen Spaß. Morgen fang ich die Umschulung zum Gärtner an.

Release Monitor - Erscheinungstermine verwalten

Letztens wollte ich wissen, wann das Computerspiel Tom Clancy's The Division veröffentlicht wird. Laut Google soll es irgendwann nächstes Jahr erscheinen. Wann genau ist noch nicht bekannt. Und da ich eigentlich nicht viel mit Computerspielen am Hut habe, lese ich nicht täglich Nachrichten darüber, was bedeutet, dass ich mit ziemlicher Sicherheit verpassen werde, wenn ein Termin für den Release gesetzt wird. Und da es nicht selten vorkommt, dass dieser dann wieder verschoben wird, kann ich direkt davon ausgehen, dass ich jeden Monat aktiv danach googeln muss. Ich bin ein vergesslicher und vielbeschäftigter Mensch hust, weswegen ich mir einen Reminder gesetzt habe, um mich zu informieren, ob es etwas neues zu dem Spiel gibt.

Ich kam zu dem Entschluss, dass das doch nicht sein kann. Klar kann ich mich auf der offiziellen Seite für den Newsletter eintragen. Dafür brauch ich dann aber einen Ubisoft-Account und außerdem lande ich dadurch zu 99% bis an mein Lebensende im Ubisoft-Verteiler, was ich auch nicht unbedingt haben möchte. Eine Übersicht über alle Spiele habe ich zudem auch nicht. Es muss also eine Website her, die alle Spiele aufgelistet hat und durch eine einfache und spamfreie Methode Erinnerungen sendet.

Lange Rede, kurzer Sinn: Ich habe den Release Monitor ins Leben gerufen. Auf dieser Seite sammeln sich nun alle Spiele, welche demnächst erscheinen werden. Man kann sich mit seiner E-Mail-Adresse eintragen und bekommt dann - und nur dann - wenn sich etwas ändert oder der Release kurz vor der Tür steht, eine E-Mail. Zudem gibt es auch eine ICS-Datei, welche man in den Kalender eintragen kann. Nimmt man die URL zur Datei, aktualisiert sich dieser natürlich, sobald der Termin verschoben wird.

Docker

In letzter Zeit ist überall die Rede von Docker. Wer trotzdem noch nichts davon gehört hat: Mit Docker ist es möglich, einzelne Anwendungen in einer immer gleich bleibenden, abgeschotteten Umgebung unabhängig vom eigenen System, laufen zu lassen. Ähnlich wie bei VMs hat man also eine Art Zweitsystem, in dem man die Anwendungen installiert. Mit dem Unterschied, dass Docker kein vollständiges Betriebssystem stellt. Es trennt also nur die Systemressourcen durch Cgroups und Namespaces. Trotzdem ist es möglich in einem sogenannten Docker Container ein anderes Unix/Linux-System laufen zu lassen, solange der Kernel des Host-Systems verwendet werden kann. Wer also für seine Anwendung openSUSE benötigt, den Host aber mit Ubuntu laufen lässt, kann dies ohne Probleme tun.

Der Hintergrundgedanke ist der, dass ein bestimmter Zustand einer Anwendung zu jeder Zeit sichergestellt werden soll. Das ist sowohl bei Entwicklungsumgebungen als auch bei produktiven Systemen mit sehr vielen Vorteilen verbunden. Zudem sind Docker-Container relativ klein, da sie nicht zwingend ein komplettes System benötigen, und zudem performant, da die Anwendungen nativ vom Kernel gestartet werden. Natürlich habe ich mir die Chance nicht entgehen lassen und das ganze getestet.

Die Installation von Docker selbst und das Erstellen von Containern durch sogenannte Dockerfiles ist ein Kinderspiel. Auch Spielereien wie einen abgeschotteten SSH-Server lassen sich in ein paar Zeilen realisieren. Doch wie bei jeder Software gibt es auch bei Docker ein paar Dinge, die mich stören. Getestet habe ich Docker nun auf 3 verschiedenen System, auf allen mit dem gleichen Ergebnis: DNS funktioniert nicht richtig. Ich weiß nicht, ob ich irgendwelche komischen Routen konfiguriert habe oder Docker mich einfach nicht mag, aber ohne einem

iptables -F
und der Option --dns beim Starten des Containers komme ich nicht weit. Das Problem bei der Sache ist, dass der Parameter beim Erstellen eines Containers aus einer Dockerfile heraus ignoriert wird, was bedeutet, dass ich keine Container bauen kann, welche Pakete installieren oder sonst auf das Internet zugreifen wollen.

Des weiteren gibt es dank selinux ein Problem beim Mounten eines Verzeichnisses. Mit der Option -v ist es möglich dem Docker-Container einen Ordner des Hostsystems durchzureichen. Das ist beispielsweise dann hilfreich, wenn man mit LaTeX ein lokal liegendes Dokument bauen möchte. Um Rechte auf den entsprechenden Ordner zu bekommen, muss auf dem Hostsystem folgende Berechtigung für den Ordner gesetzt werden:

chcon -Rt svirt_sandbox_file_t /path/to/folder
Auch scheint die Trennung der zwei Systeme nicht so sauber zu sein, wie ich mir das wünsche. So ist es z.B. nicht möglich den Hostnamen in einem Container zu setzen oder alternative DNS-Server einzutragen. Die Zugriffe auf die entsprechenden Dateien werden gesperrt, was bei mir dazu führte, dass manche Anwendungen nicht fehlerfrei funktionierten. Darunter auch HHVM und MySQL.

Alles in allem ist Docker aber ein sehr interessantes System und ich bin mir sicher, dass es eine große Zukunft vor sich haben wird. An dem Spruch

Docker is Git for deployment.
ist denke ich einiges dran. Docker ist ein mächtiges Tool. Wer mit Deployment etwas am Hut hat und sich mit Docker auskennt, kann sich sein Leben wesentlich vereinfachen.

Kabel Deutschland

Ich stehe ein bisschen auf Kriegsfuß mit Kabel Deutschland und möchte nun erklären, warum das so ist. Meine Eltern sind (zwangsläufig) seit Jahren Kunde bei Kabel Deutschland. Als ich noch bei ihnen wohnte, war das Internet dort eine Qual. Nie erreichte man auch nur annähernd die versprochenen 32 Mbit/s geschweige denn eine stabile und unterbrechungsfreie Verbindung. Der Upload war grottig, wie das bei Kabel üblich ist, und die Verbindung hatte zu 90% der Zeit mindestens 5% Package Loss. Doch das ist nicht alles: Dank des veralteten Kabelmodems brach die Verbindung mehrmals am Tag ab. Ein neues wollte Kabel Deutschland nur gegen einen monatlichen Aufpreis von 2 Euro verschicken. Vor kurzem kam dann eine Störung in der Leitung hinzu, durch die dauerhaft nur maximal 3 Mbit/s zur Verfügung standen - nachts sogar noch weniger. Erst ein Anruf bei der Kabel Deutschland-Hotline sorgte dafür, dass der Monat zurückerstattet wurde. Eine Benachrichtigung über das Bestehen der 4-Wöchigen Störung gab es nicht.

Als Referenz hatte ich - nachdem ich bei meinen Eltern ausgezogen bin - zwei Jahre lang VDSL bei der Telekom. 50 Mbit/s und das durchgehend. Keine regelmäßigen Störungen, 0% Package Loss und permanent flogen die Datenpakete mit 51 Mbit/s durch die Leitung. Zugegeben, bis der Anschluss stand, verging fast ein Monat, doch danach war die Leistung wie versprochen. Der Kundensupport stand relativ schnell auf der Matte, als es doch mal eine Störung gab und löste das Problem sofort.

Und dann ist da wieder Kabel Deutschland. Ich bin nun umgezogen und mit mir auch der Internetprovider. Leider bietet die Telekom nur 16 Mbit/s an meiner neuen Wohnung, weswegen ich lange überlegt habe, ob mir das langt oder ob ich doch zu Kabel Deutschland muss, welche 100 Mbit/s zur Verfügung stellen. Ich entschied mich natürlich für die umwerfenden 100 Mbit/s und schloss den Vertrag mit Kabel Deutschland ab. Natürlich mit dem FritzBox-Router-Modem gegen einen Aufpreis, da ich das Spektakel meiner Eltern nicht unbedingt revue passieren lassen wollte. Die Box wurde dann auch zum vereinbarten Termin geliefert. Vorkonfiguriert. Anstecken, warten, lossurfen. Ich war beeindruckt. Doch der Schein trügt.

Nach etwa einer Woche bekam ich eine Mail, dass ich meinen Anschluss doch in Betrieb nehmen solle, da er sonst gekündigt wird. Ich solle mich nach Abschluss der Konfiguration doch im Kundenportal registrieren. Ja, das kam per Mail. Ich habe mich also registriert und erst einmal 4 Haken deaktiviert um Spam, Newsletter und ein extra Sicherheitspaket für 5 Euro/Monat nicht zu bekommen. Heute kam dann wieder eine Mail: "Sie haben kürzlich eine Bestellung bei uns getätigt. Nachdem einige Zeit ohne Nutzung verstrichen ist, haben wir Ihr Produkt für Sie aktiviert." Alles klar. Gleichzeitig mit der Mail kam dann auch das SEPA-Lastschriftmandat, welches ich unterschrieben zurück an Kabel Deutschland schicken soll. Vorfrankiert? Keine Chance. (Zum Vergleich: Die Stadtwerke haben einen vorbedruckten, vorfrankierten Umschlag beigelegt.)

Und wie ist die Qualität des Internets? Nun, in den letzten zwei Wochen hatte ich bereits zwei Ausfälle für je etwa eine halbe Stunde. Zudem nimmt Kabel Deutschland das mit den 100 Mbit/s auch nicht zu ernst. Die vollen 100 Mbit/s hatte ich noch nie. Im Normalfall schwankt die Geschwindigkeit zwischen 30 Mbit/s und 90 Mbit/s. Je nach Wetter (das stimmt lustigerweise sogar. Schlechtes Wetter => Mehr bleiben daheim => Mehr Leute im Internet => Weniger Geschwindigkeit für Karim). Manchmal habe ich die versprochenen 5% Package Loss, meistens jedoch glücklicherweise < 1%. Auch der Ping schwankt manchmal zwischen 40 ms und 1 s. Stabiles und stetiges Internet stelle ich mir anders vor. Im Großen und Ganzen erinnert mich die Leistung und die Qualität von Kabel Deutschland an Vodafone, welche Kabel Deutschland kürzlich gekauft haben. Da haben sich also zwei gefunden.

iWorkaround: Festplatte wechseln beim iMac Late 2009

Wer einen iMac hat, der neuer oder gleich alt ist, wie das Modell Late 2009, kann die Festplatte nicht einfach so austauschen, da sie mit einem speziellen Wärmesensor ausgestattet sind. Wird dieser entfernt, dreht der Lüfter permanent auf 100%.

Es gibt daher mehrere Möglichkeiten, eine Festplatte zu wechseln:

  • Apple-Festplatte kaufen: Teuer
  • Festplatte im Gravis/Apple Store tauschen lassen: Teuer
  • Software-Lüftersteuerung: Problematisch, wenn man kein OS X verwendet
  • Eine zweite Festplatte einbauen: im iMac 21,1" nicht möglich, da keine zwei SATA-Data-Ports zur Verfügung stehen
Über all diese Möglichkeiten liest man zu Hauf im Internet. Doch eine habe ich bisher noch nicht gesehen. Benötigt wird für diese Version nur eine 2,5 Zoll SATA-Festplatte oder SSD.

Hat man diese, kann es losgehen. Wie man den iMac öffnet und die Festplatte ausbaut, wird zum Beispiel hier sehr gut beschrieben. Und jetzt kommt der iWorkaround: Da die Temperatur der Festplatte über ein extra Kabel und nicht über die SATA-Schnittstelle ausgelesen wird, langt es, wenn man die Festplatte als "großen Sensor" im Gehäuse lässt. Man schließt also die neue Platte an den SATA-Anschluss an und lässt den Wärmesensor an der alten, großen Festplatte. Die 2,5 Zoll-Platte passt wie angegossen hinter die originale und funktioniert einwandfrei, ohne dass der Lüfter aufdreht.

Die gesparten Reparaturkosten könnt ihr mir gerne per Bitcoin spenden ;) 1ANWc9rFPPh755xYBxaBtV5siy8QvW2kAy

Cloud Storage und die Sync Clients

Ich habe den Fehler gemacht und mir vor ein paar Tagen einen Podcast über Cloud Storage angehört. Ich - bisher glücklicher Dropbox-User - kam dadurch auf den Trichter unbedingt wechseln zu müssen, weil mein Speicher in ein paar Monaten ausläuft und Dropbox doch eher ziemlich teuer ist. Ich guck mir also die in dem Podcast erwähnten Services an und probiere sie durch. Darunter: ownCloud, MEGA und Google Drive.

Zugegeben, ich bin ein anspruchsvoller Cloud-User. Ich habe sehr viele Dateien in meiner Dropbox, welche manchmal sehr komische UTF-8-Namen (Umlaute und so) und Leerzeichen haben. Außerdem bin ich auf jeder Plattform vertreten: Windows, Mac, Linux, iOS und Android.

Trotzdem kann es ja nicht so schwer sein, einen einfachen Sync-Client zu haben, der eine Liste der aktuellen Dateien + Änderungsdatum auf dem Server hält und diese dann entsprechend abgleicht. Dachte ich. Dropbox hat bisher immer gute Dienste geleistet und nur einmal aus Versehen (aufgrund einer falschen Client-Zeit) einen Großteil meiner Dropbox gelöscht. Ist ja kein Problem, man hat Backups. Alle anderen Clients hingegen scheitern schon größtenteils an einfachsten Funktionen:

MEGA ist schon aus dem Grund raus, dass es keinen Client für Linux gibt. Das ist vertretbar, da der Service sehr neu ist und ein Linux-Client (soweit ich weiß) geplant ist. Ich habe MEGA also trotzdem eine Chance gegeben und bin direkt auf die Nase gefallen. Der Sync klappt zwar, wenn er mal klappt, relativ gut, allerdings ist das nicht oft der Fall. Nicht nur, dass der Upload langsam ist (ich bin irgendwie der einzige Mensch dieser Welt, alle anderen schwärmen immer davon, wie schnell MEGA doch sei), die Clients stürzen auch regelmäßig ab, bzw. starten gar nicht mehr. So kann ich meinen Mac-Client und die iOS-App nicht mehr starten. Next.

ownCloud an sich ist eine geile Sache. Man hat seine Daten auf seinem Server und kann selbst entscheiden was Sache ist. Leider ist der Linux-Client (zumindest bei mir) eine Katastrophe. Jede Datei mit einem Leerzeichen wurde gelöscht. Vom Sync will ich gar nicht erst anfangen. Der klappt auch mehr oder weniger nur sporadisch. Und auch die App kann nicht besonders viel. So fehlt ein automatischer Foto-Upload zum Beispiel komplett. Next.

Google Drive ist verdammt günstig und von Google, daher sollte das ja etwas taugen. Naja, der Sync funktioniert problemlos und schnell. Wie zu erwarten. Allerdings hat auch die Google Drive App keinen automatischen Foto-Upload (ich weiß, Google+, dies, das, aber ich will meine Photos nicht auf Google+, sondern in einem Ordner) und es gibt auch hier - obwohl es made by Google ist - keinen offiziellen Linux-Client. Es gibt inoffizielle Clients, wie beispielsweise grive. Toll daran: Jede Datei, die von einem anderen Rechner angelegt und hochgeladen wird, wir direkt wieder von grive vernichtet, weil sie lokal "gelöscht" wurde. Wunderbar. Next.

Dropbox. Hach, schön :)

 

Update 06. August 2014: Wer eine Self-Hosted-Alternative zu ownCloud sucht, sollte sich einmal Seafile angucken. Zwar hat deren Mobile Client auch keine Kamera-Upload-Funktion, dafür ist das ganze aber sehr stabil und schnell, da es auf Git, C und Python basiert. Ich regle aktuell 70% meiner Cloud-Aktivitäten was Storage betrifft über Seafile und bin bisher sehr begeistert. An Dropbox kommt es trotzdem nicht ran.

Screenshots von Snapchat Bildern machen

Ihr kennt bestimmt Snapchat. Das ist eine App, mit der man Bilder verschicken kann, welche dann durch Drücken ein paar Sekunden beim Gegenüber angezeigt werden und danach für immer verschwinden. Ideal für.. ihr wisst schon was. Ich persönlich hielt die App bisher immer für maximal bescheuert, weil man ja ganz einfach einen Screenshot des Fotos machen kann und voilà, der Drops ist gelutscht. Früher schien das auch zu funktionieren, mittlerweile jedoch nicht mehr. Wird ein Screenshot erstellt, bekommt die gegnerische Seite nämlich eine Benachrichtigung à la "XYZ took a screenshot". Ich verwende die App nicht, daher ist mir das auch ziemlich egal, ich war jedoch - als ich heute morgen von dem Feature gehört habe - von dem technischen Aspekt angetan. Wie erkennt Snapchat unter iOS, dass ein Screenshot erstellt wurde, wo die API doch sehr eingeschränkt ist. Eine kurze Befragung meiner Lieblingssuchmaschine ergab, dass das ganze in der Tat nicht so einfach ist.

Es gab zwei Wege, wie man als App-Entwickler diese Events abfangen kann. Der eine Weg ist wohl, dass der Digitizer kurz den Fokus verliert, wenn man mit dem Finger auf dem Bildschirm ist und einen Screenshot macht. Da man bei Snapchat bekanntlich den Finger auf dem Bild halten muss, bis der Timer abgelaufen ist, ist das also ideal. Jedoch scheint diese Technik nicht unter iOS 7 (zumindest in/ab der Beta 2) zu funktionieren. Das konnte ich nicht überprüfen, da ich aktuell die iOS 8 Beta 2 laufen habe. Aufgrund des Ausschlussverfahrens muss es also entweder wieder aktiviert worden sein oder es gibt eine dritte Methode. Aber kommen wir erst zur zweiten Idee:

Hat eine App Zugriff auf die Galerie, so ist es möglich einfach das letzte Bild zu analysieren. Erscheint plötzlich ein Bild in der Galerie, dessen Maße mit der des Displays übereinstimmen, ist es sehr wahrscheinlich, dass gerade ein Screenshot erstellt wurde. Da Snapchat bei mir allerdings keinen Zugriff auf die Galerie hatte (ich habe das überprüft, und ja: Kamera ist nicht gleich Galerie), muss es entweder Methode 1 oder eben Methode 3 sein, welche bei Snapchat verwendet wird.

Aber genug des Nerdgeschwafels. Ich habe durch ein wenig Experimentieren einen Weg gefunden, wie man trotz Schutzmechanismus - zumindest unter iOS - mit der Snapchat-Version 7.0.4 (die aktuellste bei Erscheinen des Blogposts), einen Screenshot erstellen kann, ohne dass der Partner dies mitbekommt:

  1. Ist ein Snap angekommen, wird er sofort heruntergeladen. Man kann vor dem Ansehen also den Flugzeugmodus aktivieren.
  2. Nun sieht man sich das Bild an (Finger auf dem Bildschirm halten) und macht dabei einen Screenshot (Power + Home-Button). Der Finger bleibt dabei natürlich auf dem Display.
  3. Bevor der Timer abläuft, muss die App nun beendet werden. Ein Doppelklick auf den Home-Button öffnet den App Switcher. Auch, wenn der App-Switcher offen ist, muss der Finger auf dem Display bleiben.
  4. Mit der zweiten Hand zieht man nun die Snapchat-App nach oben weg, um die App zu beenden. Der andere Finger muss bis die App beendet wurde auf dem Display bleiben.
  5. Jetzt deaktiviert man den Flugzeugmodus, öffnet die App wie gewohnt und sieht sich das Bild noch einmal an ohne einen Screenshot zu machen. Der Timer beginnt dabei noch einmal von vorne.
Ich bitte euch diesen Hack nicht zu verwenden, wenn eure Gegenseite nichts davon weiß. Ich schreibe trotz alle dem einen Blogpost darüber, in der Hoffnung, dass Snapchat selbst das ganze mitbekommt und diesen Bug rauspatcht.

Happy Snapping! (Ich finde die App immer noch unsinnig.)

YaCy - P2P Suchmaschine

YaCy_logoYaCy ist eine alternative Suchmaschine, die ein etwas anderes Konzept verfolgt, als Google, Bing, DuckDuckGo und co. YaCy setzt auf ein dezentrales Peer-to-Peer Netzwerk. Das bedeutet es gibt keine Serverfarm, die von einem Anbieter gestellt wird, sondern jeder Client trägt seinen Teil bei. Die Suche im Netz setzt also eine auf dem PC installierte Software voraus. Ist die Anwendung einmal installiert, funktioniert sie folgendermaßen:

Im Hintergrund wird ein Webserver gestartet, der die Suche hostet. Anschließen kann im Browser über http://localhost:8090 auf die Suche zugegriffen werden. Startet man nun eine Suchanfrage, so kontaktiert YaCy andere Rechner, die ebenfalls die Software installiert haben, sich als Seeder (also als Server) anbieten und einen Teil der indexierten Daten lokal gespeichert haben, und fragt sie nach Resultaten. Diese werden dann in der Suchmaske ausgegeben.

Der Vorteil an diesem System liegt auf der Hand: Nicht nur ist es sehr anonym und frei von der Möglichkeit Seiten aus dem Index zu entfernen, es ist außerdem auch sehr kostengünstig. Es gibt keinen Dienstleister, der eine Infrastruktur zur Verfügung stellen muss. Es muss nur genug Leute geben, die diesen Service ebenfalls nutzen. Diese Leute können dann einen großen Index bieten und selbst Seiten indexieren (crawlen).

Damit dieses System allerdings funktioniert, müssen einige Voraussetzungen erfüllt sein. Zunächst einmal muss dem Entwicklerteam klar sein, dass das Internet zum größten Teil nicht aus Leuten wie ihnen besteht - den Freaks - sondern aus 0815-Nutzern, die wissen, wie man den Internet Explorer öffnet und wie man dieses Googel bedient. Und genau hier sehe ich das Problem bei YaCy. Mal davon abgesehen, dass es bei meinen Tests regelmäßig abgestürzt ist und sehr langsam war, ist es einfach viel zu komplex. Niemand will sich Stundenlang mit einer Suchmaschine beschäftigen müssen.

Das ganze fängt schon auf der Website des Projekts an. Man wird direkt auf der Startseite mit viel Text konfrontiert. Das ist wohl gute Schule bei Open Source Projekten, schreckt jedoch den Laien eher ab. Was fehlt ist eine Demonstration des Dienstes - Sprich: die Suche. Natürlich ist das Ziel der Download der Software um das Projekt voran zu treiben, trotzdem sollte der Hauptaugenmerk nicht darauf gerichtet sein. Gefällt einem Nutzer das Projekt, so wird er von alleine versuchen, den Dienst zu unterstützen. Und wenn man dafür nur eine kostenlose Datei runterladen muss, warum denn nicht.

Update 26. November: Ich habe eine Demo gefunden! Keine Ahnung, ob sie schon immer da war, gut sichtbar ist sie allerdings nicht. Unter dem Menüpunkt "Search Portal" findet man letztendlich einen Link zur Demo. Dort wird dann auch noch einmal hervorgehoben wie wichtig es ist, dass man doch den Client herunterlädt. Und auf viele Nutzer scheint die Demo wohl auch nicht ausgelegt zu sein. Ich bekomme zumindest manchmal einen 503-Error. Das ist natürlich optimal für eine Demonstration.

Und hier setzt schon der zweite Punkt an: Der Download-Button ist zwar ganz oben, jedoch in der Sidebar und nicht vom Rest des Contents abgehoben. Ich habe beispielsweise mehrere Sekunden gebraucht, bis ich den Button gefunden habe. Das klingt erst einmal nicht tragisch, macht aber trotzdem etwas aus. Das nächste Problem ist dann die Auswahl des Betriebssystems. Jedem ist klar, welches System er drauf hat, oder? Falsch. Anhand des User Agents sollte der Download für das aktuell installierte Betriebssystem deutlich hervorgehoben werden. So verhindert man, dass sich der Nutzer denkt: "Das ist mir eh zu kompliziert. Was ist überhaupt dieses GNU/Linux?"

Screen Shot 2014-05-27 at 17.30.44 Gut finde ich, dass sowohl Webserver als auch Datenbank bereits in YaCy integriert sind. Das sorgt für eine schnelle und reibungslose Installation. Dass das ganze auf localhost unter Port 8090 läuft, ist nicht gerade schön, ich bin mir allerdings nicht sicher, ob man das so einfach umgehen kann. (Kann man die hosts-Datei unter Windows einfach so erweitern? Oder nimmt man eine "Jumppage", der auf localhost:8090 weiterleitet, wenn dieser erreichbar ist?)

Pflücken wir doch mal das Interface auseinander. Die Suchmaske sieht schön und aufgeräumt aus. Bis man dann auf "Search" drückt. Die Resultate scheinen nicht im Mittelpunkt zu stehen, da der Filterbereich links sehr dominant ist. Zudem werden sie nicht übersichtlich präsentiert. Meistens erscheint nur der Seitentitel ohne einen Textausschnitt, die Keywords werden nicht hervorgehoben, das Design sieht "hingefrickelt" und überladen aus und ist allgemein nicht sehr ansprechend gestaltet. Will man eine neue Suche starten, indem man auf das YaCy-Logo oben links drückt, kommt man nicht wie erwartet auf die Eingabemaske, sondern auf die Startseite des Projekts. Dieser Link ist wohl absolut fehl am Platz.

yace

Auch die Bildersuche ist nicht sonderlich ansprechend. Man bekommt bei einem Mouseover keine weiterführenden Informationen (erst nach einem Klick - und dann auch nur unzureichend), die Navigation unten ist nicht vom Inhalt gelöst, die Bilder werden immer gestreckt und gestaucht, egal welches Format sie haben und einige Elemente überlappen andere. Es macht also nicht wirklich Spaß damit zu suchen. Mal ganz davon abgesehen, dass wohl noch keine wirklich brauchbaren Suchergebnisse erscheinen. Da es das Projekt allerdings schon seit 2005 gibt, würde ich bessere Ergebnisse erwarten.

yaceKommen wir nun zum Administrations-Interface. Auch das ist vollkommen überladen und erschlägt einen regelrecht mit Informationen. Doch darauf möchte ich hier nicht eingehen. In der Standard-Konfiguration ist YaCy so konfiguriert, dass es nur als Client arbeitet. Es verbindet sich also mit anderen Rechnern und sucht dort. Das ließe sich auch - wie vorher schon angemerkt - über eine Website realisieren. Zwar versucht die Software (vermutlich per UPnP) das benötigte Port-Forwarding zu konfigurieren, damit es auch als Server arbeiten kann, doch das ist allgemein der falsche Weg (vor allem, weil es von den meisten Heimroutern unterbunden wird). Es existieren genug alternative Konzepte, die ohne Port-Forwarding auskommen und das sollte schnellstens in YaCy implementiert werden. Das ganze bringt nunmal nichts, wenn man die User zwar Clients installieren lässt, diese aber keinen Mehrwert für die Community haben. Dann kann man gleich einen Webservice anbieten und muss den Nutzer keine Software installieren lassen.

Auch sollte YaCy mehr Wert auf den Crawler legen. Dieser springt aktuell nur an, wenn man ihm sagt "Crawle mal diese Domain". Das kann bei einer Suchmaschine nicht die einzige Möglichkeit sein. Ich verstehe, dass man bei einem Client nicht standardmäßig einen aggressiven Crawler laufen lassen kann, der das ganze Internet nach dubiosen Websites absucht, trotzdem sollte man dem User die Möglichkeit geben seinen PC als Crawler zur Verfügung zu stellen. Ich stelle mir das so vor, dass es eine globale Crawl-Liste gibt, die dann von beliebigen Clients abgearbeitet werden kann. Dort sollte auch berücksichtigt werden, dass Websites aktuell gehalten werden müssen. Momentan funktioniert das ganze nämlich eher weniger.

Mein Fazit: Die Idee ist wundervoll. Wie so oft bei Projekten, die nicht von einer Firma geleitet werden, bin ich aber von der Umsetzung enttäuscht. Auch hier kann man ganz klar die Vor- und Nachteile von Open Source sehen. Wenn YaCy erfolg haben möchte, sollten sie einige Punkte noch einmal überdenken. Natürlich habe auch ich die Weisheit nicht mit dem Löffel gegessen, trotzdem glaube ich, dass die Behebung der oben genannten Punkte das Projekt um einiges weiterbringen würden.