понедельник, 27 декабря 2010 г.

Стеммер Портера для русского языка на Delphi

Пример реализации стеммера Портера для русского языка без использования регулярных выражений на Delphi. Стемминг - это вероятностный процесс выделения основы слова. Не использует базы и словари. Суть алгоритма в постепенном отбрасывании окончаний и суффиксов, опираясь на правила словообразования конктретного языка.


Скачать программу и исходник

вторник, 21 декабря 2010 г.

Key Tree 0.8.0


Скачать последнюю версию Key Tree
Зеркало на GE.TT

Основные изменения
  • Поиск по узлам дерева, с возможностью синхронизации фильтров таблицы и дерева
  • Упрощеный вид дерева, с мелкими узлами
  • Контекстные меню для всех таблиц
  • Таблица статистики слов в разделах
  • Альтернативы в фильтрах

В архиве пример проекта, ключевиков для создания нового проекта и папка экспортированного проекта.

Подробное описание

суббота, 4 декабря 2010 г.

Key Tree 0.7.7


Исправления и дополнения

Исправлен баг: при перетаскивании родителького узла на дочерний все задействованные узлы пропадали из дерева.

четверг, 2 декабря 2010 г.

Множественный поиск и выделение результатов

В программе Key Tree я впервые столкнулся с необходимостью множественного поиска в строке и подсветки результатов. Для поиска и подсветки единственного вхождения у меня было готовое решение, которое совершенно не подходило для хранения результатов от нескольких вхождений. Зато код подсветки пришелся в самый раз.


среда, 1 декабря 2010 г.

Key Tree

Key Tree - программа для визуального создания структуры сайта и формирования семантического ядра на основе отчетов Key Collector.


Идея
Назначение программы том, что бы раскидать все ключевые слова по узлам будущего сайта или в корзину. Готовое дерево сайта одним кликом превращается в набор папок, совпадающих структурой и названиями с деревом. Для каждой папки создаются файлы с ключевыми словами(keywords.txt) и описанием страницы (content.txt).

Подробное описание

пятница, 26 ноября 2010 г.

ICQMenace v2.0 Beta

ICQMenace - программа для исследования протокола, написана coban2k. Последняя версия от coban2k - 0.8 от 2003 года. Программа замечательная, поэтому я ее доработал под свои нужды. Теперь в программе 2 независимых движка сбора информации:

Инжектирование через Sniffer.dll.

Метод был хорош раньше, теперь он почти не работает. Виста и выше блокируют перехват, а антивирусы повально считают библиотеку трояном. Поэтому В программу добавлен новый движок захвата данных - Debug Gate. Старый движок на Sniffer.dll остался, но по-умолчанию отключен (для работы с ним положите в папку Sniffer.dll от старой версии).

вторник, 16 ноября 2010 г.

[DC] Перенос и портирование приложений в Delphi и С++(Qt)

Эта заметка открывает серию постов [DC] - Delphi And C++. В [DC] я буду сравнивать Delphi и С++(Qt). Синтаксис, типы данных, алгоритмы, классы, паттерны, gui, все что можно сравнить в рамках здравого смысла.

Мне не раз встречались задачи по переносу приложений или кусков кода с С/C++ на Delphi. Обратное встречается реже, но тоже не исключено. Проблему переноса кода с одного языка на другой можно решать по-разному. Можно переписать "в лоб". Можно портировать, изменив архитектуру проекта или заменив языковые средства, на более подходящие/удобные/любимые в новой среде.

четверг, 11 ноября 2010 г.

QCocoaApplication

Чем мне нравиться Qt, так это возможностью создавать приложения с использованием родных платформозависимых компонентов. В приложении к Mac-у, это использование родных графических фреймворков Cocoa и Carbon. Впрочем любые другие фреймворки не проблема. В стандартной поставке Qt есть демо Demos/macmainwindow, в котором демонстрируется использование родных элементов управления Cocoa через QMacCocoaViewContainer и Carbon через HI API. На самом деле работа с Cocoa/Carbon это лишь частный случай смешения кода на Objective-C++ и Qt.

вторник, 9 ноября 2010 г.

Что такое KEXT?

Kext - это сокращение от kernel extension (расширение ядра) , разновидность пакета (bundle), содержащего исполняемый код (один или ни одного файла), ресурсы и плагины (плагины, тоже в формате bundle). C точки зрения файловой организации кекст это папка с расширением .kext, в которой лежит особым образом оформленный файл свойств пакета (./Contents/Info.plist), исполняемый файл расширения ядра (./Contents/MacOS/), ресурсы (./Contents/Resources/) и плагины (./Contents/Plugins/). Обычно Finder не показывает содержимое пакетов при навигации по папкам (исключение составляют frameworks). Для просмотра содержимого кекстов в контекстном меню файла необходимо выбрать пункт Show Package Contents (Показать содержимое пакета), после чего Finder покажет содержимое папки в новом окне.

Почему Delphi?

На Delphi я пишу почти 8 лет. Начиналось все с Turbo Pascal 7.0 в школе. Потом первое знакомство с Delphi 7.0. В свободное время, как и большинство самоучек, занимался формоклепательтсвом и изучением внутренностей VCL. Лишь спустя 2 года пришло понимание Delphi как целостной системы, органичного симбиоза мощной среды разработки и простого языка программирования. А с ним и осознание того, что мои знания лишь вершина огромного айсберга возможностей, которые нужно изучить, что бы грамотно и эффективно создавать приложения в этой “экосистеме”.

Почему Mac?

Просто нравится. Я не фанат техники Apple, не гоняюсь за новинками, не впутываюсь в их микро-мир Тунца и АппСторов, который с каждой минутой норовит стать макро. А “большие кошки” мне нравятся. MacOS X - вот он *nix с человеческим лицом. Безусловно, он не идеален, местами он очень “Think Different ™”, в нем есть не логичные вещи (с точки зрения пользователя Windows), а порой и реально неудобные. Но все это скорее капризы недавнего свитчера с богатым прошлым на “окнах”, все таки 10 лет “вредной привычки” дают о себе знать.