How to style the WordPress Jetpack Twitter Widget

On millions of WordPress sites running the latest twentytwelve theme and automattic’s Jetpack the Twitter widget looks extremely crappy, just surf around:


… because nobody wants to spend the 5 minutes it takes to style it … so … I took 5 minutes for the widget in my sidebar because it irritated me:


I do realize that it needs a lot more finishing and that the UTF8 symbols are not supported on a lot of devices … but … for the 1 visitor a day on my blog… do I care enough to spend more time?

Here is the CSS code, if you have some time to style this better, please add the link to your improvements in the comments :)

.widget_twitter {-moz-border-radius:10px;border-radius:10px;border: solid 2px #ccc;padding:4px;background-color:#00acee;color:#fff;}
.widget_twitter ul.tweets li,  .widget_twitter ul.tweets li a {border-bottom:dashed 1px #fff;font-size:12px;margin-bottom:0px;color:#fff;text-decoration:none;}
.widget_twitter h3,.widget_twitter h3 a
.widget_twitter h3 a:before {content: url('');}
.widget_twitter h3 a:after {content:' \2669 \266A \266B \266C';}

My new url shortener:

Ik heb ingesteld als mijn nieuwe url shortener, eerst even testen voor wat eigen websites en dan maar eens in de grote open spam wereld gooien. Wellicht dat ik hem daana koppel aan een revenue sharing model o.i.d. nog even over nadenken (met flippa in het achterhoofd). Edje… daar hoort eigenlijk een cartoon figuur bij, eens even denken over de front-end.


Bijkomstig handig is wat extra informatie die ik in mijn eigen environment verkrijg rondom clicks e.d. e.g. bovenstaande tweet van pakweg 5 minuten geleden is nu 20 keren gebruikt (ongetwijfeld door bots) (@todo plugin voor filteren bots e.d.) (then again, die informatie zou ook via publieke shorteners op te halen zijn, maar het zit in mijn eigen database). Grappig is dat door de auto-tweet functie elk edje ook een tweetje is, in dit geval:



Ik kan nu ook een setje bedenken van handige korte urls e.g. of

How to use the Alexa Top 1M domain list for analysis

If you want to do some basic analytics on domain names e.g. the amount of popular domains sorted by country domain, here is how to create such an overview:

1. Download the top 1.000.000 sites .csv from Alexa:, they sold this list in the past but some years ago they gave it for free. For production uses you would probably use the Alexa webservices on Amazon to give you real time information.

2. This csv file contains domains in the form of e.g. “” along with their ranking, you can easily import this in e.g. a sqlite database using e.g. the firefox sqlite plugin (or the sqlite commandline plugin) (or with the pro version of dbvisualizer) (etc).


3. If you now want to match this against an existing set of url’s e.g. in a set of bookmarks you will have to figure out what is “top level” and what is not because if you have a bookmark you would use

 parse_url($bookmarkurl, PHP_URL_HOST) 

to get the host and will get

But… in Alexa you would want to match this with “” not “apps.” (otherwise it can not be matched). The problem here is how you would know that “apps.” would have to be stripped since in e.g. “” you would have to strip it in another place. This is an unsolvable problem: you will need to have a list of all country level domains.

So… to make this match there are several alternatives but most famous is the effective_tld_names list : (public suffix list)


Which is used e.g. in Firefox, Opera and Chrome

For PHP there is an existing class by the you can reuse to get the solution which you can include in a /lib.

4. You then simply use

 $registeredDomain = getRegisteredDomain($base_href_host, $tldTree); 

($tldTree is given bij DKIM-reputation as a global array which you can pass to a constructor and $base_href_host is the PHP_URL_HOST).

5. And next you can add two columns in your SqlLite table: the registered domain and the country level part (filled by a sql update run using the registeredDomain here above).

6. Based on this table you can now run lots of analytics on the top 1.000.000 domain names, you can even add new meta information to your own bookmarks collection.

However please note:

- Alexa gives you only the top level registed domain, so e.g. you can not distinguish between popularity of and : these will both the general  facebook rank. What happens in this case is actually that facebook acts as a further domain hierarchie: you will have to make a list of those kinds of sites and will have to further give popularity scores based on statistics in e.g., or blog platforms on its individual members. I have not seen yet a list of domains which you have to “take out of this Alexa list to analyze further” (someone out there probably has done this already but I have not found it yet). Basically these sites acts as N-level domain and should be put under its own catgegory not under .com.
If such a list has really not been created by anyone else (which I doubt) I will add some GPL project on e.g. Google Code with at least a good start of these types of N level registers.

- If you want to add whois records information maybe the is also handy for you

Gratis hosting die iedereen zou moeten nemen

Nog een hosting tip(je): sinds 2006 heb ik al een hosting account bij Dreamhost. Ik probeer even geen “reclame posting” te schrijven maar meer een echte tip. Ik ben echter niet een meester in het overtuigen :) Ik geef ook wat dreamhost discount codes.

Dreamhost is een van de grootste hosting partijen ter wereld en als iemand als ik sinds 2006 lid blijft (gratis) en dan na 6 jaar nog steeds een post schrijft dat hij het fijn vindt om daar een hosting account te hebben…, kijk maar wat je er mee doet.

Ik gebruik het niet voor primary hosting maar wel voor allerlei dingetjes die ik online wil hebben: development sites, mail server, jabber server, svn server  enz… Je krijgt oneindige disk ruimte (dus ik sync hier ook elke dag automatisch de fotos op mijn NAS naar toe), oneindige band breedte, oneindige hoeveelheid database en gewoon ssh / ftp toegang e.d. Je hebt een hele batch goodies zoals svn server instellen, jabber server instellen, webdav instellen, discussie lijsten, cron job instellen, een hele zooi one-click installs, uitgebreid domain management en enz… je kunt een paar weken zoet zijn met het doorlopen van het control panel.

Even heel praktisch wat zaken wat ik er heb draaien: Continue reading Gratis hosting die iedereen zou moeten nemen

SUNAVI Navigation software Maps Software

I bought a new phone recently and on it was some navigation software from Sunavi. Actually, I do not expect to use it much, but then again… It looks nice but unfortunately the only maps that were installed were  “British”, “France”, “Italy”, “Portugal” and “Spain” and obviously I live in the Netherlands.

After some searching I first tried the main home page of the supplier of the GPS Software, ““, but it looked a bit disappointing. There are more spelling mistakes on this website than I have ever seen before and although the main website promises access to all downloads for free once you register for the forums… the download area is empty and the forum contains 11 postings of people looking for a map…


So that got me even more interested :)

When I look on the storage media itself I find the folder \SunaviMapData\MAPS and in it  are (1) the maps (.DB files), (2) Signature files containing some kind of hashed key and (3) “” + excel file that is probably used to to generate the file.


Editing the MultiMap.Tab file is not much of a problem, I can just uncomment the #OPTION for the Netherlands :


The DB file for the Netherlands I could find via a forum I found on the Internet: but… I don’t know if these match my version of the software.

But… now I still need the NETHERLANDS_HUAJING-CHINA.SIG file to make it work and that is a bit of a problem: how do I get the signature file?

Let’s mail Sunavi first before I start creating sig files.

update 1:

I got the following reply from the mailserver of the company :


Hi. This is the qmail-send program at

I’m afraid I wasn’t able to deliver your message to the following addresses.
This is a permanent error; I’ve given up. Sorry it didn’t work out.
Recipient’s mailbox is full, message returned to sender. (#5.2.2)

New version of WordPress Favicons !

I just released Wp Favicons 0.6.3. I added some client-side xmlrpc transient caching (default 1 hour) and optimized the http requests throttle to no longer do datetime comparisons on the database but in the code.

Try it out and let me know what you think.

what is it?

The wp favicons plugin shows “favicons” in front of all your outgoing links.

It consists of a server which you turn on on a more heavy central wp install and a client which you can turn on on all your clients.

The clients will send to the server a bit of html and the server will return that same bit of html BUT with the icons inserted.

If you have only 1 wp install you can activate both server and client on the same wp install.

If I find the time I will update the documentation both in the code and inline and add some internationalization in the next release.






Amber Alert WordPress Plugin (Nederland)


AMBER Alert is het landelijke waarschuwingssysteem bij urgente kindervermissingen en – ontvoeringen. Hiermee kan de politie bij de ontvoering of vermissing van een kind direct heel Nederland waarschuwen – via PC- en TV-schermen, websites, e-mail, SMS, Twitter, TV en radio. Zo kan de kans op een goede afloop enorm worden vergroot.

Een tijdje geleden blogde ik al hierover.

Als je een website hebt kun je een klein stukje code op je site plaatsen dat slechts enkele keren per jaar een popup laat zien zodat we met zijn allen kunnen meehelpen. De rest van het jaar zie je “niets”.

Maar… omdat het onder WordPress toch handiger is om daarvoor een plugin te gebruiken (zeker als je veel sites hebt), dacht ik: laten we er even een maken als give-back. Er bestaat al een ticker  maar die laat constant een link + radio button zien en bestaat eigenlijk uit niets meer dan een stukje javascript code.

De WordPress Plugin

imageDit hoeft niet veel tijd te kosten, ik hoop dat je hem hierna ook installeert op je WordPress site.

9:42 maak nieuw php eclipse project “amberalert”
9:46 maak plugin file amberalert.php
9:47 registreer plugin op
10:00 voeg readme.txt toe
<andere dingen moeten ook gebeuren>
15:00 hergebruik code, hmm… voeg uid optie toe
15:30 wat code toegevoegd, unit test, versie 0.0.1
16:20 zojuist de SVN access gekregen en geuploaded.
Tijd voor koffie!


Hoe werkt het?

1.  ga dan naar: (of zoek simpelweg in WordPress > Plugins naar amber alert) en installeer de plugin.

2. activeer de plugin (zoals altijd)

3. klaar!

Je krijgt nu een paar keer per jaar de popup te zien


1. Ik heb ook de RSS widget toegevoegd zodat je die ook kunt slepen naar je sidebar, je kunt dan een icoontje kiezen uit  verschillende maten. Let op: als je de widget gebruikt hoeft je niet meer de popup “automatisch” te tonen, dus dat kan dan uit. Je vindt het widget onder Appearance > Widgets …

2. De official code generator genereert nog een UID, waarschijnlijk om je site uniek te identificeren. Onder “Amber Alert” >  Opties kun je die unieke UID pasten.

Nog meer?

Ik hoop dat iedereen de plugin op zijn minst op automatisch zet, des te meer mensen zien de melding. Als je nog aanvullende wensen hebt of input (defects/rfc’s) voor versie 0.0.2 laat het me dan weten.

Mischien kan ik in versie 0.0.2 nog een widget toevoegen met laatste foto’s ?