воскресенье, 23 января 2011 г.

Об увлечениях

Из книги Алдо Леопольда "Календарь Песчаного графства":

По-моему, нет ошибки опасней, чем проповедовать свои увлечения людям, у которых их нет. Это значит навязывать их, а навязанное увлечение бессмысленно и бесполезно по самой своей идее. Не вы ищете для себя увлечения, оно находит вас. Рекомендовать увлечение столь же рискованно, как рекомендовать жену,— вероятность счастливого исхода в обоих случаях примерно равна.

четверг, 20 января 2011 г.

FTS3 Snowball Stemmer

Итак, поддержка стеммеров snowball для SQLite:

http://sqlite.mobigroup.ru/wiki?name=FTS3+Snowball+Stemmer

Пример использования:

CREATE VIRTUAL TABLE fts USING fts4(text,TOKENIZE icu russian);
insert into fts (text) values ('Нафига');
insert into fts (text) values ('попу');
insert into fts (text) values ('наган');
insert into fts (text) values ('если');
insert into fts (text) values ('поп');
insert into fts (text) values ('не');
insert into fts (text) values ('хулиган');

select * from fts where fts match 'поп';
попу
поп
sqlite> select * from fts where fts match 'нафиг';
Нафига

Примечание: аналогично можно использовать и fts3 виртуальные таблицы, но рекомендуется переходить на fts4.

вторник, 11 января 2011 г.

Определение byteorder

int main(int argc, char *argv[])
{
 int test = 1;

    if ( (((char *)(&test))[0]) == 1)
    {
         printf("NDR (little_endian)\n");
        return 0; //NDR (little_endian)
    }
    else
    {
         printf("XDR (big_endian)\n");
        return 1; //XDR (big_endian)
    }

}

Пересчет координат с некоторых судовых навигаторов

int main(int argc, char *argv[])
{
 double xpos = 4784270;
 double ypos = 7803506;

 double RadToDeg = 57.2957795132;
 double DegToRad = 0.0174532925199;
 double b = 6356752.3142;
 double PI = 3.141592654;
 double HALF_PI = 1.570796327;

 double MerToGeoLong = xpos * RadToDeg / b;
 printf("GeoLong = %f\n",MerToGeoLong);

 double MerToGeoLat = RadToDeg * (2 * atan(exp(ypos / b)) - HALF_PI);
 printf("GeoLat = %f\n",MerToGeoLat);
}

(C) Alexey Pechnikov aka MBG, mobigroup.ru