Archiv ‘Web’

Freitag, 16. August 2013

Ghostery: Welche Tracker sind in einer Web-Site eingebunden?

Soeben hat mich Arbeitskollege Ädu auf folgendes nützliche Tool hingewiesen:

Ghostery

Das Chrome-Add-On zeigt beim Laden einer Web-Seite, welche Tracker (hauptsächlich Werbe-Netzwerke) in die Web-Seite eingebunden sind. Erst damit wird einem bewusst, wie viele Informationen man den Tag hindurch an solche Tracker-Netzwerke übermittelt – mittels dieser Daten ein nettes Profil meiner Person erstellt werden kann.

Tags: ,
Labels: Web

1 Kommentar | neuen Kommentar verfassen

Samstag, 22. Juni 2013

Auf Twitter API 1.1 wechseln

Am 11. Juni wurden die in meinem Dashboard eingebundenen Twitter-Feeds plötzlich still. Der Grund: Twitter hat an diesem Tag API 1.0 deaktiviert und macht es seither Entwicklern und Script-Kiddies schwer, mit wenigen Zeilen Code auf öffentliche Twitter-Feeds zuzugreifen.

Wer vor dem selben Problem wie ich steht, sei hier eine kurze Anleitung präsentiert, um die Grundfunktionalität wieder online zu schalten:

Ich habe mich für die PHP-Klasse Codebird entschieden, da ich keine Lust hatte, OAuth-Requests und sonstigen Firlefanz auf eigene Faust zu programmieren.

Zuerst eröffnet man über den offiziellen Entwicklungsbereich mit dem persönlichen Twitter-Konto eine neue Twitter-Applikation. Wichtig ist, dass man sich den Consumer Key und das Consumer Secret merkt, denn diese beiden Variablen werden von der Klasse zur Kommunikation mit Twitter benötigt — authentifizieren sie doch die Applikation gegenüber dem Kurznachrichtendienst.

Nachdem man codebird.php sowie — ganz wichtig — cacert.pem in einem Unterverzeichnis des Web-Roots abgelegt hat, integriert man die Klasse in die bestehen Infrastrukutur:

        function __construct() {
            parent::__construct();
            
            require_once(dirname(__FILE__) . '/twitter/codebird.php');
            \Codebird\Codebird::setConsumerKey('AAAAAAAAAAAAAAAAAAAAA', 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAA');
            $this->cb = \Codebird\Codebird::getInstance();
        }

Als nächstes benötigt man einen sog. Bearer Token. Einmal generiert kann dieser für jeden weiteren Request an die Twitter API wiederverwendet werden — sofern man den Token nicht manuell deaktiviert. Alternativ kann man diesen Token auch bei jedem Aufruf des PHP-Scripts neu von Twitters Server abholen, was aber nicht einer guten Entwicklungspraxis (Cacheing!) entspricht.

Den Bearer Token erhält man in etwa folgendermassen:

$reply = $this->cb->oauth2_token();
$bearerToken = $reply->access_token;
\Codebird\Codebird::setBearerToken($bearerToken);

Jetzt also ist man wie mit API 1.0 in der Lage, eine simple Abfrage abzusetzen — im vorliegenden Fall rufe ich die letzten Tweets von John Gruber ab:

$this->cb->setReturnFormat(CODEBIRD_RETURNFORMAT_JSON);
$jsonData = $this->cb->statuses_userTimeline(array('screen_name' => 'daringfireball','count' => 25),true); // 'true' is needed for app only auth

Damit die Kompatibilität von bestehendem Code mit der neuen Klasse gewahrt wird, nenne ich JSON explizit als Antwortformat. Ganz wichtig ist, dass die Codebird-Methode als zweiten Paramenter true übergeben erhält — dies weist die Klasse an, die Anfrage im Kontext einer Applikation und nicht eines bestimmten Benutzers abzusetzen.

Tags: , , , , , ,
Labels: Web

Keine Kommentare | neuen Kommentar verfassen

Sonntag, 12. Mai 2013

Wetter-Icons als Web-Font in ein Dashboard einbinden

Derzeit arbeite ich mit Hochdruck an einem Dashboard, welches ich in unserer Mietwohnung in Form eines TFT-Bildschirms beim Eingangsbereich platzieren möchte. Das Dashboard basiert softwaretechnisch auf HTML, CSS, JavaScript und PHP. Es integriert gecachte HTML-Dateien, JSON-Abfragen (MEZI, Twitter) und sogar einen iCalendar.

Ein Element (resp. „Tile“) des Dashboards wird die Wettervorhersage für den morgigen Tag sein. Um nicht nur eine qualitative Beschreibung des Wetters anzuzeigen, sondern auch ein Icon, habe ich mich natürlich vom derzeitigen (technologischen wie designtechnischen) Platzhirschen forecast.io inspirieren lassen. Dessen mit HTML5-Canvas animierten Icons waren dann aber doch Overkill für mich.

Stattdessen habe ich auf die Meteocons Web-Font von Alessio Atzeni zurückgegriffen. Die Web-Font ist in der Public Domain und lässt sich somit problemlos in ein HTML5/CSS3-Web-Projekt einbinden.

Leider sind die Icons meines Wissens nicht einem standardisierten Wettertyp zugeordnet, weshalb ich dieses Mapping mittels eines PHP-Arrays von Hand nachholen musste. Das Resultat lässt sich durchaus sehen:

eMeidi.local Dashboard Weather Forecast

Tags: , , , ,
Labels: Web

3 Kommentare | neuen Kommentar verfassen

Mittwoch, 24. April 2013

WordPress verbieten, YouTube-Links automatisch einzubetten

Um zu verhindern, dass YouTube-Links in einem WordPress-Beitrag automatisch als Objekt eingebettet werden, muss man in seinem Theme in den entsprechenden Dateien des Themes (bei mir: single.php) zuoberst im PHP-Block folgenden Befehl einfügen:

...
remove_filter( 'the_content', array( $GLOBALS['wp_embed'], 'autoembed' ), 8 );
...

Tags: , , , , ,
Labels: Web

Keine Kommentare | neuen Kommentar verfassen

Freitag, 15. März 2013

Photos eines Instagram-Benutzers als RSS-Feed abonnieren

Obwohl Google seinen (RSS-)Reader bald dicht macht, heisst das noch lange nicht, dass RSS-Feeds eine überholte Technologie sind.

Wer die Photos eines Instagram-Benutzers abonnieren möchte, abonniert folgende URL:

http://ink361.com/feed/user/[instagramusername]

Tags: , , , ,
Labels: Web

1 Kommentar | neuen Kommentar verfassen

Sonntag, 10. März 2013

Web-Sites unter Mac OS X mit Internet Explorer testen

Obwohl ich kaum noch Web-Sites entwickle und seit ein, zwei Jahren auch nie mehr Web-Sites mit HTML und CSS gelayoutet habe, finde ich folgende Anleitung äusserst nützlich:

Internet Explorer for Mac the Easy Way: Run IE 7, IE8, & IE9 Free in a Virtual Machine

Zusammen mit der quelloffenen VirtualBox, welche mittlerweile Oracle gehört, und dem Shell-Script des Github-Benutzers xdissent richtet man sich unter Mac OS X oder Linux insgesamt vier Virtual Machines ein, welche Microsoft Internet Explorer 6 bis 9 bereitstellen.

Tipp: Das Passwort für die Konten Admin und Administrator lautet … Password1.

Tags: , , , ,
Labels: Web

Keine Kommentare | neuen Kommentar verfassen

Sonntag, 18. November 2012

Wenn Apple die SBB Web-Site inspiriert hätte …

Nachdem Apple bei SBB grosszügig abgekupfert hat, könnte nun die SBB mit einem Website Redesign zurückschlagen ;)

Ich persönlich finde das Design minimalistisch und sehr übersichtlich. Jedenfalls übersichtlicher, als es die aktuelle SBB Web-Site derzeit ist.

Notiz am Rande: Der Designer arbeitet bei Namics, der Web-Agentur, welche sich — neben anderen — für die überarbeitete SBB Web-Site verantwortlich zeichnet.

Tags: , ,
Labels: Web

Keine Kommentare | neuen Kommentar verfassen

Montag, 29. Oktober 2012

MySQL, das Windows unter den Datenbanken

Obwohl ich seit 12 Jahren mit dieser Datenbank arbeite, habe ich mir noch nie Gedanken darüber gemacht, wie unkonform MySQL mit Daten umgeht:

Via: PostgreSQL Rising

Trotz all seinen Fehlern: MySQL reicht für die Bedürfnisse von mindestens 80 Prozent seiner Benutzer. Normalerweise verfrachte ich die Prüfhandlungen und die Logik in PHP-Scripte und verwende MySQL als „dummen“ Datenspeicher. Doch in einigen Fällen habe ich mir doch einige MySQL-Funktionen und Feld-Attribute zu nutzen gemacht, um Fehleingaben auch auf Datenbankebene zu verhindern. Denn die Datenbank ist nun mal das letzte Bollwerk vor dem Datensalat.

PS: Wenn man schon den unangefochtenen Platzhirschen im Linux Shared Hosting-Bereich madig machen will, sollte man auf Comic Sans als Schrift verzichten. Helvetica oder Helvetica Neue gäbe dem Video mehr Seriosität.

Tags: , , ,
Labels: Web

Keine Kommentare | neuen Kommentar verfassen

Donnerstag, 18. Oktober 2012

Mit curl eine fortlaufend nummerierte Reihe von Photos in Gallery 2 herunterladen

Nichts leichter als das. Man öffne die Detailansicht des ersten Photos in Gallery 2, notiere sich den Wert der Variable und kopiere die URL. Dasselbe tut man für das letzte Photo des Albums.

Die URL und die zwei Zahlen fügt man in folgenden Kommandozeilenbefehl ein:

curl -f "http://domain.tld/main.php?g2_view=core.DownloadItem&g2_itemId=[39169-39632]&g2_serialNumber=2" -o "#1.jpg"

Erläuterung der Optionen:

  • -f verhindert, dass HTTP-Fehlermeldungen auch als Dateien gespeichert werden — denn es könnte ja sein, dass die Sequenz nicht durchlaufend ist.
  • [39169-39632] definiert den Anfangs und den Endwert der Sequenznummern von Gallery 2
  • -o Speichert die Rückmeldung des Web-Servers in eine Datei und gibt sie nicht auf im Shell aus
  • #1 ist die fortlaufende Nummer. So werden mit -o Dateien mit eindeutigen Dateinamen geschrieben

Quelle: trying to use curl to download a series of files

Tags: , , , , ,
Labels: Web

Keine Kommentare | neuen Kommentar verfassen

Montag, 10. September 2012

Wann kriegt sbb.ch eine Login-Möglichkeit auf der Homepage?!

Leute, die wie ich berufshalber sehr viel mit der Bahn unterwegs sind und die Spesen intern mit (dank der SBB iPhone Applikation mittels digitalen PDF-) Quittungen belegen müssen, kämpfen seit dem Relaunch der SBB Web-Site im Mai 2011 mit demselben Problem:

Wieso kann ich mich nicht auf der Homepage in mySBB einloggen, gopferdelli nomau? Und das im Zeitalter von Facebook & Co., wo man sich unpersonalisierte Web-Sites kaum mehr vorstellen kann.

Mein Workaround sieht derzeit so aus, dass ich den Fahrplan zu einer beliebigen Strecke suche, dann auf den Knopf „Preis/Kauf“ klicke, um dann unten in der SBB-Toolbar endlich die schwarze Box mit dem Titel „Login“ zu erblicken.

Da haben sich die schweizerischen Web-Platzhirsche namics AG und Unic AG einen richtig grossen Bock geschossen — man könnte meinen, dass in diesen Firmen keine Zugfahrende und auch keine Usability-Spezialisten arbeiten — ansonsten würde einem nämlich diese Login-Box auf jeder noch so unspektakulären Seite des Web-Angebots der Bundesbahnen anstrahlen.

Ich hoffe nun, dass es nicht wieder unzählige Jahre dauert, bis der Misstand anlässlich eines weiteren Redesigns behoben wird.

Tags: , , ,
Labels: Web

4 Kommentare | neuen Kommentar verfassen