понедельник, 26 января 2009 г.

Face Detection

CAPTCHA

Распознавание такой капчи:

бинаризуем

трансформируем

и распознаём :)

PHP2ASP

Ищу конвертер с PHP на ASP.

среда, 21 января 2009 г.

Рынок б/у автомобилей

Интересно, почему "Hyundai Santa Fe II" 2008 года дешевле 2007 года выпуска, а 2007 дешевле, чем 2006?

четверг, 15 января 2009 г.

Восстановление доступа к DNN

Что делать, если вы забыли пароль к профилю на DNN, но есть непосредственный доступ к самой базе данных.

Оригинал:
http://www.deutschnetnuke.de/tabid/183/Default.aspx
Regain Host Password [Hier können Sie den Inhalt des aktuellen Moduls ausdrucken]

As there are frequent requests from users, who lost the password of the host account (and you cannot request the host password by email), the following solution will help for all DNN 3 and 4 installation. Please note, that your need direct access to the database to suceed with the issue:

* if "register" is not displayed for the portal, go to table "Portals" in your database and enter value "2" into column "UserRegistration".
* create a new user account by registration (this time, please remember the password you enter!)
* go to database, enter table "ASPNet_Membership"
* go to new user account (usually the last one) and copy the encrypted values of columns "Password" and "PasswordSalt" into the same columns of user account "host" (usually th first entry in this table)
* login as user "host" using the new password and delete the reshly created other user.
* if changed, revert UserRegistration mode in Site Settings
* Keep remembering your password ;)

вторник, 13 января 2009 г.

Русская морфология для ASP.NET

Я тут написал класс для работы с русской морфологией.
На выходе получаем начальную форму слова, все словоформы, часть речи, к которой принадлежит слово, а также грамматическую информацию (род, число, падеж,...)

Пример работы:
ДЛЯ:
0)ДЛЯ ПРЕДЛ-[]
1. ДЛИТЬ:-[нс][пе]
1.00)ДЛИТЬ Г-[дст][дпр][нст]

МАШИНЫ:
0. МАШИН:-[од][фам]
0.00)МАШИН С-[мр][жр][мн][им]
1. МАШИНА:-[но]
1.00)МАШИНА С-[жр][ед][рд]
1.01)МАШИНА С-[жр][мн][им]
1.02)МАШИНА С-[жр][мн][вн]

Все словоформы слова:
ПОЦЕЛУЙ:
ПОЦЕЛОВАТЬ;ПОЦЕЛОВАЛ;ПОЦЕЛОВАЛА;ПОЦЕЛОВАЛО;ПОЦЕЛОВАЛИ;ПОЦЕЛУЮ;ПОЦЕЛУЕМ;
ПОЦЕЛУЕШЬ;ПОЦЕЛУЕТЕ;ПОЦЕЛУЕТ;ПОЦЕЛУЮТ;ПОЦЕЛОВАВ;ПОЦЕЛОВАВШИ;ПОЦЕЛУЕМТЕ;
ПОЦЕЛУЙ;ПОЦЕЛУЙТЕ;ПОЦЕЛОВАВШИЙ;ПОЦЕЛОВАВШЕГО;ПОЦЕЛОВАВШЕМУ;ПОЦЕЛОВАВШИМ;
ПОЦЕЛОВАВШЕМ;ПОЦЕЛОВАВШАЯ;ПОЦЕЛОВАВШЕЙ;ПОЦЕЛОВАВШУЮ;ПОЦЕЛОВАВШЕЮ;
ПОЦЕЛОВАВШЕЕ;ПОЦЕЛОВАВШИЕ;ПОЦЕЛОВАВШИХ;ПОЦЕЛОВАВШИМИ;ПОЦЕЛОВАННЫЙ;
ПОЦЕЛОВАННОГО;ПОЦЕЛОВАННОМУ;ПОЦЕЛОВАННЫМ;ПОЦЕЛОВАННОМ;ПОЦЕЛОВАН;
ПОЦЕЛОВАННАЯ;ПОЦЕЛОВАННОЙ;ПОЦЕЛОВАННУЮ;ПОЦЕЛОВАННОЮ;ПОЦЕЛОВАНА;
ПОЦЕЛОВАННОЕ;ПОЦЕЛОВАНО;ПОЦЕЛОВАННЫЕ;ПОЦЕЛОВАННЫХ;ПОЦЕЛОВАННЫМИ;
ПОЦЕЛОВАНЫ;ПОЦЕЛУЙ;ПОЦЕЛУЯ;ПОЦЕЛУЮ;ПОЦЕЛУЕМ;ПОЦЕЛУЕ;ПОЦЕЛУИ;ПОЦЕЛУЕВ;
ПОЦЕЛУЯМ;ПОЦЕЛУЯМИ;ПОЦЕЛУЯХ;

МАШИ:
МАША;МАШИ;МАШЕ;МАШУ;МАШЕЙ;МАШЕЮ;МАШ;МАШАМ;МАШАМИ;МАШАХ;МАХАТЬ;МАХАЮ;МАШУ;
МАХАЕМ;МАШЕМ;МАХАЕШЬ;МАШЕШЬ;МАХАЕТЕ;МАШЕТЕ;МАХАЕТ;МАШЕТ;МАХАЮТ;МАШУТ;
МАХАЛ;МАХАЛА;МАХАЛО;МАХАЛИ;МАХАЯ;МАХАВ;МАХАВШИ;МАХАЙ;МАШИ;МАХАЙТЕ;МАШИТЕ;
МАХАЮЩИЙ;МАШУЩИЙ;МАХАЮЩЕГО;МАШУЩЕГО;МАХАЮЩЕМУ;МАШУЩЕМУ;МАХАЮЩИМ;МАШУЩИМ;
МАХАЮЩЕМ;МАШУЩЕМ;МАХАЮЩАЯ;МАШУЩАЯ;МАХАЮЩЕЙ;МАШУЩЕЙ;МАХАЮЩУЮ;МАШУЩУЮ;
МАХАЮЩЕЮ;МАШУЩЕЮ;МАХАЮЩЕЕ;МАШУЩЕЕ;МАХАЮЩИЕ;МАШУЩИЕ;МАХАЮЩИХ;МАШУЩИХ;
МАХАЮЩИМИ;МАШУЩИМИ;МАХАВШИЙ;МАХАВШЕГО;МАХАВШЕМУ;МАХАВШИМ;МАХАВШЕМ;МАХАВШАЯ;
МАХАВШЕЙ;МАХАВШУЮ;МАХАВШЕЮ;МАХАВШЕЕ;МАХАВШИЕ;МАХАВШИХ;МАХАВШИМИ;

понедельник, 12 января 2009 г.

Regexp для разложения адреса

Это регулярное выражение раскладывает адрес на составляющие: местоположение, улица, дом, копрус, квартира:

(?<streetorlocation>((\d+\-)?[А-Я\.]{2,} (\d+-[йая]{1,2} )?)*)(?<streettype>((площ(адь)?(\.)?)|(улица)|(переулок)|(проспект)|(пр-д)|(б-р)|(пр-т)|(бульвар)|(набережная)|(бул(ьв)?[ \.]?)|(п(ер)?(?:\. | )?(-к)?)|(шоссе)|(ш(\.| )+)|(пл(\.| )+)|(пр(\.| )+)|(наб(\.| )+)|(ул(?:\.)?))) *(?<street2>[А-Я]{2,} )?(?:д\.? ?)?(ДОМ)?(?<home>\d+[а-я]?)([ \\\-/К]+(КО(Р)?(П)?(Р)?\.? ?)?(?<building>\d+)[ \\\-/](кв\.? ?)?(?<flat>(\d+|ОБЩ)))*([ \\\-/](кв\.? ?)?(?<flat>(\d+|ОБЩ)))?|((?<streetorlocation>([0-9\- А-Я\.]*)?[А-Я]{2,}) (?<home>\d+)[ \\\-/]((?<building>\d+)[ -/])?(?<flat>(\d+|ОБЩ)))

Корректно выполняется для строк вида:
УЛ. ГОЛОВАЧЕВА 5-1-77
ГОЛОВАЧЕВА 3-3-149
ГОЛОВАЧЕВА 13-31
ГОЛОВАЧЕВА УЛ. 3-3-85
УЛ.ГОЛОВАЧЕВА Д.5 1 80
УЛ.ГОЛОВАЧЕВА Д.3 КОРП.3 КВ.153
ГОЛОВАЧЕВА УЛИЦА Д.17 106
ГОЛОВАЧЕВА УЛИЦА Д.7 КОР.1 76
ГОЛОВАЧЕВА Ул. 190 ОБЩ
ГОЛОВАЧЕВА Ул. 1 2 30
ШЕСТИДЕСЯТИЛЕТИЯ ОКТЯБРЯ Пр-т 11 ОБЩ
КЕДРОВА Ул. 26/22 76
КРЖИЖАНОВСКОГО Ул. 23 2 44
ЧЕРЕМУШКИНСКАЯ Б. Ул. 18 1 44
ЧЕРЕМУШКИНСКАЯ Б. Ул. 18 1 30
НОВОЧЕРЕМУШКИНСКАЯ Ул. 26 ОБЩ


Не работает для:
ГОЛОВАЧЕВА Д.5-2 34
УЛ.ГОЛОВАЧЕВА Д.7 К.2 12
ГОЛОВАЧЕВА Д.11 86
ГОЛОВАЧЕВА 7 1 28 55
ГОЛОВАЧЕВА-17-155
ГОЛОВАЧЕВА 3 КОР3 КВ0066
ШЕСТИДЕСЯТИЛЕТИЯ ОКТЯБРЯ Пр-т 31/18 2 7


Может, кто-нибудь написал более гибкое выражение и готов поделиться?

P.S. Тестировалось программой RegEx Tester