Useful UPnP Troubleshooter

Universal Plug & Play aka UPnP is used by a lot of networking devices and software to communicate with each other for automatic setup/installation.

Many software programs and games that need inward-bound internet connectivity can automatically configure your UPnP broadband router for their use. Examples of these programs are Instant Messengers such as MSN Chat, and Bit Torrent clients like uTorrent and Azureus.

If your programs are having trouble with UPnP, you can use the following links to troubleshoot, including a handy small program that will detect what steps you need to take to get UPnP going.

UPnP Troubleshooting Page
Download the UPnP Test Program

Opera “Unlinker” User JavaScript

It’s quite common on many websites, particularly forums, to post links to images.

Unlinker is a very popular plugin for Firefox, which allows you to change the links to images in the page to in-line images.

Opera doesn’t have a fully-fledged plugin system like Firefox (which is a pro just as much as it is a con), but you can customize it using User JavaScript.

I’ve made a simple script to implement a very basic version of Unlinker. It will scan the page for links to images, and embed the image in the page under the link. It currently also scales the image down while maintaining aspect ratio if it exceeds 640×480.

To use this, create a directory on your machine to store your user javascripts, and save the source there as unlinker.js (or whatever name you like).

  • Now in Opera, go to the Tools > Preferences menu
  • Go to the Advanced tab
  • Click the Content section
  • Click the JavaScript Options… button
  • Browse to the User JavaScript files folder where you saved the file, then hit OK
  • Hit OK
  • You don’t have to restart Opera for the changes to take effect

The source code is:

addEventListener(
      'load',
      function (e)
      {
          var isImageRegex = new RegExp(".gif|jpeg|jpg|png|bmp$", "i");

          var allAnchors = document.getElementsByTagName("a");

          for( var i = 0; i < allAnchors.length; i++ )
          {
              var anchorElement = allAnchors[i];
              var link = anchorElement.href;
              if( link && isImageRegex.test(link) )
              {
                  // The image tooltip will show the full image address
                  anchorElement.title = link;

                  // Create the image, giving it a border and some padding, resetting
                  // some styles and don't make it exceed 640x480 dimensions, auto-scaling it down
                  var image = document.createElement('IMG');
                  image.src = link;
                  image.style.border = 'solid 1px #ccc';
                  image.style.padding = '0px';
                  image.style.margin = '0px';
                  image.style.float = 'none';
                  image.style.maxWidth = '640px';
                  image.style.maxHeight = '480px';

                  anchorElement.appendChild( document.createElement('BR') );
                  anchorElement.appendChild(image);
                  anchorElement.appendChild( document.createElement('BR') );
              }
          }
      },
      false
  );

Edit 2010-05-29: Updated for Opera 10.x

Paris & London photos

Elinor and Julia visited from New Zealand, and we went to Paris and hung out in London for a few days. I’ve posted some photos on Facebook but I’ll try to blog something about it at some point. Was good fun, and nice to see Els and get some travel done (even if it was to Paris again).

So I’m ready to get cracking into work again and get prepared for my return to New Zealand which is really only weeks away.