LINUX.ORG.RU

Сообщения migesok

 

Ищу Java-библиотеку для склонения ФИО по правилам русского языка

Есть необходимость из Java-кода склонять российскомовные ФИО по падежам. На вход подаётся фамилия, имя, отчество, возможно пол (если нет - надо угадать по известным составляющим имени) и падеж, на выходе - ФИО в падеже.

Пытался найти живую Java-библиотеку для этого, но пока находятся странные вещи:

  • padeg - некрофильский порт библиотеки с Delphi

    http://habrahabr.ru/post/161335/

    В maven-central нет, исходников - тоже нет.

    В декомпилированном коде нашёл, что она срёт в статические ThreadLocal и не чистит, а значит при использовании в контейнере сервлетов при каждом редеплое возможна утечка памяти.

  • petrovich-java - порт более-менее живой одноимённой Ruby-библиотеки

    https://github.com/petrovich/petrovich-java

    В maven-central тоже нет, но хотя бы есть исходники. Похоже, что этот порт давно не обновляли и, что он разошёлся с оригиналом на Ruby по возможностям.

    Не умеет детектить пол по частям ФИО, но это, наверное, не большая беда.

Спросил ещё знакомого, работавшего над одним из крупных онлайн-банков: у них были свои самописные костыли. У меня на велосипеды времени нет.

Кто что использовал для подобных задач?

 , ,

migesok
()

андроидо-виджет и синхронизация данных в условиях разрывов связи

Собрался я значит написать простенький виджет для андроида: раз в два часа тягает данные с REST-API и выводит одну цифорку. Всё бы ничего, да захотелось, чтобы, если по отсутствию интернета очередной сеанс связи провалился, виджет бы обновился тогда, когда появится интернет, а не по расписанию.

Я нашёл в доках, что можно сделать отдельный BroadcastReceiver, подписанный на событие «смена состояния подключения». Чтобы батарейку лишний раз не жрать, его рекомендуется активировать по необходимости. В моём случае, видимо, - при неудавшейся попытке обновиться по расписанию. Вроде всё понятно, но вместе как-то сложно выходит. Смотрите:

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

А теперь самая хитрость: как эту всю котовасию синхронизировать, чтобы одновременно никто из двух потоков не полез view виджета обновлять, и чтобы, если AppWidgetProvider и BroadcastReceiver проснулись примерно одновременно, не было двух обращений к REST-API.

Может я что-то перемудрил и можно проще?

 , , ,

migesok
()

Аутентификация в AD внешнего актёра по сертификату

Есть SOAP-сервис. В виде BinarySecurityToken'а приходит сертификат X509, которым подписывается тело сообщения. Нужно провести аутентификацию актёра при том, что данные по нему (в том числе сертификаты) могут лежать только в AD. Если бы актёр присылал username+password, то можно было бы сделать bind под известным системе аккаунтом и найти по присланному username соотв-ю запись. Потом rebind под ней, и по результатам него принимать решение по аутентификации. Однако, как сделать bind в AD имея на руках только публичный ключ сертификата - понятия не имею. Можно ли делать bind в AD по публичной части сертификата? Если нет, то как лучше провести аутентификацию?

 , , ,

migesok
()

RSS подписка на новые темы