• 5 правил работы с суммами

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


      Читать дальше →
    • «Паттерны» функционального программирования

      • Перевод
      • Tutorial

      Многие люди представляют функциональное программирование как нечто очень сложное и «наукоемкое», а представителей ФП-сообщества – эстетствующими философами, живущими в башне из слоновой кости.

      До недавнего времени такой взгляд на вещи действительно был недалек от истины: говорим ФП, подразумеваем Хаскель и теорию категорий. В последнее время ситуация изменилась и функциональная парадигма набирает обороты в web-разработке, не без помощи F#, Scala и React. Попробуем взглянуть на «паттерны» функционального программирования, полезные для решения повседневных задач с точки зрения ООП – парадигмы.

      ООП широко распространено в разработке прикладного ПО не одно десятилетие. Все мы знакомы с SOLID и GOF. Что будет их функциональным эквивалентом?.. Функции! Функциональное программирование просто «другое» и предлагает другие решения.


      Читать дальше →
    • Как я проходил собеседования на позицию Junior .Net Developer

        Приветствую всех. Сегодня расскажу вам как я проходил собеседования в Москве на позицию .Net Developer. Усиленно готовился к собеседованиям месяц, целыми днями сидел и смотрел вопросы и пытался отвечать на них, а также читал книжки по С#. В статье привожу интересные задачки и вопросы, которые мне задавали в разных компаниях в Москве. Заранее скажу, что я попал в ту компанию, в которой хотел. Я прошел 4 собеседования в этой компании и меня наконец то взяли! Много статей было прочитано в частности здесь и надеюсь, что эту статью тоже будут читать начинающие Net разработчики и спрашивать все в комментариях.

        Кому интересна тема прохождения собеседований, прошу под кат!
        Читать дальше →
      • Имплементация OpenId Connect в ASP.NET Core при помощи IdentityServer4 и oidc-client


        Недавно мне потребовалось разобраться, как делается аутентификация на OpenId Connect на ASP.NET Core. Начал с примеров, быстро стало понятно, что чтения спецификации не избежать, затем пришлось уже перейти к чтению исходников и статей разработчиков. В результате возникло желание собрать в одном месте всё, что необходимо для того, чтобы понять, как сделать рабочую реализацию OpenId Connect Implicit Flow на платформе ASP.NET Core, при этом понимая, что Вы делаете.

        Читать дальше →
      • Яндекс.Блиц. Почему и какие алгоритмические задачи нужно уметь решать, работая в поиске

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



          Для Блица мы выбрали исключительно алгоритмические задачи. Хотя для оценки раундов и применяется система ACM, в отличие от спортивного программирования все задания максимально приближены к тем, которые постоянно решают в продакшене Поиска. Те, кто решит успешно хотя бы четыре задачи из шести, могут считать, что прошли первый этап отбора в Яндекс. Почему алгоритмы? В процессе работы часто меняются задачи, проекты, языки программирования, платформы — те, кто владеет алгоритмами, всегда смогут перестроиться и быстро научиться новому. Типичная задача на собеседовании — составить алгоритм, доказать его корректность, предложить пути оптимизации.


          Квалификацию можно пройти с 18 по 24 сентября включительно. В этом раунде вам нужно будет написать программы для решения шести задач. Можете использовать Java, C++, C# или Python. На всё про всё у вас будет четыре часа. В решающем раунде будут соревноваться те, кто справится как минимум с четырьмя квалификационными задачами. Финал пройдёт одновременно для всех участников — 30 сентября, с 12:00 до 16:00 по московскому времени. Итоги будут подведены 4 октября. Чтобы всем желающим было понятно, с чем они столкнутся на Блице, мы решили разобрать пару похожих задач на Хабре.

          Читать дальше →
        • Получение текста запросов из SoapHttpClientProtocol

          У .NET есть несколько вариантов создания SOAP клиента, одним из них является его генерация с помощью wsdl.exe. На выходе получаем файл (поскольку пишу я на C#, то генерировал cs, соответственно), основой которого является класс, унаследованный от SoapHttpClientProtocol. Подробнее тут.

          С моей точки зрения, это достаточно удобный способ, к тому же сам клиент можно подразогнать с помощью sgen.exe (очень хороший пример). Тем не менее есть у него один очень серьезный недостаток — это отсутствие штатной возможности получения текста запроса/ответа. А это было бы крайне удобно при первичной отладке сервисов, разборе ошибок и, самое главное, при возможных разбирательствах со стороны, эти самые сервисы предоставляющей.

          Впрочем, если очень хочется, то нужно сделать.

          Основная идея

          Читать дальше →
        • CaptureManager SDK

            Эта статья представляет мой «Hobby» проект — CaptureManager для настольной платформы Windows. Этот проект является простым набором функционала (SDK) для включения поддержки широкого набора видео и аудио источников в разрабатываемое приложение.
            Читать дальше →
          • Быстрый шейдер для Subsurface Scattering в Unity

            • Перевод
            image

            Большинство (если не все) оптических явлений, демонстрируемых материалами, можно воссоздать симуляцией распространения и взаимодействия отдельных лучей света. Такой подход называется в научной литературе «трассировкой лучей» (ray tracing), и часто он слишком вычислительно затратен для применения в реальном времени. В большинстве современных движков используются сильные упрощения, которые, несмотря на невозможность создания фотореализма, могут обеспечить достаточно убедительные приближенные результаты. В этом туториале я расскажу о быстром, дешёвом и убедительном решении, которое можно использовать для симуляции просвечивающих материалов, имеющих подповерхностное рассеивание.


            До...


            … и после.
            Читать дальше →
            • +27
            • 4,4k
            • 4
          • syncProj – утилита для генерации Visual Studio C++ проектов

            syncProj – утилита для генерации Visual Studio C++ проектов.


            Привет. Хочу поделится опытом написания генератора проектов для Visual Studio.


            В общем до данного момента я сам активно применял premake5 — да и в принципе по прежнему его променяю, но все-таки периодически натыкался на не-состыковки и прямые баги в premake5. Чинить premake5 особо энтузиазма не вызывало, т.к. premake5 базируется на скриптовом языке Lua, а это очередной язык программирования со своими замашками и приколами. В нашей фирме преобладают C++ и C#, я подумал почему бы не попробовать что-то новое и сделать его лаконично и опрятно.


            В какой-то момент я экспериментировал с C# и знал, что C# можно скомпилировать и запустить на манер скрипта без особых заморочек – ну и подумал что буду генерировать C++ проект через C# скрипт.


            Сначала разкопал Solution (.sln) file format, затем и C++ project file format (.vcxproj) – в принципе ничего особенного в них не было, просто данные. Microsoft наверное официально нигде не публиковал данные file formatы, пришлось частично искать информацию, частично самому reverse engineeriть.


            Надо было набросать какую то классовую модель .vcxproj проектов – и сама модель на данный момент очень близка к .vcxproj, не самая оптимальная модель, зато проще подгрузить и Solution и Projectы – все грузится полу-мануально, и частично через C# reflection.


            Читать дальше →
          • Разработка Microsoft Excel add-in'а с использованием библиотеки Excel-DNA

            • Tutorial

            Введение


            Представляю вашему вниманию пошаговое руководство по разработке add-in’а для Excel.
            Excel-DNA это бесплатная открытая библиотека для создания Excel расширений. Сайт проекта excel-dna.net

            На протяжении данного руководства мы разработаем add-in, который позволяет по нажатию кнопки загружать данные со стороннего сайта в текущую страницу. Итак, начнем.
            Читать дальше →
          Самое читаемое
          Интересные публикации