Skip to content

Last Saturday I've visited Everglades in Blue Mountains, NSW, Australia. In Spring it's a lovely garden despite foggy and rainy weather.

After the visit I've posted a couple videos on Youtube (Google's video hosting) and some photos in my gallery which specified in my Google Profile.

And after all that Google returns to me all top 10 links in their results about Everglades in Florida, USA. Inspite of I am logged into my Google account, supplied my data to Google (which it obviously has indexed) and sent the request from Sydney, Australia.

Surprisingly, Bing returns the site of the garden on the 3rd place with the site of Everglades Country Club at Woy Woy, NSW, on the 2nd. And apparently it knows nothing about me except my location by IP address.

Ample space to improve for Google in personalisation.

BTW, Yandex is as desperate in Everglades as Google.

When I've installed fixed version of the Popularity Contest into an fresh blog based on WP 3.2.1 I get new problem with this plugin on activation, - a fatal error with very short message:


on line: 255

After aplying the following fix the plugin activates correctly:


--- popularity-contest.php.old	2010-09-19 15:39:04.000000000 +0400
+++ popularity-contest.php	2011-08-10 16:43:28.000000000 +0400
@@ -95,6 +95,7 @@
 	if (!is_a($akpc, 'ak_popularity_contest')) {
 		$akpc = new ak_popularity_contest();
 	}
+	akpc_init();
 	$akpc->install();
 	$akpc->upgrade();
 	$akpc->mine_gap_data();

2

It's widely known Google is bashing Microsoft with free version of on-line office suite, as well Apple with free Android platform. All that is possible due to a huge leverage of contextual advertisement revenue covering Google's expenses of free software development.

The contextual advertisement is the cash cow of the Google. All other services and software it gives out for free (almost). Sometimes that free make starving cash cows of other companies, like Microsoft and Apple mentioned above.

Thus, Office suite and Windows are money cows of the Microsoft, not the contextual advertisement. Why doesn't it give out contextual advertisement for free, at least for clients bought their software or for keywords with minimal bids?

1

Patrick Shirkey (Boosthardware) has developed the native interface to DataparkSearch Engine for Android: code.google.com/p/dpsearch-android

It uses DataparkSearch's RESTful interface. At first, the idea was to use JSON format for data interchange, but it turned out native JSON parser works slowly in Android. As other parsers were not considered to be included into this project, we created a special search template (strings.htm) which sends "pre-cooked" data to Android client.

Now the main bottleneck is the data interchange itself. Perhaps I need to implement data compression in the RESTful API of DataparkSearch.

The HTML::FillInForm package uses its own implementation of escapeHTML function, different from the implementation in the CGI package.

If you use HTML::FillInForm or CGI::Application::Plugin::FillInForm package (the latter is an interface to the former) to process a form with values escaped by CGI::escapeHTML(), you may get incorrect option selected by default inside a <select> tag (the "selected" attribute isn't set where it should be).

The problem is that HTML::FillInForm uses HTML::Parser package to parse the code passed to it, which in turn enescape attribute values into the current encoding, that is why the HTML::FillInForm package need to apply the escapeHTML() function to attribute values of tags after parser to compare them with the value of user parameters passed to fill the form. If different implementations of escapeHTML() function are used in the user script and in the package, you can get the same string "unequal" after each of these function. 🙂

To solve the situation it's enough to add the following code at the beginning of your script:


use HTML::FillInForm;

package HTML::FillInForm;
use CGI (qw/escapeHTML/);

sub escapeHTML {
  my ($self, $toencode) = @_;
  return undef unless defined($toencode);
  return CGI::escapeHTML($toencode);
}
1;