LinqToSolr — используем LINQ для получения данных из Solr

Автор: admin от 21-04-2017, 13:25, посмотрело: 29

LinqToSolr — используем LINQ для получения данных из Solr
В силу того, что в нашей компании в качестве платформы полнотекстового поиска выбор пал на Solr, возникло сильное желание упростить работу с запросами к Solr через использование LINQ выражений.

Перешерстив интернет на наличие альтернатив, я пришел к выводу, что на данный момент необходимой мне библиотеки в общем доступе нет. Максимум, что удалось найти, это очень частичную реализацию запросов в Solr.NET (и скептический комментарий самого автора).

Результатом стала маленькая библиотека LinqToSolr, которая содержит в себе реализацию интерфейса IQueriable<> с возможностью конвертации запросов в понятный Solr API и обратно.

Категория: Программирование

 

Упрощаем конвертеры для WPF

Автор: admin от 17-04-2017, 11:20, посмотрело: 31

Около года уже работаю с WPF и некоторые вещи в нем откровенно выбешивают. Одна из таких вещей — конвертеры. Ради каждого чиха объявлять реализацию сомнительно выглядящего интерфейса где-то в недрах проекта, а потом искать его через Ctrl+F по названию, когда он вдруг понадобится. В мульти-конвертерах так вообще сам черт запутается.

Ситуацию усугубляет MVVM, благодаря которому не использовать это чудо науки получается довольно редко. Что-же, пришло время немного облегчить рутину создания и использования конвертеров, поехали.

Категория: Программирование, Веб-разработка, Windows

 

Как сделать свою IDE уровня IDEA

Автор: admin от 15-04-2017, 22:45, посмотрело: 39

Некоторое время назад я опубликовал пост, в котором поднял тему низкого уровня качества моего любимого инструмента — PyCharm, и спросил: что делать? Данная проблема видится мне совершенно обескураживающей: 21-й век на дворе, а единственная доступная мне профессиональная IDE развивается по принципу «лучше — больше, но хуже». Имеется около десятка багов, исправление которых я лично жду годами, не говоря уже о тех проблемах, которые мне стало лень зарепортить. Количество багов растёт каждый год с постоянной скоростью, а в качестве оправдания я слышу рассказ о зависимости количества багов от количества пользователей. Альтернатив нет, а пилить свою IDE — почти нереально. Так что же делать?

Среди потока эмоциональных комментариев меня особо заинтересовал один — никем не замеченный, в котором пользователь VISTALL скромно сообщил, как он решил эту проблему для себя. Он сделал свой форк IDEA для .NET и C# — Consulo IDE. Для меня лично такое заявление стало полной неожиданностью. Извините, если кто-то не разделяет моего удивления, но для меня это совершенно непостижимо так же, как вездесущие вечные баги в PyCharm. Ведь IDE разрабатывают большие команды разработчков, а он решил сделать свой форк, пусть даже и форк, но свой, который нужно поддерживать и развивать самому… Как??? Этот вопрос я решил задать лично автору форка — Валерию Семенчуку, а заодно и много других вопросов. Слово за слово, получилось небольшое интервью, надеюсь, интересное не только мне…

Категория: Программирование

 

Суперсилы WinDbg для .NET-разработчиков

Автор: admin от 14-04-2017, 10:35, посмотрело: 21

Продолжая серию публикаций по докладам на конференциях, мы остановились на лучшем докладе DotNext 2016 Moscow, в которой Саша Гольдштейн рассказывает о возможностях WinDbg для отладки .NET приложений. Этот действительно мощный инструмент позволяет решать задачи, с которыми не справляется встроенный отладчик Visual Studio.

Особенно этот материал будет полезен тем, кому сложно смотреть доклады на английском языке, так как расшифровка переведена на великий и могучий!


Категория: Программирование, Веб-разработка

 

Визуализация простой геометрии в WPF

Автор: admin от 13-04-2017, 15:20, посмотрело: 23

Что такое геометрия модели


Для работы с 3D моделями мы используем специальные конвейеры обработки — OpenGL и DirectX. Когда конвейеры строят картину, они используют информацию:


  • о модели — её материале, геометрии и текстурах,

  • о сцене — освещении и настройке камеры.


Любая модель начинается с геометрии. Геометрия модели — это набор точек в трехмерном пространстве и набор треугольников из этих точек. Треугольник компланарен — он лежит в плоскости, в отличие от фигур с большим числом точек, которые в общем случае не лежат в плоскости.

Если задать у треугольника направление обхода границы, он станет ориентированным треугольником. У ориентированного треугольника в трехмерном пространстве можно выделить внутреннюю и внешнюю стороны. По направлению обхода границы мы также определяем единственный по направлению вектор нормали для каждого треугольника. Так, в геометрию модели, помимо точек и треугольников, входит набор нормалей к каждому из треугольников. При отображении модели точки модели соответствуют точкам, треугольники модели соответствуют граням.

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

Визуализация простой геометрии в WPF

Категория: Программирование

 

«Да ты же просто робот, имитация. Разве может робот написать симфонию, сделать шедевр?» — интервью с Дмитрием Сошниковым

Автор: admin от 12-04-2017, 10:25, посмотрело: 26

Разработка элементов систем искусственного интеллекта активно развивается и становится трендом сегодняшнего времени, а умных ботов сейчас и вовсе не пишет только ленивый. Именно поэтому мы взяли интервью у Дмитрия Сошникова, одного из лучших в стране экспертов по ИИ. Он является технологическим евангелистом Microsoft, автором книг, статей и учебных пособий, а также преподавателем и координатором студенческих программ, специалистом по функциональному программированию, нейросетям и искусственному интеллекту.

«Да ты же просто робот, имитация. Разве может робот написать симфонию, сделать шедевр?» — интервью с Дмитрием Сошниковым

Категория: Программирование

 

Tarantool как основное хранилище данных для серверных приложений, написанных на .NET

Автор: admin от 11-04-2017, 16:05, посмотрело: 36

Tarantool как основное хранилище данных для серверных приложений, написанных на .NET


Этот пост — текстовая версия доклада, представленного на Tarantool Meetup второго марта 2017-го года в Mail.Ru Group с поправкой на то, что прошёл уже месяц, и кое-что из обещанного уже было реализовано, поэтому текст будет интересен даже тем, кто видел выступление.


Большое спасибо коллегам, друзьям и сотрудникам компании Mail.Ru Group, которые помогали написать эту статью.


Выбор СУБД


В жизни каждого проекта рано или поздно возникает переломный момент, когда нужно выбрать СУБД для хранения всех данных. Наш проект с этой точки зрения простой: пользователи, голосования, ответы, какая-то попутно собираемая информация — всё это прекрасно можно держать в key-value хранилище. Поэтому на старте мы рассматривали три варианта: Redis, Tarantool и MySQL с handlersocket. Фаворитом с самого начала был Redis. Он быстро работает, у него замечательный коннектор для .NET, созданный командой Stack Overflow. К слову, сам Stack Overflow написан на .NET, работает на Windows, у них SQL Server от Microsoft, Redis и ещё много интересного. У Redis прекрасная документация. Если мы нанимаем нового программиста, который никогда не работал с Redis, то мы отправляем его туда — и через три дня он знает примерно всё, что ему нужно знать для использования Redis.

Категория: Программирование

 

Guard классы — использовать или нет?

Автор: admin от 11-04-2017, 11:35, посмотрело: 28

На днях мне довелось делать довольно крупные изменения в одном C# проекте — удаление сторонней сборки. Самое "замечательное", что львиную долю времени я потратил на изменение мест, где использовались helper'ы из этой сборки (так сказать бонус к основной функциональности).


Helper'ы такого вида:


Guard.ArgumentNotNull(myobject, "myobject");

Категория: Программирование

 

Разбираем квалифицированные сертификаты X.509 в поисках ИНН, СНИЛС и ОГРН

Автор: admin от 9-04-2017, 01:15, посмотрело: 50

Разбираем квалифицированные сертификаты X.509 в поисках ИНН, СНИЛС и ОГРН«Коллеги, нам необходимо вести реестр выданных квалифицированных сертификатов с возможностью поиска по ИНН, СНИЛС и ОГРН. Сколько дней нужно для создания парсера сертификатов и первого макета?» — с такого вопроса начальника началась очередная летучка.

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

Когда-то я участвовал в небольшом проекте по моделированию SSL MITM, где отвечал за генерацию ключей и сертификатов для этого самого «человека посередине». Поэтому представлял, что квалифицированный сертификат ключа проверки электронной подписи (далее — квалифицированный сертификат) — это сертификат X.509, для описания внутренней структуры которого используется всеми любимый ASN.1.

Вот только не помнил я, чтобы тогда на глаза попадались эти ИННы, СНИЛСы и ОГРНы. Поэтому ответил более, чем скромно: «Босс, два дня, не меньше!», надеясь выполнить задачку за несколько часов.

Ниже рассказ о том, насколько сильно я ошибся в расчетах, а также готовое решение для парсинга сертификатов X.509 на C# с возможностью извлечения полей и их атрибутов с заданными объектными идентификаторами (OID).

Категория: Программирование, Информационная безопасность

 

.NET Managed + C unmanaged: какова цена?

Автор: admin от 7-04-2017, 20:20, посмотрело: 40

Программируя на C#, я часто выносил ресурсоемкие задачи в неуправляемый Си код, потому что производительность .NET вызывала вопросы. И вот за чашечкой чая мне в голову начали лезть вопросы: А какой на самом деле выигрыш от такого разделения кода? Действительно ли можно что-то выиграть, а если можно, то сколько? Как лучше строить API при таком подходе?

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

Категория: Программирование

 
Назад Вперед