This are the slides for my lightning talk about DataparkSearch Engine I gave at the Sydney Linux Users Group meeting on September 28th this year.
Author: Maxime
Issue 44, case 2
A SQL-injection has been discovered in current version of Dataparksearch (see issue 44, case 2, in Russian).
Fix is already made and committed to SVN repository (revision 758), also a new snapshot with this fix is available: dpsearch-4.54-2012-08-27.tar.bz2
Everglades of Google
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.
Once more fix for Popularity Contest
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();
Why the Empire doesn’t strike back?
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?
dpsearch-android
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.
RESTful interface
In the latest snapshot (dpsearch-4.54-15042011.tar.bz2, as well in trunk version in the SVN repository), the search daemon searchd of DataparkSearch Engine has got the RESTful interface, though it support only the GET command at the moment.
...continue reading "RESTful interface"
Unix-sockets for searchd
The support for Unix-sockets in interactions between searchd and search.cgi has been added in the latest snapshot of DataparkSearch Engine.
...continue reading "Unix-sockets for searchd"
WordPress upgrading troubles
If you've got the following error message when upgrading WordPress to the version 3.1:
Fatal error: Call to a member function query() on a non-object in /home/<...>/wp-content/db.php on line 4
A kind of bug in HTML::FillInForm
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;