NHyphenator - C# библиотека для автоматической расстановки переносов

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

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

О том, что такое мягкий перенос, зачем он нужен и как работает, можно по-прежнему прочитать в старом посте....


Читать далее
Комментарии

Потокобезопасный Синглтон на C#

Синглтон – один из самых известных паттернов проектирования, реализацию которого очень часто спрашивают на собеседованиях. И в то же время - это один из самых главных анипаттернов, использовать которые не рекомендуется. В чем же дело, когда и как его можно и нужно использовать и зачем про него спрашивают? Попробуем разобраться....


Читать далее
Комментарии

Как грабить корованы. Видео с dotnetconf

Когда-то давно (весной 2016) мы с Русланом Сафиным пришли на челябинский ДотНетКонф и рассказали там почти всё, из того что знали про сбор данных с кучи сайтов в промышленных масштабах.

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


Читать далее
Комментарии

Извлечение фактов с помощью Томита-парсера

В предыдущем посте мы узнали что обычно понимается под термином "Извлечение информации" и заодно рассмотрели формальные грамматики, которые могут быть полезны для этого самого извлечения информации. Теперь пора взять в руки парсер и сделать для него грамматику....


Читать далее
Комментарии

Извлечение информации и формальные грамматики

Все описанное ниже основано на домыслах и догадках, если я в чем-то не прав – буду рад комментариям и поправкам.

Извлечение информации (Information Extraction или коротко - IE) – это задача обработки текста, цель которой - перевод тех фактов, что записаны естественным языком в структурированную форму....


Читать далее
Комментарии

Парсинг XML с namespaces

Всегда при необходимости прасинга XML меня немного раздражала необходимость возиться с неймспейсами и тут наконец-то до меня дошло простейшее решение.

Например у нас есть такой XML...


Читать далее
Комментарии

Автоматическое определение языка

Добрый день! Сегодня хотелось бы продолжить серию заметок о инструментах работы с текстовыми данными.

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


Читать далее
Комментарии

Автоматическое определение кодировки

Иногда возникает ситуация, при которой необходимо узнать кодировку текста, который попадает из каких-нибудь внешних источников - например вам надо обработать файл загруженный пользователем или сохранить в базу текст из HTML страницы.

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

Выяснить это можно несколькими способами:

Для текста:...


Читать далее
Комментарии

Алгоритм Ляна-Кнута для расстановки мягких переносов на C#

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


Читать далее
Комментарии

C#, MVC 3 и задание формата сериализации в json

Для того чтобы отдать json-ответ в ASP.NET MVC используется метод Json(), который есть у стандартного класса Controller. Этот метод скрывает внутри себя создания объекта класса JsonResult, который в свою очередь в методе ExecuteResult использует JavaScriptSerializer для сериализации переданного ему объекта....


Читать далее
Комментарии

Запуск задач по расписанию в .NET и C#

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

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


Читать далее
Комментарии
Яндекс.Метрика