• «Герои Меча и Магии» в браузере: долго, сложно и невыносимо интересно

      Как реализовать в браузере игру, на которой годы назад залипал без всякого браузера? С какими сложностями столкнёшься в процессе, и как их можно решить? И, наконец, зачем вообще это делать?

      В декабре на конференции HolyJS Александр Коротаев (Tinkoff.ru) рассказал, как он сделал браузерную версию «Героев». Ранее уже появилась видеозапись доклада, а теперь для Хабра мы сделали ещё и текстовую версию. Кому удобнее видео — запускайте ролик, а кому текст — читайте его под катом:

      Читать дальше →
    • «Через год-два .NET Core потеснит Java на рынке enterprise решений», — Интервью с Jon Skeet, Google

        Наверняка, вы знаете, кто такой Джон Скит: №1 на Stack Overflow, автор C# in Depth, одной из лучших книг по .NET, разработчик в Google и 14-кратный MVP. Разработчиков такого масштаба не так много, хватит двух порядков, чтобы их всех перечислить. 19-20 мая Джон приедет в Петербург и выступит на DotNext 2017 Piter.

        Мне удалось пообщаться с Джоном и взять у него большое интервью по поводу судьбы .NET, .NET Core, нововведений в C# 7 и общем уровне развития среднего разработчика в 2017 году.



        Если говорить конкретно, то обсудили следующие вопросы:

        • Общее направление развития .NET и ошибки Microsoft;
        • Чего ждать от .NET Core в ближайшем будущем;
        • Стоит ли мигрировать на .NET Core, если у вас легаси на .NET Framework;
        • Проблемы и победы .NET на поприще кроссплатформенности;
        • Java vs .NET на рынке enterprise решений;
        • Чем хороши tuples и pattern matching в С# 7, а что стоило сделать иначе;
        • Небольшие, но приятные фичи C# 7;
        • Деградация сообщества разработчиков (и есть ли она);
        • Правильный подход к диагностике багов и постановке правильных вопросов на SO;
        • Гайд по изучению новых языков и платформ;
        • Проблемы с базовыми типами: числа, текст, дата и время;

        Интервью получилось очень большое, но мне кажется, оно стоит каждой потраченной на него минуты.
        Читать дальше →
      • Перформанс: что в имени тебе моём? — Алексей Шипилёв об оптимизации в крупных проектах

          Оптимизация производительности издавна не даёт покоя разработчикам, представляясь своеобразным «золотым ключиком» к интересным решениям и хорошему послужном списку. Большую обзорную экскурсию по ключевым вехам оптимизации больших проектов  – от общих принципов до ловушек и противоречий —  на прошедшем JPoint 2017 провёл Алексей Шипилёв, эксперт по производительности.



          Под катом — расшифровка его доклада.
          Читать дальше →
        • Java с ассемблерными вставками



            Как известно, на любом языке можно писать, как на Java, а первая любовь джависта — это написание Garbage Collectors и JIT Compilers. С этим связано множество восхитительных вопросов, например: каким образом можно из управляемого кода напрямую работать с машинным кодом и ассемблером?


            Кроме того, в этой статье будет небольшой пример на C#. В какой-то момент стало понятно, что нельзя всегда изучать одну Java. Рантаймы динамических языков используют общую теорию и на практике работают в рамках похожих проблем. Самый простой способ продвинуть свою работу — посмотреть, как там у соседей, и скопировать себе что-нибудь хорошее.


            Теперь про ассемблер и машинный код. Зачем это нужно — вопрос открытый. Например, вы наслушались о Meltdown и хотите написать для него красивое API :-) Ну, и не надо забывать, что Oracle — не боги, поддержку того же AVX-512 добавили только в Девятке, прямое управление аппаратной транзакционной памятью не ложится на язык, часть стандартных методов можно реализовать лучше, чем это сделали в SDK и т.п. — у нас всегда есть с чем покопаться!

            Читать дальше →
          • Тест Джоэла как инструмент собеседуемого

              Многие хабровачане наверняка знакомы с тестом Джоэла (перевод). Если в двух словах, Джоэл Спольски предлагает на основе выбранных им критериев оценить любому инженеру, насколько хороша его команда.

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

              Допустим, эта часть Вам понравилась и Вы задумались о том, чтобы перейти в этот проект. Потенциально Вам с этими людьми работать следующие несколько лет (ну минимум — месяцев). Поэтому имеет смысл пораспрашивать о проекте поподробнее. А заодно и будущих сокомандников прощупать — что они за перцы? ;)

              И вот тут выясняется, что вышеупомянутный тест Джоэла очень хорошо подходит для выяснения подробностей о проекте. С одной существенной оговоркой — тест составлен более двенадцати лет назад. За это время отрасль существенно шагнула вперёд. Поэтому вопросы имеет смысл слегка подкоррекировать с учётом этого факта.

              Читать дальше →
            • Как я чинил интерактивный логин, или Что там в кишках у //chrome/test/ChromeDriver?

                Эта статья возникла из-за одной моей ошибки и двух багов — по одному в Chromium Headless и ChromeDriver. В результате пришлось собрать всё это из исходников (в статье есть подробнейшая инструкция), отладить цепочку взаимодействия Selenium<->ChromeDriver<->Chromium в отладчике IntelliJ IDEA и Microsoft Visual Studio, покопаться в Java, C++ и JS.


                Статья будет интересна тем, кто хочет понять, чем им грозит переход на Selenium + Headless Chrome и как с этим жить. А также всем, кто просто хочет немного поглумиться над несчастным быдлокодером.


                Под катом есть пачка скриншотов (трафик!).




                Кстати, всё это можно было бы сделать скринкастом — но нельзя, потому что время компиляции C++ необычайно долгое. Вместо этого тут будут скриншоты для привлечения внимания.


                Вначале напомню названия участвующих продуктов. Их три штуки:


                • Chromium — это браузер. Небрендированная версия Google Chrome, без автообновлений, анальных следящих зондов, но и без несвободных компонентов типа кодеков.
                • Chromium ChromeDriver — это часть Chromium, которая отвечает за управление им с помощью внешних инструментов. Это standalone фронт-сервер (отдельный exe-файл), реализует стандарт W3C WebDriver и использует в качестве бэкенда Chrome DevTools.
                • Selenium и его Selenium Chrome Driver — эта штука предоставляет Java API для управления Хромиумом. Джава тут не принципиальна, на JavaScript и jWebDriver было бы то же самое (а на Puppeteer — возможно, нет, ибо он использует DevTools напрямую).

                Всё вместе даёт нам в руки браузер, управляемый с помощью API на Java, JavaScript и так далее.


                Вспомнили? Поехали дальше.

                Читать дальше →
                • +64
                • 11,5k
                • 7
              • Бесплатная YouTube-трансляция DevOps-конференции DevOops 2017

                  Если вы ранее видели мои посты, вы знаете, что мы в JUG.ru Group делаем большие технические конференции для IT-инженеров (разработчиков, исследователей, тестировщиков, сисадминов). И вот, пару недель назад я обратился к одному из ребят из сообщества с просьбой поддержать конференцию постом в блоге, на что получил категорический отказ. Мол, раз билеты платные, то вы находитесь на оси зла, не поддерживаете сообщество, не помогаете индустрии, а только развлекаете богатые корпорации и помогаете им еще больше «корпоратеть».

                  Тогда я ответил, что все видеозаписи докладов мы через несколько месяцев выкладываем на YouTube в общий доступ, делаем открытые JUG'и и вообще, деньги берем только за то, что мы делаем интересный для индустрии продукт, а не преследуем свои цели (как большинство крупных корпораций, которые собирают базы для отделов HR или отделов продаж): отбираем доклады, которые нужны людям и которые будут покупать, это наш козырь и наш хлеб.

                  Вот только я совсем забыл еще кое о чем: о бесплатных трансляциях наших конференций. Если покопаетесь в нашем блоге, вы поймете, что весь 2017 год мы делали открытые трансляции главных треков наших конференций.

                  20 октября 2017 в 9:30 утра (по московскому времени) начнется бесплатная онлайн-трансляция из главного зала конференции DevOops 2017! И не просто трансляция, а 2к трансляция, наконец-то ваши Retina и 4k мониторы окажутся нужны для чего-то полезного!


                  Читать дальше →
                  • +64
                  • 12,5k
                  • 4
                • «Ни единого разрыва»: чего стоит сделать онлайн-трансляцию, которая не будет падать, тормозить и вызывать боль в глазах?

                    Если кто следит за нашим блогом, наверняка уже знает, что мы проводим хардкорные технические конференции в разных областях программирования (Java, .NET, HolyJS, iOS/Android, тестирование). Конференции эти традиционно проходят в Москве и Петербурге, почему? Потому что в этих городах физически больше разработчиков – это позволяет собирать под одной крышей по 500-1000 единомышленников.



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

                    Как выглядит идеальная на наш взгляд трансляция? Вот несколько ссылок на свежие трансляции последних конференций:
















                    А если вам интересно, чего нам стоило отточить трансляцию и видеозаписи до такого состояния, а также какие факапы с реал-тайм системой вызывают самый сильный баттхерт, читайте под катом.
                    Читать дальше →
                  • «Меня разрывает, когда я не могу писать код» — интервью с Максимом Шафировым, CEO JetBrains



                      В новогоднем выпуске «Без слайдов» — Максим shafirov Шафиров, CEO компании JetBrains.

                      Вот о чем мы поговорили с Максимом:

                      • Важен ли для JetBrains российский рынок?
                      • Почему Максим не прекращает писать код?
                      • Насколько помогает догфудинг и в чём его ограничения?
                      • Почему компания редко закрывает продукты?
                      • Как появился Kotlin, и какими компания видит его перспективы?
                      • Почему компания не была продана, несмотря на щедрые предложения?
                      • Как в JetBrains появилась должность PMM?
                      • Как JetBrains одновременно конкурируют и сотрудничают с Microsoft?




                      Как обычно, под катом — полная текстовая расшифровка беседы.
                      Читать дальше →
                    • «Половина научных работ по Concurrency — полная чушь!» — интервью с Романом Елизаровым из Devexperts

                        Добрый день, это «Без слайдов». В гостях у меня побывал Роман Елизаров aka elizarov, Java Champion, эксперт по Java и многопоточности (а с недавнего времени — еще и по финансовой математике), спикер многочисленных конференций, председатель жюри Северо-Восточного Европейского региона ACM-ICPC, престижнейшей в мире олимпиады по программированию, лектор в ИТМО и, наконец, VP по технологиям в компании Devexperts. В общем, «человек и пароход».

                        В разговоре мы затронули следующие темы:
                        • что такое финансовая математика и как ее учить;
                        • как устроен софт для финансовой индустрии;
                        • как в компании Devexperts появилась исследовательская лаборатория по многопоточности;
                        • куда развивается Concurrency, и что будет в моде в ближайшее время;
                        • как всемирная олимпиада по программированию пришла в Россию.




                        Текстовая версия — под катом.
                        Читать дальше →
                      Самое читаемое