Posts

Showing posts from January, 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.

Определение 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); }