Skip to content

PL/sh - is a nice extension to PostgreSQL allowing to write stored procedures in an interpreted language, e.g. bash, python, perl, php, etc.

I found it useful though having a major drawback that the amount of data you can pass via arguments of such procedures may hit command line limitations, i.e. no more 254 spaces and no more 2MB (or even less).

So I have made a change that the value of the first argument is passed via stdin to the script implementing the stored procedure, the rest of arguments is passed as $1, $2, $3, etc. This change is allow to overcome above mentioned limitations in case when big amount of data is passed via one parameter.

Here is a tiny example I have added to the test suite with new functionality:

CREATE FUNCTION perl_concat2(text, text) RETURNS text LANGUAGE plsh2 AS '
print while (<STDIN>);
print $ARGV[0];
SELECT perl_concat2('pe', 'rl');

You may get modified PL/sh in my repository on GitHub: It has been implemented as a new procedural language plsh2, so you do not need to change anything in already created procedures/functions using plsh (and you can continue use it as before).

gitstats tool has stopped working on our project after upgrade to Ubuntu 16.04. Finally I have got time to have a look. There were two issues with it:

  1. we do not need to use process wait as process communicate waits until process termination and the last process in the pipeline do not finish until all processes before it in the pipeline terminate, plus process wait may deadlock on pipes with huge output, see notice at
  2. On Ubuntu 16.04 grep has started to give "Binary file (standard input) matches" notice into the pipe which breaks parsing.

I have made a pull request which fixes this issue:
Also you can clone fixed version from my account:

The do-release-upgrade abort the upgrade process if you have one of the following packages installed:


It looks like these packages are not available on 16.04 (though they are available for PostgreSQL 9.5) bit they are matching a removal black list pattern.

Simple remove these packages manually to proceed with upgrade. You may reinstall them after upgrading Ubuntu to 16.04 and PostgreSQL to 9.5.

A bug report has been filled, please vote if it affects you.

It was a Big Run in Sydney yesterday - City2Surf 2015, with 80,000+ participants and more $4.1 mln funds raised to various charities.

This year I have entered the Blue start:

City2Surf 2015: Blue start
City2Surf 2015: Blue start

And finished in 1:22:08, 5 minutes 1 second faster than last year! 🙂

After finish 2015
After finish 2015

A friend of mines who also participated in City2Surf 2015 is raising donations to Operation Smile Australia, - they make cleft surgeries in developing countries. The goal of funding two new smiles has reached with help of many supporters, though we need a little bit more to make them four! Please consider to donate!

You're perhaps aware of Google Translation services, and if you know more than one human language you can contribute and help to improve this service via Google Translate Community (BETA).

You also might be interested to know that Yandex, a Russian google, has their Yandex Translation Service running, which in many cases gives better translation for Russian - English pair of languages.

A new snapshot version of DataparkSearch Engine has been released. You can get it on Google Drive.

Here is the list of changes since previous snapshot:

  • Crossword section is now includes value of TITLE attribute of IMG tag and values of ALT and TITLE attributes of A and LINK tags found on documents pointing to the indexing document
  • Meta PROPERTY is now indexing
  • URL info data is now stored for all documents with HTTP status code < 400
  • configure is now understands --without-libextractor switch to build dpsearch without libextractor support even it has been installed
  • robots.txt support is enabled for sites crawling using HTTPS scheme
  • AuthPing command has been added to send authorisation request before getting documents from a web-site. See details below.
  • Cookie command has been added.
  • Add support for SOCKS5 proxy without authorisation and with username authorisation. See details below.
  • A number of minor fixes

...continue reading "dpsearch-4.54-2015-07-06"


Acer Aspire E 11 E3-112-C6YY is a nice 11 inch notebook which I found suitable for doing some work while commuting. And it costs only A$299 at Dick Smith (or on Ebay). Here is a step by step instruction how to setup Ubuntu 15.04 along with preinstalled Microsoft Windows 8.1 (dual boot):
...continue reading "Installing Ubuntu 15.04 on Acer Aspire E 11 E3-112-C6YY"


If you use FitBit tracker with a smartphone which has been recently undated to Android 5.0 Lollipop, you might faced the same problem as me - the Fitbit app has stopped synching with the tracker.

Surprisingly there are a lot of people complaining online or even raging in putting one star rating to the app in Google Play. However, the solution which helped me: uninstall and reinstall the app, is mentioned on the FitBit Help web-site, and it takes around a minute to remove and reinstall the app.

The video of the main talk at Sydney SEO Meetup on 4 September 2014:

Roger Qiu, Founder of Polyacademy demonstrates SnapSearch.

SnapSearch is a search engine optimisation (SEO) and robot proxy for complex front-end javascript & AJAX enabled (potentially realtime) HTML5 web applications.

This tool implements Google recommendations on making AJAX-driven sites crawlable as a service hiding all technical details under hood.