• Joker 2018: Клуб неанонимных Java-разработчиков

      Чем Joker хорош как явление? По сути, это единственное место, куда можно прийти и поговорить за джаву.


      И при этом Joker – праздник. Это не то место, где кучка старпёров нудит, какая Java тормозная, какой Hibernate костыльный, почему что-то там не компилируется и так далее — если понимаешь, о чём я.


      Joker — это место, где можно и поплакать в жилетку, и получить конструктивный фидбэк, и вдохновиться на новые подвиги. Это особый клуб разработчиков-энтузиастов, со своими правилами и фичами, о которых мы и поговорим в этой статье.


      Скоро будет новый Joker — уже шестой по счёту. Если интересно сразу узнать дату и время проведения — смотри под кат, иначе — читай дальше.


      Скрытый текст
      Что: Joker — наша самая большая международная Java-конференция для опытных разработчиков;
      Где: Санкт-Петербург, Экспофорум;
      Когда: 19-20 октября 2018.

      Читать дальше →
    • Выходные, которые нельзя пропустить. TechTrain в Питере

        Будучи разработчиком, работая над узкоспециализированными проектами, со временем перестаешь разбираться в окружающем мире. Это общая проблема для всех нас. Расскажу пару слов о том, как это бывает и как мы придумали это побороть.



        Осторожно, трафик! Под катом есть фоточки в довольно неплохом качестве.



        Читать дальше →
      • Чего стоит самое точное расписание электричек с 2003 года

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


          Старое бумажное расписание СПб — Оредеж

          Началось всё так. Изначально в Интернете не было регулярно обновляемого расписания электричек. Точнее, было «бумажное». Просто сохранить расписание с вокзала или опубликовать то, что обычно размещают в разных брошюрках, — это бесполезно. В расписание вносится большое число временных изменений. Мы поставили цель — сделать регулярно обновляемое расписание.
          Читать дальше →
        • Встреча JUG.ru с Артуром Пилипенко: Falcon — LLVM-based JIT-компилятор в Zing JVM

            Во вторник, 5 июня, в петербургском офисе компании Oracle состоится встреча JUG.ru с Артуром Пилипенко, инженером компиляторной команды компании Azul Systems. Тема встречи — Falcon.

            Falcon — JIT-компилятор, построенный на базе инфраструктуры LLVM, уже год как является компилятором по умолчанию в виртуальной машине Zing. Новый компилятор во всю используется в продакшне и показывает существенный прирост производительности по сравнению со старым компилятором C2.

            image
            Читать дальше →
          • Убираем русский из своего английского

            • Tutorial
            Взрослые студенты, которые только начали изучение какого-либо иностранного языка, всегда полагаются на свой родной язык и переводят каждое слово в предложении, чтобы понять его суть. Только такой перевод может сыграть с вами злую шутку, и выйдет у вас «идите в!» вместо «входите!» от невинного “come in!”.

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


            Читать дальше →
          • Инструменты тестировщика

              Какие инструменты нужны тестировщику? Об этом мы сегодня порассуждаем в этой статье, в основе которой — доклад Юлии Атлыгиной с прошлого Heisenbug. Видеозапись доклада доступна по ссылке.


              Читать дальше →
              • +19
              • 21,1k
              • 7
            • Пятничный JS: случайное перемешивание

                Экзамен в школе прапорщиков.
                — Вот смотрите. Это большой палец, это — указательный, это — средний, это — безымянный, это — мизинец. Мешаем, мешаем, мешаем (двигает пальцами)… Теперь где какой?
                Всем привет. С ортодоксальной точки зрения сегодня не настоящая пятница — просто день, когда завтра выходной. Поэтому статья в моей традиционной рубрике тоже будет не совсем настоящая, у неё пониженный градус безумия и повышенная полезность. Однако довольно предисловий, перейдём к сути.

                Перед моими студентами регулярно встаёт задача случайного перемешивания массива. За её решением они, как правило, лезут в гугл. И гугл им подсказывает следующее:

                var shuffledArr = arr.sort(function(){
                  return Math.random() - 0.5;
                });
                

                Здесь и далее будем называть этот метод случайной сортировкой. Сегодня я решил написать о том, какие преимущества и недостатки есть у такого подхода.
                Читать дальше →
              • Ваши A/B-тесты сломаны

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

                  Замечали, что обычно люди, ответственные за эксперименты, в итоге говорят, что данных недостаточно для решения? Часто это действительно так, но нередко всё дело в поломках системы экспериментов и учёта пользовательской статистики.
                   
                  В этой статье мы рассмотрим типичные поломки, которые там встречаются, и у вас появится возможность, вернувшись на рабочее место, немножко побыть data scientist'ами и найти ошибки у себя в компании. Какие-то из них там наверняка есть.

                  В основе материала — расшифровка доклада Романа Поборчего с нашей декабрьской конференции Heisenbug 2017 Moscow.


                  Читать дальше →
                • Анимации в мире состояний

                    Многие уже научились строить чистые интерфейсы и писать «undo-redo» в несколько строчек. Но как быть с анимациями? Часто их обходят стороной, и они не всегда вписываются в подход (state) ↦ DOM. Есть отличные решения вроде React Motion, но что если вам нужно делать сложные анимации или работать с Canvas, используя физический движок?

                    В нашем тексте рассказывается, как работать с анимациям в React-приложениях, и сравнивается несколько подходов (D3, React-Motion, «грязные компоненты»). А также о том, как «запускать» анимации в Redux-приложениях. Материал основан на расшифровке доклада Алексея Тактарова с нашей декабрьской конференции HolyJS 2017 Moscow. Прилагаем заодно видеозапись этого доклада:


                    Осторожно, трафик: под катом много картинок и гифок (сами понимаете, материал про анимации).
                    Читать дальше →
                    • +35
                    • 7,1k
                    • 1
                  • Обзор программы Heisenbug 2018 Piter



                      Конференция: Heisenbug 2018 Piter
                      Дата: 17-18 мая 2018 года
                      Место: Санкт-Петербург, гостиница «Park Inn by Radisson Пулковская»
                      Всего две недели осталось до нашего следующего Heisenbug. Над программой и докладами была проведена колоссальная работа, о которой мы расскажем под катом.
                      Читать дальше →