• Фронтенд, алгоритмы и опоссум Фридрих. Разбираем задачи конкурса Яндекса

      Этим постом мы завершаем серию публикаций о конкурсах Яндекс.Блиц в 2018 году. Надеемся, что вам довелось поучаствовать или хотя бы посмотреть, какие приближенные к продакшену задачи мы предлагаем. Последний контест был посвящен применению алгоритмов во фронтенде. Сегодня мы публикуем подробные разборы 12 задач: первые 6 из них предлагались в квалификационном раунде, а задачи 7–12 — в финале. Мы постарались объяснить, как формировались условия, на какие навыки мы обращали внимание. Спасибо всем участникам за проявленный интерес!



      Задача 1


      Первая задача должна была быть разминочной, на 20 минут, и мы решили сделать ее условие таким, чтобы она легко решалась с помощью регулярных выражений.
      Читать дальше →
    • ThinkingHome.Migrator — версионная миграция схемы базы данных на платформе .NET Core

        Привет! Сегодня я выпустил новую версию ThinkingHome.Migrator — инструмента для версионной миграции схемы базы данных под платформу .NET Core.


        Пакеты опубликованы в NuGet, написана подробная документация. Вы уже можете пользоваться новеньким мигратором, а я расскажу, как он появился, почему у него номер версии 3.0.0 (хотя это первый релиз) и зачем он нужен, когда есть EF Migrations и FluentMigrator.

        Читать дальше →
      • .NET Core 2.1 Global Tools

        • Перевод

        Пару недель назад вышел .NET Core 2.1 RC1. Это первая версия SDK, где есть фича под названием "Глобальные утилиты .NET Core" (".NET Core Global Tools"). Она дает простой способ создания кросс-платформенных консольных утилит.



        Мы познакомимся с основами использования .NET Core Global Tools и кратко посмотрим, что внутри. А еще вы можете скачать .NET Core 2.1 SDK и попробовать написать собственный пример.

        Читать дальше →
      • Как руководить интровертами без вреда для здоровья



          Интроверты — застенчивы, молчаливы и замкнуты в своём мирке. Экстраверты дружелюбны, открыты, всегда готовы к общению. Это мнение обывателя.

          В IT-сфере интроверты — привычное дело, поэтому стереотипов о них немного. Если коллега-админ предпочитает тишину и одиночество — его не обвинят в отрыве от коллектива. Все знают, что ему так комфортнее. Руководитель — первый человек, который должен это учитывать.
          Читать дальше →
        • Создаем самодостаточный Docker-кластер

          • Перевод

          Самодостаточная система — это та, которая способна восстанавливаться и адаптироваться. Восстановление означает, что кластер почти всегда будет в том состоянии, в котором его запроектировали. Например, если копия сервиса выйдет из строя, то системе потребуется ее восстановить. Адаптация же связана с модификацией желаемого состояния, так чтобы система смогла справиться с изменившимися условиями. Простым примером будет увеличение трафика. В этом случае сервисам потребуется масштабироваться. Когда восстановление и адаптация автоматизировано, мы получаем самовосстанавливающуюся и самоадаптирующуюся систему. Такая система является самодостаточной и может действовать без вмешательства человека.


          Как выглядит самодостаточная система? Какие ее основные части? Кто действующие лица? В этой статье мы обсудим только сервисы и проигнорируем тот факт, что железо также очень важно. Такими ограничениями мы составим картину высокого уровня, которая описывает (в основном) автономную систему с точки зрения сервисов. Мы опустим детали и взглянем на систему с высоты птичьего полёта.


          Если вы хорошо разбираетесь в теме и хотите сразу всё понять, то система изображено на рисунке ниже.


          self-sufficient-system

          Читать дальше →
        • Yet another tutorial: запускаем dotnet core приложение в docker на Linux

          • Tutorial


          В один пасмурный летний день, после посещения секции от авито на РИТ2017, до меня вдруг дошло, что хайп по поводу докера не смолкает уже пару лет и пора, наконец, уже его освоить. В качестве подопытного для упаковки был выбран dotnet core+C#, т. к. давно интересно было посмотреть, каково это — разрабатывать на C# под Linux.

          Предупреждение читателю: статья ориентирована на совсем новичков в docker/dotnet core и писалась большей частью, как напоминалка для себя. Вдохновлялся я первыми 3 частями Docker Get Started Guide и неким блог-постом на english. У кого хорошо с английским, можно читать сразу их и в общем-то будет сильно похоже. Если же после всего вышенаписанного вы еще не передумали продолжить чтение, то добро пожаловать под кат.
          Итак, погнали!
        • Как настроить Travis CI для проекта .NET Core + PostgreSQL

          • Tutorial

          Я расскажу о том, как настроить автоматический запуск модульных тестов в сервисе Travis CI для .NET Core проекта, в котором используется PostgreSQL.


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


          Читать дальше →
          • +13
          • 4,9k
          • 8
        • Натив или гибрид? Специалисты Яндекса отвечают на главный вопрос мобильной разработки

            Осталось буквально четыре дня до момента, когда мы закончим принимать заявки на участие во второй «Мобилизации» Яндекса. Она вновь объединит четыре летние школы для начинающих специалистов: Школу менеджмента, Школу мобильного дизайна, Школу разработки интерфейсов и Школу мобильной разработки под Android.



            Своим опытом и знаниями с участниками будут делиться не только сотрудники Яндекса, которые делают приложения для миллионов пользователей, но и приглашенные специалисты. Мы не обойдемся только теорией. Будет много практики и командной работы над настоящими продуктами. Как всегда, обучение бесплатное, а всем иногородним студентам Яндекс оплатит проезд и проживание. Если вы еще не отправили заявку, есть немного времени это сделать. Занятия стартуют 3 июля и закончатся 23 сентября — в день двадцатилетия Яндекса.

            В мобильной разработке одни из самых горячих споров ведутся вокруг нативной и гибридной разработки. Мы решили дать трём преподавателям «Мобилизации» порассуждать на эту тему. Получилось небольшое интервью, которое может быть интересно как новичкам в разработке, так и тем, кто уже определился со своим выбором.
            Читать дальше →
          • Авторизация в ASP.NET Core MVC


              Logo designed by Pablo Iglesias.


              В статье описаны паттерны и приемы авторизации в ASP.NET Core MVC. Подчеркну, что рассматривается только авторизация (проверка прав пользователя) а не аутентификация, поэтому в статье не будет использования ASP.NET Identity, протоколов аутентификации и т.п. Будет много примеров серверного кода, небольшой экскурс вглубь исходников Core MVC, и тестовый проект (ссылка в конце статьи). Приглашаю интересующихся под кат.


              Содержание:



              Читать дальше →
              • +28
              • 33,5k
              • 5
            • Создание сеток шестиугольников

              • Перевод
              image

              Сетки из шестиугольников (гексагональные сетки) используются в некоторых играх, но они не так просты и распространены, как сетки прямоугольников. Я коллекционирую ресурсы о сетках шестиугольников уже почти 20 лет, и написал это руководство по самым элегантным подходам, реализуемым в простейшем коде. В статье часто используются руководства Чарльза Фу (Charles Fu) и Кларка Вербрюгге (Clark Verbrugge). Я опишу различные способы создания сеток шестиугольников, их взаимосвязь, а также самые общие алгоритмы. Многие части этой статьи интерактивны: выбор типа сетки изменяет соответствующие схемы, код и тексты. (Прим. пер.: это относится только к оригиналу, советую его изучить. В переводе вся информация оригинала сохранена, но без интерактивности.).
              Читать дальше →
            • Классические алгоритмы генерации лабиринтов. Часть 1: вступление

              • Tutorial


              Предисловие


              На написание статьи меня сподвигло практически полное отсутствие материалов на русском языке про алгоритмы генерации лабиринтов. На Хабре, из того, что вообще есть по теме, можно отметить две статьи: раз и два. Ценность и пользу из которых несет лишь вторая. В первой – просто перевод формального алгоритма и небольшое его пояснение. Что, конечно, неплохо, но очень скудно и не вызывает желания изучать тему дальше.

              Если моя статья Вам понравится, я продолжу писать о различных алгоритмах. Мы рассмотрим два самых примитивных и простых случая – генерация двоичного дерева и Сайдвиндер, который, по своей сути, просто чуть измененная версия двоичного дерева с одним заметным плюсом. ОСТОРОЖНО ТРАФИК.
              Читать дальше →
            • 19 неожиданных находок в документации Node.js

              • Перевод
              Мне хотелось бы думать, что я вполне прилично знаю Node. Вот уже три года, как ни один из сайтов, над которыми я работал, не обходится без него. Но документацию до сих пор я как следует не читал.

              Мне нравится записывать полезные вещи об интерфейсах, свойствах, методах, функциях, типах данных, и обо всём прочем, что относится к веб-разработке. Так я заполняю пробелы в знаниях. Сейчас я занят документацией к Node.js, а до этого проработал материалы по HTML, DOM, по Web API, CSS, SVG и EcmaScript.

              image

              Чтение документации Node.js открыло мне немало замечательных вещей, о которых я раньше не знал. Ими я хочу поделиться в этом небольшом материале. Начну с самого интересного. Так же я обычно делаю, когда показываю новому знакомому свои гаджеты.
              Читать дальше →
            • Умный дом на .NET — релиз ThinkingHome 3.0

                Привет! Сегодня я наконец-то могу поделиться с вами результатами своей работы на протяжении последних двух лет! Вчера вечером я выпустил новую версию 3.0 системы управления умным домом ThinkingHome.



                ThinkingHome — это программа (.NET Windows service), с помощью которой вы можете организовать на своем компьютере управляющий центр умного дома. Это центр, который дружит между собой "железки" с разными интерфейсами от разных производителей, позволяет автоматизировать работу с ними (писать скрипты на JavaScript) и управлять всем этим хозяйством через веб-интерфейс.


                Под катом более подробное описание системы, список изменений в новой версии и небольшое объявление для тех, кто ненавидит Windows :)

                Читать дальше →
              • Electron: от мотивации до публикации

                — Хотел бы я иметь приложение, которое умеет что-то такое, что мне надо. Жаль такого нет.
                — А почему бы тебе его самому не написать?
                — Это сложно, мне потребуется куча времени, чтобы понять теорию, приступить к практике и, скорее всего, ничего хорошего не выйдет. А вообще я frontend-разработчик и привык к HTML, CSS и JS. Этот стек не позволяет писать десктопные приложения.
                — Electron!

                Читать дальше →
              • «О вовлечении аудитории в свое выступление люди часто забывают» — интервью с Романом Поборчим, тренером по презентациям



                  В новом выпуске «Без слайдов» моим гостем стал Роман Поборчий, эксперт по подготовке презентаций. Совсем недавно в нашем блоге вышла статья Романа с разбором доклада Сергея Куксенко на JPoint 2016. А теперь пора опубликовать интервью и с самим Романом. О чем же мы говорили?

                  • Чем технический доклад на конференции принципиально отличается от лекции в университете на ту же тему?
                  • Какие ошибки спикеров наиболее типичны?
                  • В чём разница между выступлением со слайдами и без слайдов?

                  Под катом, как всегда, есть полная расшифровка интервью.


                  Читать дальше →
                  • +25
                  • 5,4k
                  • 4
                • Self-contained дистрибуция .NET Core приложений

                  • Перевод

                  Если вы вдруг пропустили, то .NET теперь open source, а .NET Core это бесплатный, open source, кроссплатформенный фреймворк, который вы можете скачать и запустить за время <10 минут. Вы можете получить его на Mac, Windows и на пол-дюжине Unix-ов с сайта dot.net Попробуйте его вместе с бесплатной, кроссплатформенной Visual Studio Code и вы будете писать на C# и F# всегда и везде.
                  Читать дальше →
                • Зачем нужен свободный код и как на нем зарабатывать

                    Linux Torvalds
                    Мы наблюдаем бум свободных проектов. В основном, благодаря Гитхабу. 23 декабря 2013 года на сервисе был создан 10-миллионный проект. К 23 декабря 2015 года количество проектов более чем утроится: прямо сейчас на Гитхабе 28 миллионов проектов.

                    Многих привлекает идея свободности, потому что она перекликается с идеей «улучшения мира», как основной мотивации продуктивной деятельности человека.

                    Но так как обычная работа программистов в конторах очень далека от open source, возникает вопрос, как кормиться (а желательно, и разбогатеть!), большую часть времени занимаясь свободными проектами.

                    Судя по последним вопросам на Тостере, у людей много ожиданий, но мало понимания в этой области. Поэтому я решил написать это эссе.

                    Само по себе выкладывание проекта не является улучшением мира


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

                    Вы выложили код. Чем вы помогли экономике в этот момент? Ничем, поэтому и миру вы пока ничем не помогли.

                    Ваш проект может спасать людей от рака, быть бесплатным, экономить миллионы долларов, и при этом быть закрытым.

                    Сконцентрируйтесь не на том, чем вообще полезен ваш проект, а чем полезна его свободность.

                    Синергетический эффект свободного кода


                    Читать дальше →
                  • Ричард Фейнман: Характер физического закона. Лекция #1. Пример физического закона — закон тяготения [Озвучка Vert Dider]



                      Первая лекция из цикла Мессенджеровских чтений, проведенных Ричардом Фейнманом в 1964 году в Корнелльском университете. В этой лекции профессор Фейнман знакомит зрителей с законом тяготения в качестве примера физического закона, рассказывает об истории его открытия, а также о характерных чертах, отличающих его от других законов.
                      Читать дальше →
                      • +23
                      • 18k
                      • 9
                    • Впечатления от тренингов Certified Scrum Master и Certified Scrum Product Owner



                        Сегодня мы хотим поделиться впечатлениями от участия в тренингах Certified Scrum Master и Certified Scrum Product Owner от Innovel и ProCognita, которые проходили в Варшаве 29-30 июня и 1-2 июля соответственно. Здесь мы рассмотрим наиболее интересные с нашей точки зрения инструменты и техники, представленные на обоих тренингах, которые будут полезны как тем, кто делает свои первые шаги в SCRUM, так и уже имеющим некоторый опыт в применении гибких SCRUM в своих проектах. Мы оставили оригинальные названия упражнений, чтобы упростить поиск тем, кто впоследствии пожелает найти больше информации; кроме того, статья дополнена ссылками на англоязычные статьи, поясняющие суть некоторых упражнений.
                        Читать дальше →
                        • +7
                        • 11,1k
                        • 8
                      • Средства домашней автоматизации. Теория и практика «Умных домов». Часть вторая



                          Первая часть тут.

                          В данной статье я постараюсь описать функционал систем домашней автоматизации. Придумать конечно можно все что угодно. Да и на практике реализовать можно очень многое, но речь пойдет о стандартных функциях систем домашней автоматизации, о том что реально полезно и реально реализуемо на существующем оборудовании. Итак прошу под кат.
                          Читать дальше →