Sep
21
2008

Ad-Blocking auf die billige Tour

Mittlerweile gibt es auch für den Safari-Browser von Apple ein AdBlock-Plugin, aber irgendwie blockt mir das zu wenig.

Früher habe ich das mal anders gemacht. Seit vorgestern mache ich es wieder wie damals:

Auf so ziemlich allen unixoiden Systemen existiert die Datei /etc/hosts. Wenn man eine URL in den Browser eingibt oder irgendein Programm sich zu einem Domain-Namen verbindet, dann schaut das Betriebssystem zunächst in die Datei /etc/hosts, vergleicht den Domain-Namen und wenn er dort steht, dann wird die dazugehörige IP-Adresse zurückgegeben. Wenn dort nichts von dieser Domain steht, dann werden der Reihe nach die Nameserver abgefragt, die in der Datei /etc/resolv.conf aufgelistet sind. Das ist naturgemäß langsamer. Allerdings haben manche Browser einen eigenen DNS-Cache. Bei Firefox bin ich mir da sicher, bei anderen Browsern bin ich mir wiederum nicht sicher. 

Ich habe mal gehört, dass es unter Windows auch so eine Datei geben soll. Aber da ich in diesem Artikel ein Bash-Script vorstelle, das sicher nicht einmal von diesem neumodischen Windows Powershell-Schwachsinn unterstützt wird, können Windows-Benutzer hier praktisch schon aufhören, mitzulesen.

In die /etc/hosts schreibt man also IP-Adressen und Hostnamen rein, die man miteinander assoziiert haben will. Das kann verschiedene Zwecke haben:

1.) Man will die anderen Computerbenutzer ärgern. Man kann beispielsweise DNS-Anfragen nach microsoft.de auf apple.de umleiten. Dazu einfach eine Zeile zur /etc/hosts zufügen: “17.149.160.31 microsoft.de”, wobei die Nummern da Apples IP-Adresse darstellen.

2.) Man will gewisse Seitenaufrufe beschleunigen. (Wenn der Browser einen eigenen DNS-Cache hat, bringt das hier nichts) Oft aufgerufene Domains kann man hier also statisch eingeben und schon läuft alles schneller, vor allem wenn von der gleichen Domain viele Dateien pro Seite geladen werden.

3.) Man hat keine Lust, zuhause immer “192.168.1.1″ im Browser einzugeben, wenn man auf seinen Router zugreifen will. Also assoziiert man einfach ein Kürzel damit, indem man eine Zeile an die /etc/hosts anfügt: “192.168.1.1 router”. Und man kann sofort über “router” auf den Router zugreifen, anstatt umständlich die IP einzugeben. Das mache ich auch mit meinem gejailbreakten iPod so, wenn ich per SSH drauf will, weil ich seine IP ständig vergesse.

 4.) Man will Werbeseiten blocken, und darum geht es in diesem Artikel eigentlich: Viele Server im Internet würde man gerne komplett blockieren, denn von denen bekommt man immer nur Werbung und nichts anderes zu sehen. Diese Domains kann man mit der /etc/hosts-Methode einfach auf Localhost (127.0.0.1) umleiten und schon kommen dort nie HTTP-Requests nach Werbebildchen an, also kommen auch keine nervigen Werbebildchen, Javascripts oder sonstwas zurück. Perfekt!

Aber es gibt so viele Werbeserver. Alle per Hand einfügen? NEE!

Es gibt eine ständig gepflegte Liste an nervigen Werbeservern im Internet auf http://pgl.yoyo.org/adservers/. Das tolle an dieser Liste ist, dass man sie in den verschiedensten Formaten anfordern kann, so dass man auch verschiedene Werbeblocker damit füttern kann. Im /etc/hosts-Format bekommt man sie praktischerweise auch.

Und damit man möglichst kaum Hand anlegen muss, kann man sich das alles schön automatisieren.

Zunächst sollte man sich eine Datei anlegen, die eine “nackte” /etc/hosts Datei repräsentiert. Also so wie man sie normal hat, ohne dass Werbeserver eingetragen sind. Ich habe meine einfach mal /etc/hosts.bak genannt. Wenn man sowieso noch keine Werbeserver eingetragen hat, gibt man einfach in die Konsole ein (Der folgende Befehl kopiert die bestehende Datei einfach):

sudo cp /etc/hosts /etc/hosts.bak

Und als nächstes schreibt man sich ein kleines Script zusammen:

#!/bin/sh
echo "Updating adserver list..."
sudo cp /etc/hosts.bak /etc/hosts
curl "http://pgl.yoyo.org/\
adservers/serverlist.php?\
hostformat=hosts&showintro=0&\
startdate%5Bday%5D=&startdate%5B\
month%5D=&startdate%5Byear%5D=&\
mimetype=plaintext"\
| sudo tee -a /etc/hosts >& /dev/null
echo "Done. Have fun!"

Diesen Bash-Code kann man jetzt einfach per Texteditor unter /usr/bin/adblockrefresh abspeichern und mittels “chmod +x /usr/bin/adblockrefresh” ausführbar machen (Das sollte mit Root-Rechten geschehen, sonst klappt’s nicht!). Ein kleiner Aufruf von “adblockrefresh” in der Konsole macht jetzt die ganze Arbeit.

Werbeserver sind jetzt auf dem gesamten System blockiert. Für jeden Browser, für jedes Programm. Browser mit DNS-Cache sollte man vielleicht mal neu starten.

War Adblocking jemals einfacher? Jedenfalls muss ich jetzt nicht mehr diese verdammt nervige Javascript-Werbung wegklicken, bevor ich serienjunkies.org betreten kann.

4 Kommentare
Written by Jacek in: Computerstuff | Schlagwörter:, , , , , , ,
Sep
19
2008

IKEA Spöka Hack

Ich hatte einfach Lust auf interessante Basteleien. Und als ich letztens mit meiner Freundin in Heerlen bei IKEA war, sah ich im Regal diese kleinen Spöka Leuchtgeister.

Sie werden mit einem 5V-Netzteil betrieben und haben blaue, rote, bzw. grüne LEDs eingebaut. Mein Geist hat blaue eingebaut. Bei den fünf Volt musste ich sofort an Mikrocontroller denken.

Wenn man beim Ausprobieren bei IKEA mit dem Geist herumspielt und aus Versehen das Stromkabel dabei herauszieht, dann stellt man allerdings fest, dass der Geist weiter leuchtet. Das bedeutet, dass da ein Akku eingebaut ist. Und das wiederum bedeutet, dass der wohl weniger als fünf Volt liefern wird. Und das wiederum könnte bedeuten, dass man damit keinen Mikrocontroller betreiben kann, wenn man nicht noch Zusatzschaltungen davor baut.

Die Idee mit dem Mikrocontroller habe ich erstmal wieder verworfen, seit ich das Gespenst mal auseinandergenommen habe und nachgemessen habe, dass 3,5 Volt bei den LEDs ankommen. Aber ich weiß ja noch, dass man NE555 Chips problemlos mit so einer niedrigen Spannung betreiben kann. Und von irgendwo wusste ich noch, dass man mit mehreren NE555 Chips in Kombination einen Flacker-Effekt in Verbindung mit Lichtern erzeugen kann. 

“Also wie macht man das nun?” – Man kann NE555 Chips dazu benutzen, um Rechteck-Spannungen zu erzeugen. An, aus, an, aus, an, aus, [...] und so weiter. Je nach dem mit welchen Widerständen und Kondensatoren man sie verbindet, verändert sich die Phasenlänge dieser Rechteckspannung. Wenn man jetzt aber mehrere Phasen von mehreren NE555s mit verschiedenen Phasenlängen übereinander lagert, dann bekommt man ein Signal, welches ziemlich chaotisch/zufällig für den menschlichen Betrachter aussieht, weil er die verschiedenen Phasenlängen nicht daraus ablesen kann. Vor allem dann nicht, wenn er nicht weiß, um wie viele verschiedene Signale es sich handelt. In einem Funktionsplotter kann das so aussehen:

Wenn man die LEDs, die in diesem Geist ständig leuchten, nun über einen PNP-Transistor versorgt, der dann also nur durchsteuert und leuchten lässt, wenn das Signal seine Basis auf Masse zieht und man das auch noch mit einem Kondensator glättet, dann kann das aussehen, wie das Flackern einer echten Kerze bei ein wenig Zugluft!

Okay, klingt gut. Ab in die Welt der Praxis. Beim Recherchieren im Internet habe ich von einem IC namens NE556 gelesen, welcher etwas größer ist, als ein NE555, dafür aber zwei NE555 beherbergt. Ich habe mich für zwei dieser NE556 entschieden, weil das die Schaltung kleiner macht.

Der fertige Schaltplan:

Die Pinbelegung des NE556 sieht folgendermaßen aus:

Im Prinzip lässt er sich anschließen, wie zwei NE555. Auf der linken Seite die Anschlüsse für den ersten Taktgeber, auf der rechten Seite die Anschlüsse für den zweiten. Die Versorgungsspannung muss man nur einmal anschließen. Beide arbeiten völlig autonom.

Die Konstruktion der Schaltung auf dem Steckbrett verlief schön unkompliziert. Da ich keine Ahnung hatte, wie groß ich die Ladewiderstände und die Kondensatoren wählen musste, konnte ich so schön herumexperimentieren.

Die Schaltung verbraucht so sogar weniger Strom, als sie es vorher tat. Aus den 6 Stunden Original-Akkulaufzeit könnten so durchaus ein wenig mehr werden.

Nach einigem an Testerei lieferten die Bausteine endlich das richtige Signal, so dass das Flackern hinreichend natürlich aussah.

Nun sollte also die Lötarbeit folgen. Problematisch ist der geringe Platz im Inneren des Plastikgehäuses. Die Haltestege habe ich innen einfach abgeschnitten, um mehr Platz zu haben. 

Die Begriffe “Lochraster” und “wenig Platz” versprechen fast schon per Definition ein kleines Chaos. Ich war sehr froh, dass alles nach dem Zusammenlöten sofort perfekt funktionierte – denn wenn jetzt noch etwas fehlerhaft wäre, dann hätte es ewig gedauert, wieder verstehen zu können, welches Bauteil was macht. Das Anordnungslayout der Bauteile war ehrlich gesagt ein bisschen gefreestyled.

 

 

 

Der Zusammenbau stellte sich dann als eine sehr enge Nummer heraus, aber die Schaltung ist schön robust geraten, so dass ein bisschen Gewalt der Funktion nicht schadete…

Da zwei Drittel der Haltestege nun fehlten, musste nun Tesafilm von außen herhalten. Diese Methode hält alles schön fest zusammen und man sieht davon nicht das Geringste.

 

 

Zusammengebaut ist das Ganze ja schon verschenk-fertig! Hier ein Video vom Endprodukt:

5 Kommentare
Written by Jacek in: Elektronik | Schlagwörter:, , , ,
Sep
18
2008

Elektronikladen mal in angenehm

Wenn man hobbymäßig mit Elektronik herumbastelt, dann muss man auch ab und zu mal Kram wie Widerstände, Kondensatoren, Transistoren, Litze, Lötzinn, Platinen und so weiter kaufen.

In Köln kannte ich da nur CONRAD als Bezugsquelle. Früher war der in der Innenstadt und man musste eine halbe Stunde lang mit der Bahn dort hin fahren, die sich auch ständig verspätete. Mittlerweile wurde denen aber der Mietvertrag gekündigt, weshalb die nun etwas weiter außerhalb Kölns sind. Mit der Bahn kommt man dort nur noch sehr umständlich hin, zum Fahrrad fahren ist es im Winter etwas zu weit und deshalb ist die einzige wirklich praktikable Möglichkeit, dort hin zu gelangen, das Auto. Zu der Zeit, zu der ich die letzten paar Male dort hin gefahren bin, war ich Zivi, bzw. später habe ich für eine Firma im Kölner Süden programmiert (in der ich den Kickertisch aufgemotzt habe), was wiederum bedeutet, dass ich dort nur während der Berufsverkehr-Zeiten hinkam. Ein paar Bauteile einkaufen dauerte so zwei Stunden.

Doch damit nicht genug: An der Elektrotheke beim CONRAD ist es immer total voll. Hier ist Zettelchen ziehen angesagt, so wie man das auch beim Amt machen muss. Und wehe man schaut sich beim Warten ein wenig zwischen den Regalen um. Wenn die Nummer auf dem Display steht, die auch auf dem Zettelchen prangt und man sich nur drei Sekunden lang nicht meldet, ist sofort der nächste Wartende dran.

Ist man erstmal dran und gibt seine Liste an Bauteilen ab, auf der steht, was man denn nun kaufen möchte, dann wird man erstmal auf recht zickige Art und Weise darauf aufmerksam gemacht, dass man nächstes Mal gefälligst die Artikelnummern aufschreiben soll, anstatt die Bauteile direkt anzugeben. Da die Angestellten dort scheinbar nur über die Artikelnummern an die Regalnummer kommen, in der die Teile gelagert sind, dauert es deshalb immer ziemlich lange. Aber die Artikelnummern zuhause aus dem Katalog herauszufinden dauert manchmal auch ziemlich lange. Und man findet fast nie alle. 

Nach ewiger Warterei beim Warten bis man dran kommt und beim Warten bis man alle Teile hat – wobei man auch nur selten nachfragen darf, welche Variante eines Bauteils sich denn besser für einen bestimmten Einsatzzweck eignet – bekommt man alle Bauteile eingetütet und zusammen mit der Preisliste in eine Plastikbox gesteckt und geht damit an die Kasse. Auf dem Weg zur Kasse sieht man dann wie schrecklich teuer der ganze Kleinmist in der Summe ist.

Die Sonne ist längst untergegangen, wenn man endlich anfangen kann zu basteln.

Aber hier in Aachen ist alles anders. Beim Busfahren im Frühjahr habe ich einen Laden namens “TH-Electronic” entdeckt. Allerdings kaufe ich dort erst seit wenigen Wochen regelmäßig ein.

Hier ist alles anders als bei CONRAD. Der Laden ist sehr klein und persönlich. Hier arbeiten höchstens zwei Menschen gleichzeitig und ich musste fast noch nie warten.

Wenn man Bauteile bestellt, schreibt man direkt die Bauteile auf, kann sich eventuell Alternativbauteile zeigen lassen und die Eigenschaften in der Praxis erfragen, weil die Verkäufer sich damit auskennen und niemand schaut einen böse an, weil man etwas über die Bauteile, die man da gerade kauft, wissen will.

Ich wollte beim letzten Einkauf nicht um den Preis herumfeilschen, aber per Missverständnis kam das beim Verkäufer so an. Er war prinzipiell bereit dazu. Sowas geht bei CONRAD nicht. Und wenn die ein Bauteil nicht haben, dann heißt es nicht “gibt’s bei uns grad nicht”, sondern “können wir bis übermorgen hier haben”.

Vorhin beim Bezahlen wurde ich gefragt “Sind Sie Student?”. Ich dachte das ist eher eine Interessenfrage, aber als ich bestätigend antwortete, drückte der Verkäufer auf einen Knopf am Kassencomputer, der Preis sank und er sagte grinsend “Studenten haben bei uns 10% Rabatt! Erwähnen Sie in Zukunft beim Einkaufen, dass Sie studieren.”

Bam. Ich bin ab heute Stammkunde dort.

5 Kommentare
Written by Jacek in: Elektronik | Schlagwörter:, , , , ,

Powered by WordPress. Theme: TheBuckmaker. Darlehen, Geld verdienen

3.14159