Регистронезависимый поиск руских слов в trac

Последнее время все чаще и чаще начали пользовать для внутренних нужд на работе trac. Причем если на первых порах у нас был отдельный движек под wiki и отдельно под исходники и тикеты трак, то в последствии плавно переехали на один единый движек, ибо удобно. Но недавно обнаружили досадный баг, если в поиске трака искать слова из не латинских букв, то поиск получается регистрозависимый.

Вся беда в sqlite, и если перетащить базу в pgsql, то проблема решиться сама собой (сам не пробовал), подробнее про эту проблему можно почитать тут:

http://trac.edgewall.org/ticket/7902
http://trac.edgewall.org/ticket/10327
http://trac.edgewall.org/ticket/5720

Сперва хотел перевести базу в MySQL, но обнаружились проблемы с конвертированием дампа (у sqlite и mysql несколько отличается синтаксис), а так же проблемы с совместимостью с MySQL. Поэтому было принято решение допиливать SqLite.

Решение в общем то есть, вот тут (ссылка) лежит исходник плагина для sqlite реализующего нужный функционал, но по пути были встречены разнообразные грабли, и вот как их обойти. Читать

TARGET, HOST и BUILD в autoconf

Разбираюсь с кросскомпиляцией пакета, нашел интересное и понятное объяснение отличий опиций target, build и host в autoconf.
--build: это машина на которой вы компиляете.
--host: машина для которой компилируете.
--target: машина для которой GCC сгеренинует бинарник.

Как указано в GCC documentation (Host/Target specific installation notes):

Если build, host и target одинаковые, это называется “нативная компиляция”(native).

Если build, host одинаковые, а target отличается, это называется: кросс-компиляция(cross).

Если build, host, target все разные, это называется канадская компиляция (canadian), назвали так в честь политической партии канады, у которых видимо обещания с делами сильно расходятся ))

Если target и host одинаковые, а build отличается, то вы используете кросс-компиляцию для сборки нативного бинарника для другой системы. (иногда это называют host-x-host, crossed native, или cross-built native.)

Если build и target одинаковые, а host отличается, то вы используете кросс-компилятор, чтобы скомпилять кросс-компилятор, для машины на которой в данный момент компиляете. (Иногда и такое бывает.)

 

PS. Убил кучу времени пытаясь скомпилить i386 код на amd64 системе. После каждой компиляции проверял полученный бинарник с помощью file. В результате получил заветные:

root@host:/home/serp/sbin# file zabbix_agentd
zabbix_agentd: ELF 32-bit LSB executable, Intel 80386, version 1 (GNU/Linux), statically linked, for GNU/Linux 2.6.24, BuildID[sha1]=0x80351655fa042fd59e60f87c61433eaf9f713e4d, not stripped

Помогло конфигурирование с помощью:

CFLAGS=”-m32″ ./configure –enable-agent –with-mysql –with-net-snmp –enable-static  –prefix=/home/serp/zabbix_compiled –host=i386

Журнал Linux Format собирает деньги https://www.indiegogo.com/projects/linux-format-russia-magazine-for-all.

Цель уже достигнута, но еще не поздно поучаствовать. Обратите внимание на то, что вы получите за определенные суммы 😉

Деньги собирают в основном на то, что бы на вики выкладывать не отдельные статьи журнала,  а журнал целиком.

В общем я 25$ закинул, выбрал подписку на электронную версию на полгода.

Тест Тьюринга и мальчик из одессы

Тут новость проскочила (http://habrahabr.ru/post/225599/), что чей то бот успешно прошел тест Тьюринга на Turing Test 2014 в Лондоне. 33% судей поверили что разговаривают с 13ти летним мальчиком из Одессы.

Самое интересное как водится – в комментариях. Например:

ААА> Как думаете, будут ли использовать подобных персонажей в чатах для отлова педофилов? Насколько знаю, сейчас этот процесс довольно ресурсоёмок, т.к. напрямую зависит от людей: специально обученный человек общается, а за фото-видео подтверждение отвечает генерируемое в реальном времени изображение ребёнка.

BBB> Отловил робот-ребёнок в сети педофила, а тот — тоже робот!

CCC> Отловил робот-ребёнок в сети педофила, а тот — IBM Watson.

или вот:

Ой, я вас умоляю! Сразу видно, что эти судьи никогда не были в Одессе!

Потому что каждый, кто был в Одессе, прекрасно знает, что тринадцатилетний сын гинеколога по фамилии Гусман никогда бы не стал с ними разговаривать.

Потому что, во-первых, мама его учила не разговаривать с незнакомыми, во-вторых, он в этом возрасте должен не в интернете сидеть, а играть на скрипке и, в-третьих, что он с этого таки будет иметь?

Так что тоже мне тест Тьюринга, можно подумать!

На днях была новость, что в skype скоро появится функция синхронного перевода, т.е. при разговоре с иностранцем его речь будет автоматом переводиться на ваш родной язык.

Мне попутно такая мысль пришла, что в недалеком будущем, будет, например в watsapp можно будет включить озвучку сообщений от контактов голосом, и не простым, а например для каждого контакта можно будет выбрать голос. Один кореш тебе голосом Джигурды вещает, и другой голосом Жирика, или Горбачева.

Мало того, если учитывать, что скайп преобразовывает речь в текст, затем его переводит, а затем озвучивает, то что мешает каждому контакту назначить “скин”? Например присоеденить контакту корефана “скин” того же Жирика, и когда он тебе звонит, его голос будет преобразовываться в текст, затем обрабатываться с учетом “скина”, например добавляя характерные для Жирика фразы и обороты, и затем озвучивать его речь. Т.е. в результате ты будешь говорить с жириком?!! Или наоборот, он будет с ним пиздеть )))

 

Думаю лет через 10, а может и раньше это будет реально.

Занимательная археоелогия

Прочитал на хабре статью, автор которой проанализировал исходники DOS 1.1 и WORD 1.1a.  Много интересного для себя открыл. Пересказывать не буду, оригинал можно почитать тут: http://habrahabr.ru/company/pvs-studio/blog/217921/

В книге “Хакеры: Герои компьютерной революции”, объясняется, что основное занятие хакеров – это написание инструментов для написания инструментов, для того чтобы делать “правильные вещи”. И тут я не опечатался. Прикол в том, что ни один смертный этой работы не ощущает. Далеко не каждый программист способен ощутить, как много эти люди делают для индустрии программного обеспечения. Почему я так подумал? Да элементарно! С какой легкостью СЕГОДНЯ с помощью современного ИНСТРУМЕНТА человек сумел оперативно найти кучу недоработок в немаленькой программе, которую писал не один человек, и не два…

А ведь и сейчас есть такие же хакеры (слово заезженное, поэтому, в современных реалиях имеет несколько искаженный смысл), которые делают инструменты, что бы делать инструменты… Двигающие ту самую Computer Scienсe, но результат работы которых мы сможем ощутить не скоро…

Для того, что бы понять это, почувствовать, нужно много лет. В общем занятие не для любителей славы и известности.

Настройка ntpd

Введение.

На днях разбирался с настройкой ntpd, как оказалось возможности этого демона немного выходят за рамки “раздачи времени по сети”.

Сперва у меня было желание полностью разобраться во всех возможных хитросплетениях конфигурации, но после вдумчивого чтения официальной документации на www.ntp.org , я пришел к выводу, что мне нихрена там не понятно. Создатель этого демона человек несомненно очень умный, но понять им написанное крайне не просто.

Итак. Как выяснилось, демон может работать в трех режимах:

1. Клиент\Серверный
2. Симметрично активный\пассивный
3. Широковещательный Читать

Как сделать “backport” пакета

1. Введение.

Поскольку я обновляю дистрибутив на домашнем компе редко, в основном по LTS релизам, то зачастую, версии софта в репозитории моего дистра достаточно устаревшие.

Понятное дело, что ставить пакет например из Ubuntu 14.04 в 12.04 бесполезная трата времени, во первых, т.к. будет куча неудовлетворенных зависимостей, во вторых, даже если забить на формальности, то бинарники из нового дистрибутива, как правило собраны под более новые библиотеки (libc, glib и т.д.), и скорее всего не будут работать.

Вариант переустановить систему на более новую я не рассматриваю. Поэтому основных решений обычно два:

1. Поискать готовый пакет под свою систему в ppa (https://launchpad.net/ubuntu/+ppas)

2. Портировать пакет из свежего дистра в свой.

Ставить пакеты из ppa, не очень безопасно, хорошо, если данный ppa принадлежит разработчику программы, и он там распростаняет свои сборки. Но чаще всего, архив принадлежит совершенно посторонним людям, и никаких гарантий, что в программу не засунули бэкдор нет.

Благо бэкпортить не сложно. Один из способов это селать, я покажу на примере программы snort. Что для этого нужно:

1. Установить ubuntu-dev-tools
2. Сгенерировать  пару gpg ключей.
3. Установить все необходимые для компиляции snort пакеты.
4. С помощью backportpackage получить необходимые для компиляции файлы.
5. Скомпилировать прогрумму. Читать

Бывший сотрудник Microsoft из России сознался в инсайде

Бывший сотрудник Microsoft Алексей Кибкало, обвиняемый в краже коммерческих тайн компании, в понедельник 31 марта признал себя виновным в окружном суде в Сиэтле.

Как сообщает газета Seattle Times, Кибкало смог достичь соглашения с федеральными обвинителями по которому ему предстоит провести три месяца в тюрьме, а также выплатить Microsoft компенсацию в размере $22,5 тыс. Окончательное вынесение приговора по делу Кибкало назначено на 1 июля 2014 г. О выдвинутых против Алексея Кибкало обвинениях стало известно в конце марта 2014 г. По данным следствия, в июле-августе 2012 г., будучи сотрудником Microsoft, Кибкало распространял через собственный аккаунт SkyDrive код Windows 8 RT и пакета инструментов Microsoft Activation Server SDK, который корпорация использует для системы активации. Кроме того, Кибкало передал созданный Microsoft код для распространения некому французскому техноблоггеру. Алексей Кибкало проработал в Microsoft семь лет. Читать