27th January 2010
Sometimes there is a need to remove all the probesets, which have expression values below the minimal spike-in intensity on the Affymetrix microarray. The reasoning behind this procedure is simple: minimal-expression spike-ins represent the bottom margin of microarray sensitivity, and anything below that margin cannot be reliably quantified – which also means that both fold-change and p-value of expression variance will be unreliable for these probesets.
Here’s a simple R script to do just that. It is abundantly commented, and also contains an optional (commented out) fragment which allows the removal of more low-variance, low-intensity probesets.
Read the rest of this entry »
Posted in Bioinformatics, Programming, Science | No Comments »
25th January 2010
Recently, I have come across the Chandler project. Chandler is a sophisticated organizer, including tasks, calendar, appointments, invitations, and many more.
The project does provide a 64-bit package for Ubuntu 8.10 “Intrepid Ibex”, but it has a dependency on python-zope-interface – which in Debian testing is a virtual package, currently provided by python-zope.interface. That single dependency made my aptitude complain all the time, so I edited the .deb-file, renaming depends/python-zope-interface to depends/python-zope.interface (following nice and simple instructions). After that – no more aptitude complaints, and Chandler works fine.
Download the modified Chandler 1.0.3 Debian testing amd64 package (md5: 239071715977bea2eb75f3bb54491a02).
Posted in *nix, Software | 1 Comment »
24th January 2010
MathIsFun offers nicely illustrated pages on math, algebra, geometry and maybe more.
For example, there is a step-by-step instruction on calculating variance and standard deviation for a set of measured dog heights, with a final picture (below) illustrating one-sigma distance from the mean. Unfortunately, concepts of normal distribution and %% of data points within each sigma range are not discussed, but that might as well be too much for a nice explanation. There are also animations, like this mean machine. Overall, MathIsFun is a nice resource for younglings.

Posted in Links | No Comments »
3rd January 2010
Just a quick note: upgrading Drupal using a patch file is a really efficient and fast method, especially because diff/patch files are available for different Drupal version combinations.
Posted in Drupal, Links, Notepad, Web | No Comments »
5th December 2009
For about 2 weeks now, I am every day alerted of the suspicious behavior of some computer/server from the Google’s IP range:
Read the rest of this entry »
Posted in Misc, Web | No Comments »
14th November 2009
fail2ban has a php-url-fopen rule.
WordPress has a Global Translator plugin, which – among others – uses Google Translate service.
If someone uses Google Translate (e.g. using Global Translate’s mini-language-flags), and goes back to your blog – that someone might get banned by fail2ban (especially if you have set maxretry to 1), as the referrer will contain the php-URL-fopen attack signature. The bad thing is that you will not realize that until after you check one or several translations yourself, as a random site visitor experiencing the problem is highly unlikely to bother reporting this problem – especially when your blog’s Contact page is also inaccessible.
Clearly, Google Translate is not the only legitimate service which will trigger that rule.
Solution: The only solution I have found is to specify the whitelist regex for the php-URL-fopen rule.
Posted in *nix, Software, Web, WordPress PlugIns | No Comments »
13th November 2009
A nice report on the cost of bruteforcing variable-length and variable-complexity passwords using cloud computing services (e.g. Amazon’s EC). There’s a kind of a tutorial in their previous post.
Slow DoS attack with just 1 computer against a number of web servers, including Apache: slowloris. There is a solution for Apache, packaged for RedHat and also available for Debian.
Finally, there’s Go programming language. The most inspiring promise to me personally is the ease of execution parallelization with language’s built-in syntactic constructs. That is something highly desired. Also, I like that it is a compiled language. However, it might be 10%-20% slower than pure C. Let’s see how it grows.
Posted in Links, Misc, Programming, Security, Web | No Comments »
5th November 2009
ocrodjvu = OCRopus (tesseract) + DJVU
It is a small command-line tool to easily convert your image-only DJVU files into image+text DJVU files. In Debian testing, there are language packages for (in no specific order) German, English, French, Spanish, Vietnamese, Brasilian Portuguese, Dutch, and Italian. The original tesseract-ocr software includes training data & code, so it should be (at least in theory) easy to add more recognition languages.
Posted in Links, Software, Technologies | No Comments »
31st October 2009
Starting October, 30, there is a 3-week quarantine in all primary and higher bodies of education in Ukraine – to limit the spread of the infection.
A total of 80k people were registered with respiratory infections (not classified by flu type). Several small samples tested for A/H1N1 (which is the cause of swine flu pandemic) indicate that 30-50% of all cases could be swine flu (with other cases being “seasonal flu” – that is, previously known influenza types and subtypes). It is reported that ~37 died since Monday, with symptoms matching those of swine flu. Most of the statistics come from the Western regions of Ukraine, which were the first to face rapid daily temperatures decrease – which could have been the trigger of massive infections.
Today I’ve seen a number of people in Kyiv’s underground railway wearing medical face masks (or just pulling their scarfs up to cover noses). Drug stores were literally stormed for anti-virus medications, immune system stimulators, medical face masks, vitamins, etc.
If not the virus, then panic is definitely in the air. I do not recollect seeing something like that before.
Posted in Life, Misc, Society | No Comments »
27th October 2009
This query performs a table-wide search-and-repalce:
UPDATE `table_name` SET `table_field` = REPLACE(`table_field`,’string to search for and replace’,'replacement string’);
If you need a database-wide search-and-replace, you could try this script (I haven’t tested/used it myself).
Beware of the following gotchas:
- wrong query syntax may ruin the field you are performing replace on, so always backup first!
- be sure to provide “search-for” string as specific as possible, or you will get unexpected replacements (e.g. replacing mini with little will also convert all minivans into littlevans); also, do use WHERE clause when necessary to limit the number of rows modified
- the function in the example is case-sensitive, so replacing all minivans with vehicles won’t replace Minivans. However, I believe there exists a case-insensitive version of REPLACE function
Posted in Notepad, how-to | No Comments »