Switching OpenID providers through delegation

Back in the days, when I decided to join StackOverflow, I was forced to create an OpenID – because this is the way to login on StackOverflow.

I decided to use an independent OpenID provider, called myOpenID. I also set up OpenID delegation. This way I could use my own domain name as my OpenID. (OpenID uses URLs as user names, like http://manski.net.)

Now, myOpenID is shutting down on Feburary 1, 2014. Thus, I had to switch my OpenID provider.

Fortunately, OpenID delegation makes this easy – you just replace the two delegation <link> tags and you’re done.

Unfortunately, not all OpenID providers seem to support this. I tried Google (which should work according to this), but StackOverflow always wanted to create a new account for me. (May also be StackOverflow’s fault, I don’t know.)

Fortunately, StackOverflow provides its own OpenID service:

https://openid.stackexchange.com/

So I created a new OpenID there, replaced the <link> tags (details), done. Works like a charm.

Sort posts by modification date in WordPress

By default, WordPress sorts blog posts by creation date. However, if you update your blog posts from time to time, you may want to sort them by modification date rather than creation date.

To achieve this, use this snippet:

function order_posts_by_mod_date($orderby) {
  if  (is_home() || is_archive() || is_feed()) {
    $orderby = "post_modified_gmt DESC";
  }

  return $orderby;
}

add_filter('posts_orderby', 'order_posts_by_mod_date', 999);

In your theme, just dump this snippet into functions.php. (You may need to create this file in your theme’s directory.)

Upload arbitrary files to WordPress (new plugin)

WordPress is very restrictive when it comes to file uploads. It’s for security reasons, mainly to prevent bad-behaving users to upload PHP scripts and the like to the blog.

However, if you’re the only one writing posts for your blog, this restriction sometimes is annoying. For example, I do a lot coding in C#. So, when I try to upload a .cs file (C# source code file) to my blog, the upload is rejected.

Wordpress rejected upload with "Sorry, this file type is not permitted for security reasons."

Files are approved or rejected based on their file extension, i.e. the few characters after the dot in the file name, like cs in ArrayClearTest.cs.

WordPress maintains an internal list of which file extensions are allowed. Fortunately, WordPress also allows for this list to be extended.

And that’s what my new WordPress plugin does. It’s called Upload File Type Settings Plugin and allows you to extend that list with an easy-to-use user interface. Go, give it a try.

The plugin's settings page.

Firefox WebDeveloper-Profil

Neben den Add-ons für den täglichen Bedarf bietet Firefox auch zahlreiche Add-ons, die speziell für Webentwickler nützlich sind, allen vorran: Firebug.

Neues Firefox-Profil anlegen

Da man aber meistens diese Add-ons nicht während normaler Surfsitzungen benötigt, empfiehlt es sich, extra für die Web-Entwicklung ein eigenes Firefox-Profil anzulegen.

Zunächst führt man folgenden Befehl aus (ohne “no-remote” müssen vorher alle Browser-Fenster geschlossen werden):

  • Windows: "c:\Programme\Mozilla Firefox\firefox.exe" -no-remote -P
  • Linux: firefox -no-remote -ProfileManager
  • MacOSX: /Applications/firefox.app/Contents/MacOS/firefox -no-remote -P

Firefox Profilmanager

Hiermit erstellt man ein neues Profil (im Folgenden nenne ich es “WebDev”) über “Profil erstellen” und beendet dann den Profilmanager.

Hinweis: Es empfiehlt sich, die Option “Beim Starten nicht nachfragen” aktiviert zu lassen und stattdessen eine Verknüpfung (o.ä. unter Nicht-Windows-Betriebssystemen) für das Profil zu erstellen.

Um Firefox jetzt mit dem neuen Profil zu starten, ruft man Firefox wie oben auf, nur dass man jetzt noch zusätzlich den Profilnamen spezifiziert. Unter Windows sähe der Aufruf dann z. B. so aus:

"c:\Programme\Mozilla Firefox\firefox.exe" -no-remote –P "WebDev"

Für weitere Informationen und Problemlösungshilfen, siehe hier.

Hinweis: Es empfiehlt sich evtl., das Icon für die Verknüpfung auszutauschen. Ich verwende hierfür dieses Iconset.

Web-Entwickler Add-ons

Im Folgenden findet sich eine Liste aller Firefox-Addons, die ich speziell in dem Web-Entwickler-Profil verwende.

  • Firebug: Schlechthin das Add-on für Web-Entwickler. Bietet u.a. die Möglichkeit, sich den momentan angezeigten DOM-Baum und für jeden Knoten dessen CSS anzusehen. Es gibt sogar noch Add-ons für Firebug (sog. Add-on Add-ons ).
    • Page Speed: Analysiert eine Seite und gibt Vorschläge, wie deren Geschwindigkeit verbessert werden kann. (Im Gegensatz zu YSlow funktionierte dieses Add-on bei mir auf anhieb. YSlow konnte ich nicht zum Laufen brignen.)
    • Firecookie: Zeigt die Cookies und deren Werte an, die zur momentan angezeigten Seite gehören.
    • SenSEO: Zeigt ein paar Hinweis zur Suchmaschinenoptimierung der aktuellen Seite an.
    • CodeBurner: Zeigt für HTML-Tags und CSS-Attribute an, von welchen Browsern diese wie unterstützt werden. Dazu muss entweder ein Element im Tab “HTML” oder “CSS” rechtsangeklickt und dann “Look up …” gewählt werden – oder man klickt (nachdem man ein mal auf den HTML-Tab geklickt hat) auf den Tab “Reference”.
  • Web Developer Toolbar: Eine Toolbar mit diversen, nützlichen Werkzeugen.
  • JSView: Bietet einen Toolbar knopf, mit dem man sich schnell die CSS- und JS-Datei, die zur momentan angezeigten Seite gehören, anzeigen lassen kann.
  • MeasureIt: Bietet die schnelle Möglichkeit, die Größe von Elementen auf der Seite auszumessen. Das “Maßband” wird über einen Knopf unten links in der Statusleiste aktiviert.
  • ColorZilla: Bietet eine Pipette zum Ermitteln eines Farbwerts auf einer Webseite. Wird genau wie MeasureIt in der Statuszeile aktiviert.
  • IE Tab (nur Windows): Zeigt im Firefox auf Wunsch die aktuelle Seite mit der Internet-Explorer-Engine an. Nützlich für’s Testen der Seite.
  • FireShot: Erzeugt Screenshots der Seite, die gerade betrachtet wird. Außerdem können dieses Screenshots dann mit Anmerkungen versehen werden.

Dazu kommen noch die obligatorischen Add-ons:

Facebook-Chat in externem Instant Messenger

Facebook unterstützt seit kurzem das offene Instant Messenger Protokoll XMPP (a.k.a. Jabber). Damit kann man seinen Facebook-Chat in jedem IM einbinden, der XMPP unterstützt – ohne dass man dafür ein spezielles Facebook-Plugin benötigt. Ein Beispiel für einen solchen IM ist Pidgin (Windows, Linux) bzw. Adium (MacOSX).

Im Folgenden gibt es eine kurze Erklärung, wie du Facebook-XMPP in deinem bevorzugten IM einrichtest.

Zunächst muss man seinen Facebook-Benutzernamen rausfinden. Das ist nicht die E-Mail-Adresse, mit der man sich üblicherweise bei Facebook anmeldet. Stattdessen findet man ihn in Facebook unter Konto > Kontoeinstellungen > Nutzername.

Nutzername im Facebook Profil

Diesen verwendet man dann beim Erstellen des XMPP-Kontos im IM:

  • Benutzer: dein Facebook-Nutzername (wie eben ermittelt)
  • Domain: chat.facebook.com
  • Passwort: dein Facebook-Passwort
  • SSL muss deaktiviert werden (bei Pidgin unter Erweitert > SSL/TLS voraussetzen)

Danach erscheinen alle Facebook-Freunde in der Kontaktliste.

Gegenüber einem “normalen” XMPP-Server gibt es jedoch einige Einschränkungen. Insbesondere können von anderen XMPP-Servern keine Nachrichten an den Facebook-Account gesendet werden und es können über den IM weder Kontakte zum Facebook-Account hinzugefügt noch entfernt werden, da die Kontakte auf den Freundschaften in Facebook basieren.