Birthdays

I guess I know I’m getting old because for the last few days I’ve been forgetting it’s almost my birthday. Today, in fact, I have had the occasional message come as a bit of a surprise. I’m 27 now, and that’s scarily close to 30. *shudder*

One thing I’ve noticed more and more over the last few years is that birthdays have changed. I remember many birthdays when family members came to visit, or called if they couldn’t make it, and “happy birthday” was the first thing someone said to you when you met them.

So far today I have had 2 people say happy birthday to me in person. Len and Tsomo were both there and awake after midnight last night, so they said happy birthday to me. Since then I have received somewhere in the region of 18 posts on my Facebook wall, 6 people have sent me a text, 3 random companies have sent me an email because I’ve entered my DOB on their sites in the past, but nobody has said anything to me in person. It’s very strange.

I guess it could just be because I’m at work, I live quite far from almost everyone I know, and I haven’t arranged any sort of birthday celebration… That’s probably a large part of it, but I still think Facebook and mobile phones have a large part to play in it.

Twofifty Facebook app

I recently went to update my progress on IMDb’s top 250 films on the handy Facebook app by Tim Broddin only to find that it redirects to a domain that no longer seems to be working. I suspect this app has run its course now. How very annoying. The reason I’m most annoyed is that I used to be a member of twofifty.org a few years back. This site was also created by Tim Broddin, and it was also allowed to expire, so I lost track of my progress.

I wrote my own version to use for a while, but then this Facebook app turned up and I figured that was going to be a good replacement. How wrong I was.

I’m considering writing my own, again, and I will keep it running because I want to use it.

Old web techniques

I often go around looking at the source for the websites I frequent. It’s not very interesting to most people, but I am not most people.

Something I’ve noticed a few times in the last couple of weeks is that sites are suddenly using an evolved form of a script I was very familiar with many years ago:

if(top.location != self) {
  top.location.replace(document.location.href);
}

That’s how it appears on Last.fm. Essentially the script checks to see if the page is contained within another page, and then takes the user to the page by itself if it is. This gets rid of page headings you sometimes see from sites like Digg and Facebook when you follow a link from there.

The script used to be used to make your own site break out of frames put there by sites like Geocities (R.I.P.) before domains and hosting were quite so affordable. Obviously now there are basically no sites on the Internet that use frames in the traditional sense (that’s a good thing), but the modern equivalent (iframes) are pretty much all over the place. They tend to be used for displaying external content rather than the layout of internal content, but the idea is mostly the same: multiple documents on one page.

I just find it somewhat interesting that “web 2.0” seems to be encountering the exact same things I really hated about web 1.0 all those years ago.

Facebook share button shows no count

Share

I was working on adding a Facebook Share button to blog posts at work and I couldn't seem to get it to display the speech bubble with the number of shares without clicking on the icon.

I did a whole bunch of searching and it turned out that it was caused by some Javascript from Facebook that only displays the count if it's more than 3. I don't really like the inconsistency of that, so I looked for a way to get it displayed even if it's zero. A guy named Patrick Kelly suggests getting your own local copy of the Facebook Javascript (FB.Share) and modifying the displayBox() function call so it shows any number. This is fine for now in that it will work, but as Patrick points out on his blog, it will potentially break if Facebook update their API, or make other changes to the underlying code.

I decided to pick apart the code and come up with a solution that doesn't involve the same issues. The fix is fairly basic. You just need to include the share button in the same way as Facebook tells you, and then insert the following Javascript after that:

<script type="text/javascript">
var buttons = document.getElementsByName('fb_share');
var count = buttons.length;
for(var i = 0; i<count; i++) {
  var data = FB.Share.getUrl(buttons[i]);
  if(FB.Share.results[data]) {
    buttons[i].fb_count = FB.Share.results[data].total_count;
  }
  FB.Share.displayBox(buttons[i], 0);
}
</script>

Hopefully that's a bit tidier than copying and editing the FB.Share file. It also means that you'll benefit from a cached version of the code being presented to the user if they've been on any other site with that button. A fairly tiny benefit, but every little helps. 🙂

Patched Simple Facebook Like for WordPress

I am adding a Facebook Like button to the blog posts at work and so I looked for a WordPress plugin. The highest rated one I found is called Simple Facebook Like by a guy named Huseyin Berberoglu.

I had a bit of a problem getting the button to go where I wanted because the iframe that gets added to the page doesn’t have an ID or a class for me to address it by. I modified the source to stick in a class quickly and easily and dropped a comment on the guy’s blog to see if he would add it as an option for the plugin so future versions wouldn’t overwrite my change, and then I decided that I would just do it myself.

So I created a patch that can be applied to version 1.0.1 to let you specify a class for the iframe so you can use CSS to move it around more easily.