Singpolyma

Technical Blog

Archive for the "Tech" Category

My Status

Posted on

We need a unified and federated status system.  Something so simple, it should be easy to federate.

Why?  Because right now I set my ‘status’ (ie, what I’m doing, a small tidbit to share) on my Jabber account, my Twitter account, and my Facebook account.  If I were a member in more places I’d be doing it more.  There needs to be a way to set it in one place and then propagate it.

But wait!  We do have a standard, federated system for this!  Jabber/XMPP itself is a presence (that includes status) protocol.  How could this be made to work?  Rather easily.

Already anything I say to the Twitter bot from Jabber goes into my Twitter.  What SHOULD happen is that whenever I change my Jabber status THAT goes into my Twitter.   Facebook could easily create a similar bridge.

New Comment Photo Hack (Blogger)

Posted on

By demand, I have added a maxheight option to this hack as well, it works the same way as maxwidth 🙂

Some people have really liked my comment photos and highlighting hack. Many have hated it. Especially since the move to the new Blogger, the hack is just unstable and difficult to implement or understand. Even my own implementation (before the move) was doing odd things.

So I decided that a complete rewrite was in order. The old scripts are still intact, but this new hack uses none of the old code. This hack does only comment author photos (highlighting is better handled other ways in the new Blogger).

This hack is 100% compatible with the newest version of my asynchronous peek-a-boo comments.

Without further ado, the instructions:

  1. Go to ‘Edit HTML’ under Template and check the ‘Expand Widget Templates’ box.
  2. Find the following code:

    <dl id='comments-block'>
    <b:loop values='data:post.comments' var='comment'>

    and insert the following code directly after it:

    <div style="clear:both">
    <dt style="float:left;margin-right:5px;clear:both;" expr:id='"commentphoto" + data:comment.id'></dt>
    <script type="text/javascript">if(typeof(commentPhotoIds) == 'undefined') var commentPhotoIds = []; commentPhotoIds.push({'id':'commentphoto<data:comment.id 'url':'<data:comment.authorUrl/>'});</script>
  3. If you go down a very small ways from where you were in the previous step you will see a </dl>. Directly before it insert the code: </div>
  4. Directly before the </body> code in your template add this code:

    <script type='text/javascript'>
    //<![CDATA[
    function commentPhotoDo() {
    var tag;
    for(var i in commentPhotoIds) {
    tag = document.createElement('script');
    tag.type = 'text/javascript';
    tag.src = 'http://scrape.singpolyma.net/avatar.php?maxwidth=70&url='+encodeURIComponent(commentPhotoIds[i].url)+'&id='+encodeURIComponent(commentPhotoIds[i].id)+'&defaultimage='+encodeURIComponent('http://img139.imageshack.us/img139/1011/defaultavatarad7.png');
    document.body.appendChild(tag);
    }//end for var i in commentPhotoIds
    }//end function commentPhotoDo
    commentPhotoDo();
    //]]>
    </script>
  5. Save your template

My fellow hackers will not like the way I did the second-to-last step. I should be using window.onload. I am not simply because in the tests I did on a certain much-hacked template, this worked and the other didn’t. I am not prepared to say why the other didn’t, only that it didn’t and that disturbed me. So for this hack I’m doing it like this. It works.

This hack causes direct hits to my singpolyma.net hosting server every time a page loads. If your blog gets a significant amount of viewers (>300 subscribers or thereabouts) I would ask that you contact me before installing this hack so that we can work out whether it will be a bandwidth issue or not. Thank you for understanding.

Videntity Bookmarklet

Posted on

If you haven’t heard of Videntity, you may recognize it as the major force behind my landing page.  If you don’t have an OpenID, you can get one from Videntity.  If you have one already (like me) you can log in using it.

Then, you can associate a profile with your OpenID.  Yes, you’ve done this a million times before.  Videntity is different — you can actually import your existing profile from elsewhere if it is done using hCard.

You can also add friends to your profile on Videntity.  Here again, the service is different.  You are not bound to adding people who have ever used Videntity — anyone with a URL can be added.  Full XFN vocabulary is supported.  This powers the primary friends list on my home page.

Enter the bookmarklet.  I have written a bookmarklet that works cross-browser.  Click it, and it detects hCards and Facebook links on the current page.  It presents you with a list of these people it has detected and lets you either click over to their profile (useful in itself) or add them to your Videntity profile as friends.

So, drag the following to your bookmark bar and watch the magic!

http://singpolyma.googlepages.com/videntity-bookmarklet.js'; document.body.appendChild(js);})();">Videntity Bookmarklet

BloggerHacks Toolbar

Posted on

Yet another experiment in following the community.  I have used the toolbar-creation tools from Conduit to create a social toolbar for the Blogger hacks community.

The toolbar has links to all the major Blogger hackers (if I forgot you, I’m sorry, tell me and I’ll add your link!), a drop-down to the main sections of the hacks wiki, a built-in search of the wiki (the co-op one isn’t allowed… but I linked to it), a feed-reader that alerts your when a hacker posts something new, and an announce section for community-wide alerts.  There is also a chatroom, email notification, weather, and pop-up blocking option.  All components are optional.

One of the really cool things is that there is a version for both Firefox and Internet Explorer.  If I update the toolbar components on their site, everyone’s toolbar gets updated, without a reinstall.

So, check it out at the toolbar homepage.

Facebook Nofitications in GMail

Posted on

This script now integrates properly with both GMail and Google Reader. Reinstall and enjoy 🙂

“What?” you say, “You don’t use Facebook, Stephen, you’re so cool and geeky!” Ah, but unfortunately not all of my friends are, and I have been drawn in to the service. Mind you, I don’t spend hours reading the profiles of people I don’t know 😉 I do use it, however.

There’s one thing I’ve always hated about Facebook — the notifications system. Many too many emails flooding my inbox about what is happening, either that or I have to check the site regularly. No RSS on the things you actually want notifications of. Worst of all messages, the one thing you REALLY need notification of, won’t even send you an email.

The ‘official’ solution is to install the Facebook toolbar. I tried it, it’s nice, but I don’t use the service enough to warrant that screen real-estate OR that memory usage.

My solution is a Greasemonkey script. It integrates notifications of messages, group invites, event invites, and friend requests into the side of your GMail view. Install the script, go to GMail, click the Facebook logo and log in. For best results, check the ‘remember me’ checkbox (funny, you can’t have it remember you for logging in to the site, but for a third-party script you can…). Go back to your GMail and click the link that appeared where the Facebook logo used to be. Voila. If you checked the box, next time you go to GMail it should just display the notifications without intervention from yourself.

Die email notifications!

Userscripts.org entry