• Blazor: Техническое введение

    • Перевод
    Сегодня команда ASP.NET анонсировала, что проект Blazor был перемещён в репозиторий организации ASP.NET. Мы начинаем стадию эксперимента, чтобы понять сможем ли мы развить Blazor в поддерживаемый продукт. Это большой шаг вперёд!

    image

    Что такое Blazor? Это фреймворк для браузерных приложений, написанный на .NET и запускающийся с помощью WebAssembly. Он даёт вам все преимущества богатых современных одностраничных приложений (SPA), позволяя при этом использовать .NET от начала и до конца, вплоть до общего кода на сервере и клиенте. В посте с анонсом подробно описаны основные случаи применения, сроки и так далее.

    В этом посте я хочу поглубже поговорить о технических деталях для тех, кому интересно как же это работает.
    Читать дальше →
  • Тучные протоколы (fat protocols) в блокчейне

      В начале августа 2017 года Joel Monegro, будучи штатным работником инвестфонда Union Square Ventures (около $1 млрд. в управлении) изложил свои размышления по поводу доходности уровней в стеке технологий, создаваемых на блокчейнах. Даже термин для них придумал — тучные протоколы. Примерно через два дня он основал собственный инвестфонд в криптотехнологии и пропал из раздела "about" на сайте, в общем, изобрёл термин и изобрёл, а гений он или так — время покажет.

      Важно, что термин прижился в финансовой криптотусовке. Нам кажется, заслуженно. Давайте же поближе познакомимся с криптомемасиком fat protocols.

      Читать дальше →
    • JetBrains Rider 2017.1 — первый релиз новой кроссплатформенной .NET IDE

        Несколько дней назад мы выпустили первую версию JetBrains Rider — новой кроссплатформенной IDE для .NET-разработки на базе IntelliJ-платформы и ReSharper. Rider теперь можно не только загрузить, но и купить. Rider входит в подписку All Products Pack, так что если она у вас есть — загружайте и пользуйтесь, ничего не доплачивая.

        Rider 2017.1 - кроссплатформенная среда .NET-разработки

        Что еще за Rider?


        Rider — это IDE для .NET-разработки, которой можно пользоваться на Windows, Mac и Linux. Rider подходит для многих видов .NET-приложений, в том числе ASP.NET, .NET Core, .NET Framework, Xamarin и Unity.
        Читать дальше →
      • Докеризация высокодоступного Postgres кластера

        • Tutorial


        Пару месяцев назад мы переехали из Амазон на свои выделенные сервера(Hetzner), одна из причин тому была высокая стоимость RDS. Встала задача настроить и запустить master-slave кластер на выделенных серверах. После гугления и прочтения официальной документации, было принято решение собрать свое собственное решение высокодоступного асинхронного кластера Postgres.
        Читать дальше →
      • Яндекс открывает технологию машинного обучения CatBoost

          Сегодня Яндекс выложил в open source собственную библиотеку CatBoost, разработанную с учетом многолетнего опыта компании в области машинного обучения. С ее помощью можно эффективно обучать модели на разнородных данных, в том числе таких, которые трудно представить в виде чисел (например, виды облаков или категории товаров). Исходный код, документация, бенчмарки и необходимые инструменты уже опубликованы на GitHub под лицензией Apache 2.0.



          CatBoost – это новый метод машинного обучения, основанный на градиентном бустинге. Он внедряется в Яндексе для решения задач ранжирования, предсказания и построения рекомендаций. Более того, он уже применяется в рамках сотрудничества с Европейской организацией по ядерным исследованиям (CERN) и промышленными клиентами Yandex Data Factory. Так чем же CatBoost отличается от других открытых аналогов? Почему бустинг, а не метод нейронных сетей? Как эта технология связана с уже известным Матрикснетом? И причем здесь котики? Сегодня мы ответим на все эти вопросы.

          Читать дальше →
        • Индексы в PostgreSQL — 2


            Интерфейс


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

            Свойства


            Все свойства методов доступа представлены в таблице pg_am (am — access method). Из этой таблицы можно получить и сам список доступных методов:

            postgres=# select amname from pg_am;
             amname
            --------
             btree
             hash
             gist
             gin
             spgist
             brin
            (6 rows)

            Хотя к методам доступа можно с полным правом отнести и последовательное сканирование, исторически сложилось так, что оно отсутствует в этом списке.

            В версиях PostgreSQL 9.5 и более старых каждое свойство было представлено отдельным полем таблицы pg_am. Начиная с версии 9.6 свойства опрашиваются специальными функциями и разделены на несколько уровней:

            • свойства метода доступа — pg_indexam_has_property,
            • свойства конкретного индекса — pg_index_has_property,
            • свойства отдельных столбцов индекса — pg_index_column_has_property.

            Разделение на уровни метода доступа и индекса сделано с прицелом на будущее: в настоящее время все индексы, созданные на основе одного метода доступа, всегда будут иметь одинаковые свойства.

            Читать дальше →
          • Selenium: новая надежда

            • Перевод

            Представляю вам перевод моей статьи на Medium.com: часть 1, часть 2. Поскольку первая часть статьи содержит в основном уже изложенное в этом посте, то привожу перевод только второй части.



            Худеем и переезжаем в контейнеры


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


            1. Как создать легко масштабируемые рабочие ноды, используя стандартный Selenium Hub
            2. Почему можно и нужно запускать большинство браузеров в контейнерах и как это делается
            3. Какие open-source инструменты для этого существуют

            Читать дальше →
          • .NET Portability Analyzer


              .NET Portability Analyzer это совсем не новое приложение, которое, по причине появления .NET Standard должно бы стать интересным для разработчиков. Портируемость кода ускоряет работу команд в разы. Если вам интересно узнать насколько переносим на другую платформу ваш код, то вы можете использовать .NET Portability Analyzer, который доступен в виде расширения для Visual Studio и в виде отдельного консольного приложения.

              .NET Portability Analyzer актуален для разработчиков .NET, .NET Core, UWP, Xamarin и Mono.
              Далее предлагаю вашему вниманию факты и описание процесса использования.
              Читать дальше →
            • Адреса ФИАС в среде PostgreSQL. Часть 1

              Как бы мы не относились к качеству адресов ФИАС с ними необходимо работать, потому что это единственный общероссийский справочник адресов. Поэтому рано или поздно приходится решать задачу связи местоположения объектов недвижимости, юридических и физические адресов с адресом из ФИАС.

              В этой статье изложен опыт работы со списком адресообразующих элементов ФИАС, загруженным в базу данных под управлением PostgreSQL. Для работы с адресообразующими элементами ФИАС создано несколько функций на языке PL/pgSQL.
              Читать дальше →
              • +20
              • 12,7k
              • 7
            • Поднимаем собственный репозиторий пакетов для Ubuntu (Debian)

              В жизни любого развивающегося проекта рано или поздно (и лучше рано) наступает момент, когда эксплуатация многозначительно смотрит на разработку и предлагает оформить отношения. Дальнейшее развитие событий, как водится, зависит от обеих сторон. О плохом сегодня не будем, рассмотрим сразу случай, когда разработка готова использовать нехитрый инструментарий сборки пакетов, подготовленный для нее эксплуатацией (шаблоны debian/rules и debian/control, команды fakeroot, debuild, и так далее). Осталась самая малость: поднять для собранных пакетов собственный репозиторий.


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

              Читать дальше →