Стало совершенно очевидным, что автообучение, основанное на срабатывании правил, как это сделано в SA, - совершенно порочная практика, которая реально может привести к тому, что хорошие письма, но отправленные "не с тех" релеев или же имеющие некоторые спам сигнатуры (а таких честных писем достаточно много), будут статистикой еще больше давиться в сторону оценки как спам. Кроме того, это может засорять статистику неправильными срабатываниями. Для rspamd сейчас я продумываю концепцию, чтобы сделать автообучение максимально адаптивным.
Wednesday, July 20, 2011
Monday, July 18, 2011
Мысли о конфигурационных файлах.
К сожалению, простого и универсального решения в плане конфигурации некоторой достаточно сложной программы не существует. И каждый, кто пишет систему для конфигурации, либо изобретает что-то новое, либо берет одно из готовых (универсальных) решений, либо пытается комбинировать.
Friday, July 15, 2011
Отчет о поездке в Киров на машине
Так уж сложилось, что я недавно съездил в Киров на машине в третий раз. Поэтому решил написать небольшой отчет, который может помочь тем, кто едет в том направлении (Москва - Нижний Новгород - Киров) в первый раз.
Цвета подсказок eclipse в ubuntu.
При запуске eclipse под ubuntu подсказки отображаются черными на черном. Решения этой проблемы подробно рассмотрены тут:
https://bugs.launchpad.net/ubuntu/+source/light-themes/+bug/540332
Для себя я выбрал способ добавления в ini файл опций раскраски:
При этом, если какой-то плагин продолжает показывать корявые цвета, то его настройки можно найти в той же директории и таким же образом похачить. Например, так я починил плагин ShellEd (net.sourceforge.shelled.ui.prefs).
https://bugs.launchpad.net/ubuntu/+source/light-themes/+bug/540332
Для себя я выбрал способ добавления в ini файл опций раскраски:
При этом, если какой-то плагин продолжает показывать корявые цвета, то его настройки можно найти в той же директории и таким же образом похачить. Например, так я починил плагин ShellEd (net.sourceforge.shelled.ui.prefs).
Thursday, July 14, 2011
BSD diff
Исправляя проблему в rspamd с неверным рассчетом "похожести" частей в мультипарте, решил заменить вычисление расстояния Левенштейна на поиск максимальной общей подстроки - алгоритм, используемый в diff. В итоге нашел алгоритм под MIT лицензией (практически аналогичной BSD), который мне и подошел: http://www.ioplex.com/~miallen/libmba/dl/src/diff.c
После небольших изменений под glib (например, использование GArray) я написал тест для сравнения с вычислением расстояния Левенштейна. Для коротких текстов разница в скорости практически незначительна, но уже на 20кб тексте расстояние Левенштейна считалось 8 секунд, а diff алгоритм выполнился за 8 миллисекунд, что вполне приемлимо для работы.
Теперь пытаюсь найти алгоритм для вычисления нечеткой сигнатуры для письма. Используемый сейчас алгоритм - производная от ssdeep - очень плохо устойчив к сдвигам внутри текста. Любой сдвиг гарантированно разбивает несколько участков сигнатуры. Кроме этого, есть задача сокращения размерности сигнатуры (сейчас это 64 символа) для того, чтобы искать сигнатуру по KD-дереву, которое опять же плохо работает для больших размерностей (неэффективно как в плане памяти, так и в плане нахождения похожих элементов).
После небольших изменений под glib (например, использование GArray) я написал тест для сравнения с вычислением расстояния Левенштейна. Для коротких текстов разница в скорости практически незначительна, но уже на 20кб тексте расстояние Левенштейна считалось 8 секунд, а diff алгоритм выполнился за 8 миллисекунд, что вполне приемлимо для работы.
Теперь пытаюсь найти алгоритм для вычисления нечеткой сигнатуры для письма. Используемый сейчас алгоритм - производная от ssdeep - очень плохо устойчив к сдвигам внутри текста. Любой сдвиг гарантированно разбивает несколько участков сигнатуры. Кроме этого, есть задача сокращения размерности сигнатуры (сейчас это 64 символа) для того, чтобы искать сигнатуру по KD-дереву, которое опять же плохо работает для больших размерностей (неэффективно как в плане памяти, так и в плане нахождения похожих элементов).
Wednesday, July 13, 2011
Новый переезд
В связи с ублюдской политикой РосНИИРОСа относительно доменов третьего уровня, я принял решение перенести свой технический блог сюда. Благо, импортировать данные из wordpress не составляет никаких трудностей.
Tuesday, May 25, 2010
Обсчет данных ip accounting по заданному ip
Возникла задача разбирать логи ip accounting'а с целью определить, какой пользователь куда тратит свой трафик. Для этой цели написал простой перловый скрипт, который разбирает строчки данных ip accounting'а, ищет строчки, относящиеся к заданному ip и выводит 2 списка: общий список адресов исходящего и входящего трафика, и список 5-ти самых активных адресов. Возможно, кому-то пригодится. Лежит тут: http://cebka.pp.ru/stuff/ipacct_counter.pl. Пример использования:
# cat /data/log/ipacct/2010-05-25/2010-05-25-00 | perl ipacct_by_dest.pl <ip>
# cat /data/log/ipacct/2010-05-25/2010-05-25-00 | perl ipacct_by_dest.pl <ip>
Subscribe to:
Posts (Atom)