I recently came across this nice Firefox addon to display Wikipedia articles along with my search results. It is called Googlepedia, developed by James Hall; a software developer living in York, under GNU General Public License V2. Googlepedia takes what you type in your Google search box, finds the article in Wikipedia that matches best with your search query and displays it in your Google search results page, to your right along with the other search results provided by Google. It uses Google's I'm Feeling Lucky feature to find the relevant articles for your search queries. Since my browsing time is mostly spent on reading Wikipedia articles, this tool help me to get me to the articles I love with minimum clicks. It also removes Google AdWords, that come with every search result and uses the unused space in Google search results page efficiently to show you related articles found on Wikipedia instead of showing AdWords to the right of your search results. It works with Firefox 1.5 - 3.1b3 and currently supports 7 different languages including Chinese, German, Japanese, Polish, Czech, Dutch and Portuguese. Googlepedia also supports Google's famous Web Browser, Google Chrome and Chrome version of Googlepedia can be downloaded from here. Happy Browsing with Googlepedia :-)

Bookmark and Share

This was a big headache for me when I upgraded to Ubuntu 8.10 from Ubuntu 8.04, that my Firefox Web browser happened to go off-line whenever I connected to the Internet using my home Internet connection. But it worked perfectly when I connected from the university or using other wireless access points. After googling for few minutes, I was able to find what went wrong for me. It was something to do with Firefox configuration for not to check the network management applet in Linux for available networks, whenever Firefox connects to the Internet. Though this bug is reported, it is not been handled nor assigned to anybody at BugZilla, so it is still remains as a bug in Firefox under Linux, unless you run this fix.

Usually with the introduction of Firefox 3, the developers have developed the famous Web browser in a way that when it runs under Linux variants, it checks the network management applet to check whether the computer has already been connected to a network and adjusts its mode of operation according to that, meaning Firefox will operate in on-line mode only if the Linux box is connected to a network. But the network manager comes with Linux has some issues with identifying PPP connections that uses USB modems to connect to the Internet. Due to this erroneous behavior of the network management applet, it tends to complain by saying it is not connected to a network though you are connected to the Internet using your USB ADSL modem (ZTE ZXDSL 852 in my case). Now with this erroneous behavior if you are using Firefox 3, since Firefox checks the network management applet for available networks, it will fail to recognize that you are connected to the Internet as network management applet fails to detect your ADSL Internet connection. This causes Firefox to operate in off-line mode, so you will be not be able to browse the Internet.

The easiest way to fix this issue is by changing your Firefox browser settings to not to check the network management applet before connecting to the Internet. This can be done in few easy steps:

  1. First open a new Firefox Web Browser and type about:config at the address bar. Then you'll get a page saying changing advanced settings can harm your computer, believe me, this won't do any harm. Just click on the button "I'll be careful, I promise".
  2. Now type "toolkit.networkmanager.disable" at the filter bar you get there, which will show you the Firefox setting for toolkit.networkmanager.disable property. In your case, this should be set to false.
  3. Now double click on toolkit.networkmanager.disable which will set toolkit.networkmanager.disable's value to true. Thats all you have to do. Now restart Firefox.

toolkit.networkmanager.disable is the Firefox setting which allows you to control Firefox's communication with network management applet in Linux. Setting this property's value to true makes Firefox to not to use network manager to detect on-line/off-line status. Therefore if the network management applet controls active network connections incorrectly, this setting lets you avoid the problems caused due to such issues with network manager and guide Firefox to use its status as on-line. So you won't get "work off-line error page" while you are connected to a network.

Bookmark and Share

Image Processing is one of the emerging areas in the field of Information Technology and people yet exploring the limits of it. It is heavily used in major areas of IT such as Computer Vision, Artificial Intelligence, Computer Security etc. Recently I got an opportunity to work with Image Processing Technologies as a part of one of my projects and my task was to find matching images from an image store when a new image is given. I started my project with googling "How to compare images using java" and I got some good articles on finding the similarity of two images. Allmost all of them were based on four basic steps, they are:

  1. Locating the Region of Interest (Where the Objects appear in the given image),
  2. Re-sizing the ROIs in to a common size,
  3. Substracting ROIs,
  4. and Calculating the Black and White Ratio of the resultant image after subtraction.
Though this sounds as a good algorithm to compare images, it took a considerable amount of time after implementing it using JAI in my project. Therefore I had to find an alternate method of doing it. After searching the Web for few hours, I came across with this amazing article by Rafael Santos on "How do I compare two images to see if they are equal?" in his famous (but not yet completed) book "Java Image Processing Cookbook" which describes a different approach to compare images for similarity using image segmentation and region manipulation. It mainly focuses on finding some regions of a given image that matches with the images in the image store rather than searching for equality of the objects in given images. He describes an algorithm to find similar regions in a set of images and provides some sample code based on image segmentation and region manipulation to compare the equality of two images. After reading the article and playing with the sample code given there, I was able to further extend it to suit my need. So I wrote this note to express my gratitude towards him :-) The algorithm proposed by him (which is also available in his book) is as follows.

  1. Pre-process the image, if needed (e.g. to enhance contrast, filter noise, etc.).
  2. Do an Image Segmentation, process in which the image is converted to regions which contains pixels that are similar to pixels in the same region and different from pixels to other regions. This can be done using region-growing, mathematical morphology, clustering or classification algorithms. There are many algorithms to do that, just google for "image segmentation" and other keywords to get more information.
  3. With the regions, create descriptors for them. Descriptors are calculated from the region and can include shape, area, perimeter, number of holes, general color of the region, texture, orientation, position, etc.
  4. If needed, do a Re-Segmentation of the image, process in which regions are merged if they can be considered as belonging to the same object. Note that this step may require some high-level knowledge of the objects and the task in general, seldom being fully automatic and often being task-dependent.
  5. If needed, filter the regions that seem relevant to the task in hand, eliminating small regions or regions which are deemed unrelated to the task (again this may require some knowledge about the task).
  6. Store the image's regions' descriptor for further processing. Repeat those steps for other images.
  7. Use the descriptors for comparison of the contents of the images, using some of many algorithms for pattern matching, classification, clustering, artificial intelligence and data mining in general.
Bookmark and Share