Saturday, December 08, 2007

Virtual child porn and a thoughtcrime.

Each time has it's own hot topics to attract drain bramaged logic. Its well known fact that an average contemporary brainwashed zombie could be easily controlled by magic word "pedophilia". Contemporary demagogues are aware of that.

The most indicative in this regard is a situation with virtual child porn. Speaking about virtual child porn I mean any porn-related material where no real children were involved in production - e.g. computer generated images/videos, anime, adult models with childish clothes, etc.

Below is a list of countries where virtual child porn is clearly illegal:

Sweden and Norway seem to be one step away from the join to above club (all they lack currently is an actual courts' verdicts). UK is clearly on the way to that club. What about US - situation seems to be complicated and ambiguous, only future will tell which direction they will choose.

While it may be clear that virtual child porn is purely a victimless crime, what may still have reminded hidden after the first glance is that virtual child porn is rather different from common victimless crimes (e.g. drugs, sex work). It lacks not only an actual victim. It either lacks "the object of the crime" - that part is purely subjective. The actual age of the fictional person involved in such a porn material is a nonsense. The actual guilt of someone in this crime is that guilty person can think about fictional child as of real. That is exactly a thoughtcrime.

Monday, November 26, 2007

Yahweh / Сongratulations to Kasparov and others.

Kasparov was not the first jailed to short time slice by famous Article 19.3 of the Russian Offences Code ("Disobeying the lawful order of pollice officer"). This article is just a magic helper for authorities and has nothing to do with reality because too often Russian courts don't even bother to check whether order itsel was lawful or not. This is simple enough and seems to be the most used method of jailing Russian political activists.

The full list of 19.3's jailed activists is a big enough to not be fully known to me. Even I in my contemporary history had a record of 19.3's 10 days of arrest (05.05.2007-15.05.2007) during Moscow part of the GMM.

15 days of arrest - the maximum allowed by Russian Offences Code. In the past in Moscow there were two places (known to me) where you can be send during this time.

  1. Special Russian Offences Code jail (Gilyarovsky str, 65, bld. 3). The place where I spend largest part of my 10 days
  2. Remand center at Petrovka 38 - I was there about 12 hours.
Petrovka 38 is less frequent but more comfortable jail. But even in (1) case this is not so problematic place to spend up to 15 days of your life. Boring but safe place.

In the right corner of the room (1) where we were held there was abandoned spider's net. It was not clear whether spider still exists or not but it was clear that no one from us will see him - just as Yahweh. Kasparov was sended to (2) and so spider's destiny still will be unclear to us.

I believe Kasparov will be no more tired from his arrest's days then I was. In fact Russian Offences Code arrest is the most exciting gift any opposition activist can receive from Kremlins. Starting from this time Kasparov is far more reputable to any radical person then it was before. And 5 days in his situation is not so big price as one can think.

Wednesday, November 14, 2007

More than 4 ports for Digi Neo serial cards in linux.

It's kinda hard to describe to any but die-hard unix administrators and embedded software developers how useful thing like serial console is. But it is "widely known in narrow circles" fact that there are quite a lot of problems or work scenarios where serial console is the simplest or even the only possible solution.

Almost any of "widely known in narrow circles" markets have one disadvantage - hardware for them is far more expensive than for an ordinary market. Of course in the simplest case you can just use any regular computer (which usually has two on-board serial (com) ports) as console server. But imagine dozens of unix servers (this is my situation). Existing specialized console servers are just to expensive.

Simple alternative to specialized hardware is multi-port PCI card (or several of them) installed in yet another server.

I use eight-ports Digi Neo at work. The only problem I've have with these cards so far is that vanilla linux kernel supports (via jsm driver) only up to four-port flavour of this card. In fact nothing serious prevents jsm driver from supporting more than four ports. You can check that by applying this tiny patch against current git tree (should also apply with harmless hunks to any kernel version since 2.6.26). For kernels before 2.6.26 use old patch.

At one time ex-colleague of mine even sended this patch to lkml but Scott Kilau from Digi was strongly against it without any good reason (to me).

We have used our patch in production for several years. Hope it will be useful for someone else.

Update: 20081022 12:00 (GMT)
Orignal patch had been broken since version 2.6.26. Due to:

commit 99da9047e675a4a8d671bbd67b34eb096c308b0d
Author: Scott Kilau
Date: Thu May 1 04:35:00 2008 -0700

jsm: add new supported board to jsm serial driver

Add new PCI Express Neo/JSM board to the supported list of drivers in
the JSM driver.
So I've ported the patch to the git tree as of 20081022. Original post have been changed accordingly.

Wednesday, October 17, 2007

legaliz.info has just been resurrected.

Strangely enough repressions saga didn't stop after we moved legaliz.info (Cannabis Legalize League) hosting outside of Russia. In the beginning of August 2007 legaliz.info disappeared from the internet. Ukrainian hosting-provider claims that hosting was interrupted after unlawful order of Ukrainian Ministry of Internal Affairs that in turn originates after request from Russian State ("General") Office of Public Prosecutor.

All the issues seems to be resolved now - site is finally moved to US. I hope that US is kinda "Russian State Office of Public Prosecutor"-proof country.

P.S. My wife wrote a bright episode from offline Cannabis Legalize League life.

Tuesday, January 02, 2007

How do search engines' bots handle javascript?

This is a freestyle translation of www.seoweblog.ru: Как индексаторы поисковых систем обрабатывают javascript?.

We've just completed experiment, targeted the real knowledge of how do indexers/bots of different search engines handle HTML code with javascript included within it and javascript redirects in particular.

In our experiment we used high traffic site positioned in google for some popular keywords. On the main page of this site we created links to the (experimental) pages with a different fragments of javascript within each of it. These fragments redirect clients' browsers to the other (destination) pages specially created for this experiment. To be safe destination pages were truly secret and weren't linked with the main site in any way. This way we were sure that bots had came for the destination pages only via experimental pages. All we need to do after that is just look at raw server's log at which destination pages were actually crawled by search engines bots.

At the end of experiment it was clear that Googlebot and other search engines' bots were able to correctly handle almost any variants of javascript redirects, i.e. bots had crawled destination pages and pages were appeared in the search engines' index. Below are concrete examples that were correctly interpreted by bots:

In the first example processed by indexer we see plain redirect code:

<script language=”JavaScript”>
  document.location.href = “http://www.site.com/directory/1.html”;
</script>
Second one was redirect executed by encoded script:
<script language=’JavaScript’>var str = ‘wbs%21s%3Eepdvnfou%2Fsfgfssfs-u%3E%23%23-r%3C
%0B%21%21%21%21%21%21%21%21%21%21%21%21%21%21
epdvnfou%2Fmpdbujpo%3E%23iuuq%3B00xxx%2Fbetpgu.efwfmpqnfou
%2Fdpn0uftukt03fod%2Fiunm%23%3C’; str = unescape(str); res = ‘’;
for (var i = 0; i < str.length; i++){ res += String.fromCharCode(str.charCodeAt(i)-1); } eval(res);</script>
In the third example indexers were required to process part of the script inlined in iframe (and they did it correctly):
<iframe
  xsrc=”http://www.site.com/directory/f.html” width=”100%”   height=”100%” frameborder=0 hspace=0 vspace=0
  marginwidth=0 marginheight=0
  allowtransparency=true scrolling=no>
</iframe>
But there were exceptions. Below is two javascript examples could be used for redirecting client browsers that search engines do not understand (i.e. seo safe).

On the first page redirect was done in a manner that allows to execute it only by client's browser or a bot with html code rendering capability. Example (slightly modified) code is:
<table width=”100%”>
<tr>

<td id=”first”>aassssssdddddffffgggghhhhjjjkklll</td>
<td>aassssssdddddffffgggghhhhjjjkklll</td>
<td>aassssssdddddffffgggghhhhjjjkklll</td>
<td>aassssssdddddffffgggghhhhjjjkklll</td>

<td>aassssssdddddffffgggghhhhjjjkklll</td>
<td>aassssssdddddffffgggghhhhjjjkklll</td>
<td>aassssssdddddffffgggghhhhjjjkklll</td>
<td>aassssssdddddffffgggghhhhjjjkklll</td>
<td>aassssssdddddffffgggghhhhjjjkklll</td>

<td>aassssssdddddffffgggghhhhjjjkklll</td>
</tr>
<tr>
<td>aassssssdddddffffgggghhhhjjjkklll</td>
<td>aassssssdddddffffgggghhhhjjjkklll</td>
<td>aassssssdddddffffgggghhhhjjjkklll</td>

<td>aassssssdddddffffgggghhhhjjjkklll</td>
<td>aassssssdddddffffgggghhhhjjjkklll</td>
<td>aassssssdddddffffgggghhhhjjjkklll</td>
<td>aassssssdddddffffgggghhhhjjjkklll</td>
<td>aassssssdddddffffgggghhhhjjjkklll</td>

<td>aassssssdddddffffgggghhhhjjjkklll</td>
<td id=”second”>aassssssdddddffffgggghhhhjjjkklll</td>
</tr>
</table>
</div>

<script language=”JavaScript”>
  var D=document;
  function AbsPos(O, Parent){
    var X=0, Y=0, Next, D=document;
    Next=O; if (Parent==null) Parent=D;
    while (Next!=null && Next!==Parent){
      Y+=Next.offsetTop; X+=Next.offsetLeft; Next=Next.offsetParent;
    }
    return [X, Y];
  }
  var first = AbsPos(D.getElementById(’first’));
  var second = AbsPos(D.getElementById(’second’));
  if (first[0] != second[0]) {
    document.location.href = “http:/’+'/www.site.com/directory/t.html”;
  } else {
    document.write(’whatever‘);
  }
</script>
The experiment has shown us that search engines bots do not have rendering capability (and this is understandable). That fact could be used by anyone who wants to have redirect either executed by alive users and not accounted by (hided from) search engines' bots.

In the second example redirect is triggered by an "active window" event:
<script language=”JavaScript”>
  function f(){
    document.location.href = “http://www.site.com/directory/x.html”;
  }
  window.onFocus = f();
</script>
Of course bot didn't follow (crawl, index in turn) this redirect because it don't have such capabilities (again).

In the next special example:
<script language=”JavaScript”>
  function rnb() {
    http://www.site.com/directory/abc.html
  }
</script>
were URL was simply inlined in javascript (without any redirect) we have verified that bots didn't follow the URL. This means that search engines' bots (Google and others) do indeed correctly "execute" javascript and see the result of it's execution. But the subset of javascript they support is limited. E.g. they haven't have rendering capability yet.

Our conclusions

Bots of the main search engines (Google in particular) do support some subset of javascript. I.e. in general they are able to distinguish between normal javascript (that is part of dynamic html page) and sneaky redirects. But there is still a possibility to create sneaky redirect unnoticed by the search engines. E.g. you could exploit the difference between a real html browser and and se bot (last one haven't have rendering capability yet).

Monday, January 01, 2007

Only .6% of Matt Cutts' readers are from Russia.

According to Matt Cutts' reply (hint: search for "Update:") to my question about geo location distribution of his blog readers the Russia's share of his readers is only about .6%. That surprised me only at the first glance. While I agree with the very popular anti-spammer's opinion that Russian speaking countries (and Russia is the biggest one) is among of the main sources of black hat techniques (one xenophobe even suggest to simply: "deny from .ru") the funny thing I notice every time I'm reading over Russian sites focused on seo is that Russian natives very rarely rely on rather well known to English speakers facts.

A good example is the comment where one mention google toolbar as possible reason for Googlebot crawling a page while Matt Cutts has already written comprehensive post shows that google toolbar "doesn’t lead to page being indexed". This is the main issue that distract me from the love of my own country - the average level of escapism and ignorance of the other world is too high currently.

On the other hand the fact that at this level of escapism Russia is still very visible as black hats' home is only mean that search engines haven't yet archived the desired level of spam resistance.

P.S. It seems that Matt Cutts' blog is experiencing MySQL problem currently:

WordPress database error: [Can't open file: 'wp_comments.MYI' (errno: 144)]
SELECT * FROM wp_comments WHERE comment_post_ID = '538' AND ( comment_approved = '1' OR ( comment_author = 'Sergey S. Kostyliov' AND comment_author_email = 'rathamahata@gmail.com' AND comment_approved = '0' ) ) ORDER BY comment_date
I.e.:
rathamahata@x ~ $ perror 144
MySQL error code 144: Table is crashed and last repair failed
rathamahata@x ~ $
so link to "my question" temporally points to the entire post. I'll change link when mysql problem goes away.

Update: 20070102 18:03 (GMT)
MySQl problem at Matt Cutts' blog has been resolved. Link has just been changed to a correct one.

Sunday, December 24, 2006

YahooFeedSeeker does use Google Blog Search Pinging Service?

I am currently playing with Google Blog Search Pinging Service. While looking at the raw logs I've noticed the yahoo's YahooFeedSeeker came to my site right after the Googlebot:

66.249.72.67 - - [24/Dec/2006:19:35:46 +0300] "GET /sitemap.xml HTTP/1.1" 200 251 "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)" qwerty.legaliz.info "-"
216.39.58.17 - - [24/Dec/2006:19:43:15 +0300] "GET /sitemap.xml HTTP/1.0" 200 251 "YahooFeedSeeker/2.0 (compatible; Mozilla 4.0; MSIE 5.5; http://publisher.yahoo.com/rssguide)" qwerty.legaliz.info "-"
I haven't sent any other blog pings (i.e. I did _only_ manual ping). So I suspect that YahooFeedSeeker does use changes file exported by google in some way.

Thursday, December 21, 2006

Internet censorship case (IP delivery is different from cloaking).

Qwerty - one of the local Moscow internet provider have just firewalled Cannabis Legalize League (CLL) for it's customers (regular Russian citizens). This is the second case of repressions over CLL inspired by the Russian authorities. First one was mail with threats from Russian DEA analog sent to hosting provider where CLL site used to be hosted for a while - due to this incident CLL site was migrated to Ukraine.

To workaround current issue I've configured custom mirror/proxy of CLL site provides different views on specially created third-level domain for:

  1. Qwety's customers.
  2. Any from within internet censorship free world.
P.S. For googlers and antispam radicals. This is not a cloaking. This is an example of correct usage of an IP Delivery technique. In case any have better ideas on how to workaround internet censorship cases your comments are highly appreciated. Below is mod_rewrite excerpt from my httpd.conf:
  RewriteEngine On
  RewriteCond %{REMOTE_ADDR} ^87\.240\.[01][12345].*
  RewriteRule (.*) http://legaliz.info/$1 [P,L]

Thursday, December 14, 2006

News from the streets of Moscow.

  1. Prices of effective marijuana have raised up. Again. Now it is even more expensive than gold - $50 per 2 grams.
  2. The most exciting sound you can hear at opposition political action this autumn/winter comes from alive Buddhists.

Tuesday, December 12, 2006

Moscow government prohibited "Killed Journalists Remembrance Marсh".

A friend of mine Maria Smirnova aka Мария Смирнова (one of the members of the coordination committee) have just confirmed to me that Moscow government prohibited Killed Journalists Remembrance Marсh (link is in Russian). Marсh was scheduled at October 17 2006.

For those not familiar with the Russian law I have to add that Russian Constitution and Federal Law #54 in turn don't give any right for a local government to prohibit a public action.

P.S. The speed of backlinks growth for such a political projects is amazing. Clearly Russian politic is the weirdest case of the white hat seo I've ever known. There is no so much need to be a black hat when social spam is so effective.

Thursday, November 16, 2006

The whole captcha concept is doomed.

Someone left a comment about a workaround for one of the possible captcha killers:
Hey, Sergey, there is quite easy workaround for such captchas cheating. Captcha owner should just include his domain name into captcha. And he could do it the way you could not masquerade it (as watermark over characters or something similar). Of course when you are smart and unique, no one site owner would do that. But when it became usual spam practice, owners will defend.

Sure, domain name embedding will guard captcha up to the safe level in the ideal world. But the real world is different from the ideal one. It is almost the same situation as with "authentic microkernel vs real OSes". While microkernel OSes are more ideal from the methodology angle of view the largest part of the real OSes are not microkernel. It's because humans are not ideal at all.

In the real world domain name embedding:

  1. Will made captcha encoding by humans more harder. The web is already full of complaints about current captcha implementations. Captcha surely will not benefit from adding additional complexity for humans.
  2. Has a workaround for it. Spammers will be required to register mistyped domains for their targets. Sure, the convertation will be a bit lower but still practical, I suppose.
The _whole_ captcha concept is doomed! Captcha is just yet another variant of cybersquatting prevention method. Rather complicated to me to live quite long. It's complexity (either current or suggested) will not safe it.

Thursday, November 09, 2006

Have just switched to blogger beta.

And now I've got two problems as a bonus:

  1. Sitemap's errors (Google Webmaster tools) of two types:
    1. Your Sitemap or Sitemap index file doesn't properly declare the namespace.
    2. This url is not allowed for a Sitemap at this location.
  2. My blogger's profile doesn't work anymore. (Update 20061212: It seems that bug affected my profile was fixed. It works now.)

Saturday, November 04, 2006

Livejournal is down, Russian March is dead.

Slow Saturday... It intended to be very news rich in Moscow but it doesn't so. For haven't yet been detailed reasons livejournal.com (livejournal, LJ, живой журнал, ЖЖ) have experienced outage since Moscow morning.

Of course, time of outage correlates with US night well enough. Independently of the real details of the outauge this is very helpfull for russian security forces. It seems they've just finally secured so called Russian March.