среда, 30 июля 2008 г.

Базы данных для семантического анализа

Вот здесь можно скачать базы данных, которые потенциально можно использовать в алгоритмах семантического анализа. Базы созданы на основе википедии и содержат 2.18 миллионов понятий, включая информацию о 80,000 людях, 293,000 местах, 62,000 музыкальных альбомах и 36,000 фильмах. Кроме того, в DBpedia содержится порядка 218 миллионов триплетов (см. RDF).

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

Вообщем, пока поставлю в планы как "посмотреть" :) Хочется сначала доделать основноую часть переводчика. Конец уже близок...

вторник, 29 июля 2008 г.

Обзор Microsoft Live Mesh

Очень интересная статья про Microsoft Live Mesh. Вещь выглядит интересно, хотя возникает чувство, что из этого можно выжать еще больше. Но самый смак - в конце статьи, а именно то, что Live Mesh позволяет поключиться к рабочему столу удаленного компьютера (да-да! терминальный доступ! из браузера!) даже в случае если он наглухо закрыт фаерволлами и вообще не имеет внешнего ip адреса.

понедельник, 28 июля 2008 г.

Работа с потоками в c#

Пожалуй лучшая статья (часть 1, часть 2), которую я читал про работу с потоками в c#.

среда, 23 июля 2008 г.

Еще немного про сохранение настроек приложения

Старый пост на эту тему вот уже почти год как находится на вершине списка самых посещаемых страниц блога :) К сожалению, там я забыл упомянуть о том, что надо делать если вы используете для сохранения настроек класс Settings и обновили ваше приложение. Как на машине пользователя перенести настройки из старого конфигурационного файла в новый?

Ответ прост - метод Properties.Settings.Default.Upgrade() сделает все за вас!

Остается решить еще одну проблему - когда надо вызывать метод Upgrade()?

Как один из вариантов я предлагаю хранить в настройках версию сборки нашего приложения. Если текущая версия вдруг перестанет совпадать с сохраненной - это и означает, что надо вызвать метод Upgrade().

Возможно есть и другие способы - пишите, я добавлю :)

вторник, 22 июля 2008 г.

Еще одна библиотека для работы с почтой

Нсли вдруг кого не устраивает предыдущая библиотека, то вот еще одна:

C#Mail is a library to send or receive mail written by C#.

The basic class of Message is 
1---InternetTextMessage class(RFC822)
2---MimeContent class(RFC2045-RFC2049) 
3---MailAddress class( "MyName" ) 

Pop3 functionality list is ...
1---Authentication (Plain,A-Pop)
2---TCP-IP and SSL 
3---Asynchronous request and response 
4---All Pop3 command is represented as class
5---Retr command and Pop3Message class

Smtp functionality list is ...(sorry,some of them is under construction...)
1---Authentication(Plain,Login,CRAM-MD5)
2---TCP-IP and 
3---All Smtp command is represented as class


P.S.: не тестировал. Используйте на свой страх и риск :)

понедельник, 21 июля 2008 г.

Отображение новых диалогов открытия/сохранения файлов под Vista

Наверняка вы столкнетесь с отображением не того диалога открытия или сохранения файла под Vista. Собственно отличие диалогов хорошо видно на скриншотах:



Есть несколько способов решения проблемы отображения правильного диалога. На мой взгляд, самым простым является использование вот этой библиотеки, которая позволяет вызывать стандартные для Висты диалоги открытия и сохранения файла, выбора папки, TreeView, ListView, Command Links

воскресенье, 20 июля 2008 г.

Обновление переводчика от 20.07.2008

Взять можнно тут. Переделал бОльшую часть диалогов в редакторах, поправил несколько ошибок, получше распределил формы/контролы/классы между сборками. Вообщем-то ничего особо существенного для целей перевода - но выглядит теперь симпатичнее :)

воскресенье, 13 июля 2008 г.

Обновление переводчика от 13.07.2008

Итак, последнюю на данный момент версию можно взять тут.

  • Убрал использование сторонних алгоритмов анализа.
  • Убрал редактор скриптов на C# и модуль анализа - теоретически использовать можно, практически же то, что было, намного удобнее.
  • Дописан модуль добавления в словарь переводов слов напрямую из редактора-переводчика.
  • Подчищен код во всех файлах проекта. Исправлены мелкие недочеты.
  • Добавлены интерфейсы IOpenFormatConverter, ISaveFormatConverter через которые реализуется процесс чтения/сохранения данных в разных форматах.
Пожалуй скоро уже можно будет и код с документацией выкладывать... Вот доделаю еще немного...

суббота, 12 июля 2008 г.

Упрощение доступа к значениям в IDictionary

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

вторник, 8 июля 2008 г.

Переводчик

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

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

Вообще, хотелось бы наконец довести до ума "внешнюю" часть переводчика. Потому что смотреть на тот код, что используется в пользовательском интерфейсе (особенно в самом редакторе-переводчике) просто страшно. Кажется, что проще написать с нуля, чем понять как ЭТО вообще может работать :) Болезнь роста...

Больше всего меня удручает то, что я так и не придумал более-менее нормального варианта взаимодействия модулей с пользовательским интерфейсом. Нужно, чтобы модули могли добавлять свои пункты главного и контекстного меню, кнопки на панели и свои панели. Но вот как правильно это надо делать я так и не нашел. Если кто поможет советом - буду сильно благодарен.

Немного картинок:

понедельник, 7 июля 2008 г.

А счастье было так близко... Снова про Эльбрус

Cnews.ru опубликовал еще одну статью про отечественный микропроцессор. Ну что я могу сказать? Лет 10 назад это еще было бы ничего. Сейчас - описанные характеристики (130 нм техпроцесс и 300 мгц частота процессора) вызывают, мягко говоря, удивление.

Из интересного стоит отметить встроенный в процессор эмулятор x86-команд и значительно бОльшая производительность при вещественных вычислениях. Как заявляют разработчики:

«Мы не говорим, что «Эльбрус» быстрее Pentium’а, но при вещественных вычислениях он при своих 300 MHz показывает производительность аналогичную Pentium’ам с частотой 500 MHz — 1,5 GHz в зависимости от задачи»

P.S.: Остается надеяться на дальнейшее развитие по примеру китайцев с их процессором. Тогда лет через 15 при всемерном содействии государства есть некоторые шансы догнать ведущих разработчиков. Чудеса иногда все-таки случаются...

Полезные утилиты

Вот тут пишут про две утилиты, которые умеют генерировать код на С# и VB.NET для вызова native функций в .net приложениях. Может кому пригодится...