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

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

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




      Текстовая версия — под катом.
      Читать дальше →
    • Замена выброса исключений уведомлениями

      Предлагаю вашему вниманию перевод статьи "Replace Throw With Notification" Мартина Фаулера. Примеры адаптированы под .NET.

      Если мы валидируем данные, обычно мы не должны использовать исключения, чтобы известить о валидационных ошибках. Здесь я опишу как отрефакторить такой код с использованием паттерна «Уведомление» («Notification»).



      Недавно я смотрел на код, который делал базовую валидацию входящих JSON сообщений. Это выглядело примерно так…
      Читать дальше →
    • Отбираем валидные мобильные номера друзей VK на Python



      В процессе изучения Python стало интересно попробовать его в связке с API VK. В ВК есть телефонная книга, она показывает телефоны ваших друзей в более-менее удобном формате. Так как далеко не всегда люди охотно оставляют там полые(валидные) номера своих телефонов, мне показалась интересной идея написать скрипт, который отбирал бы только валидные номера моб.телефонов и выдавал бы их отдельной таблицей. Наша телефонная книга будет генерировать csv-файл, который затем можно будет открыть, например, в excel.
      Читать дальше →
    • QA: Conference. Вторая волна докладчиков



        Есть более свежий анонс: https://habrahabr.ru/company/luxoft/blog/280524

        Наша конференция по тестированию программных систем начнется совсем скоро и, как известно, пройдет в пяти городах России. Напоминаем всем, то у нас:
        • от 24 полноценных доклада в Москве и Питере
        • до 16 докладов — в Новосибирске и Екатеринбурге
        • 8 докладов — в Омске
        • возможность посмотреть записи всех докладов — всем участникам
        • только полноценные, 45-минутные доклады, раскрывающие все темы «от» и «до»
        • в цену до 3,000 рублей включено: все доклады всех городов — в записи, кофе-брейки и огромное количество знаний

        Что в совокупности дает возможность:
        • Получить много ценных знаний в формате интенсива
        • Перенести свои новые знания — в проекты и тем самым облегчить своей команде и компании жизнь
        • Пообщаться с коллегами по вопросам, которые вас волновали
        • Услышать как про положительный опыт, так и про отрицательный

        Итак, докладчики, о которых мы расскажем сегодня:
        • Евгений Огородников. RmBIT — развёртываем автоматизацию тестирования с нуля — советы из личного опыта
        • Сергей Махетов. Центр ИТ — автоматизация тестирования на языке Scala
        • Алексей Лавренюк. Яндекс — методика и инструменты нагрузочного тестирования
        • Сергей Пирогов. Записки автоматизатора — автоматизация функционального тестирования Web приложений
        • Дмитрий Акмаев. DINO Systems — global CI, что это такое, и чего не хватает в классическом CI
        • Александр Чумакин. JUNO — автоматизация сценариев взаимодействия интеграционных систем и нагрузочного тестирования
        • Екатерина Боброва. Тамтэк — представление предметной области в автотестах
        • Михаил Бобков. Neoflex — автоматизация тестирования на интеграционных проектах

        Хотите почитать подробнее? Добро пожаловать под кат и на наш сайт
        Читать дальше →
      • До Марса за три дня?

        В конце февраля многие СМИ опубликовали новость о том, что НАСА придумало способ летать к Марсу и другим планетам с околосветовыми скоростями. Речь шла о работе профессора физического факультета Калифорнийского университета в Санта-Барбаре Филипа Любина (Philip Lubin). Смысл сообщений сводился к тому, что НАСА, в лице вышеупомянутого профессора, собирается запускать зонды к планетам Солнечной системы и за пределами её при помощи подсветки лазерным лучом с Земли. Обещалась доставка 100-килограмового аппарата к Марсу за три дня и другие фантастические возможности. Видимо, по причине явной желтушности заголовков, никто не рискнул перепубликовать подобную новость здесь и на подобных ресурсах. Мне стало интересно, что же все-таки стоит за громкими заголовками и вот, что я выяснил.
        Читать дальше →
      • Вспомнить всё: Java-конференция JET. 28 сентября 2015. Отчёт

        Меня зовут Дима и я разработчик. Живу в Минске, люблю посещать зарубежные конференции. Ну вот устал однажды ездить и решил сходить локально. Но выбора было мало. Поэтому вдвоём со своим верным товарищем решили сделать конференцию самостоятельно. Назвали JET. Потому что начинается с J, как и Java, а ещё можно сделать слоган "Let's fly to Java world". Ну что же, как это было?

        Открытие


        Началось все с выступления организаторов, где мы поделились тем, как зарождалась идея конференции. Рассказали о том, как мы прошли путь в 4 месяца подготовки, и что по итогу получилось. А получилось — 3 потока концентрированных знаний, 300 участников и первый кирпичик в фундаменте дома конференции JET.


        Читать дальше →
        • +14
        • 5,1k
        • 4
      • CLRium #3. Анонс докладчиков



          15 апреля в Санкт-Петербурге, 22 апреля — в Москве, 29 апреля — в Омске, 13 мая — в Екатеринбурге и 20 мая — в Новосибирске пройдет серия семинаров CLRium #3.

          В прошлом году мы говорили об околохакерских штуках — разборе памяти .NET куч, приведение типов, между которыми приведение невозможно… Делили текущий поток на два… Говорили о ядре нового .NET Core и пытались понять, для чего нам нужен (и нужен ли?) Roslyn

          В этом же году мы поговорим о другом. О сугубо практически полезных вещах, о которых вы ранее наверняка не знали, но в которых таится огромная сила и мощь. Об изменяемых языках программирования, производительности и кроссплатформенной разработке GUI. Что значит «об изменяемых»? Это значит, что язык умеет менять собственный синтаксис.

          Как и ранее, у нас будут:
          • Максимально глубокие, отборные доклады по редко-раскрываемым вопросам
          • Мы будем говорить только о том, о чем вы наверняка, до того не знали
          • Максимально-полезные доклады, которые усилят Вас как специалиста
          • Почти все доклады — от 1,5 часов. Что позволит докладчикам не экономить и рассказать все что они знают

          Примечание к Nitra и Nemerle: эти два opensource проекта нынче разрабатываются в стенах компании JetBrains.
          Доклады:
          • Андрей Акиньшин (JetBrains) Железные таймеры
          • Влад Чистяков (JetBrains) Nemerle — самая мощная альтернатива C# на .NET
          • Влад Чистяков (JetBrains) Nitra — средство разработки языков программирования и DSL
          • Станислав Сидристый (Luxoft) JetBrains Rider IDE: Java IDE для кросс-платформенного .NET
          • Станислав Сидристый (Luxoft) Автоматизация тестирования WPF/WinForms приложений через внедрение в процесс
          • Андрей Карпов (СиПроВер) Что знает статический анализатор, чего не знаете вы
          • Сергей Васильев (СиПроВер) Опыт использования 'Roslyn' при разработке статического анализатора кода
          • Никита Цуканов Кроссплатформенная разработка UI приложений (Perspex UI, Eto.Forms, Xamarin Forms)


          Когда и где?


          Рассказываю:
          • У нас есть отличный сайт, на котором можно почитать как про всех спикеров, так и про все доклады. Заходите, изучайте, берите билеты: http://clrium.ru/


          Что такое CLRium?? Видео записи семинара (собравшего в сумме 740 человек) с прошлого года — под катом.
          Читать дальше →
          • +19
          • 4,9k
          • 4
        • QA: Conference. Рассказываем про доклады



            Есть более свежий анонс: https://habrahabr.ru/company/luxoft/blog/280524

            Конференция по тестированию программных систем QA: Conference начнется чуть больше чем через месяц и мы готовы рассказать подробнее про нее. Немного статистики:
            • 24 полноценных доклада в Москве и Питере
            • до 16 докладов — в Новосибирске и Екатеринбурге
            • 8 докладов — в Омске
            • возможность посмотреть записи всех докладов — всем участникам
            • стоимость билета — от 2,000 до 3,000 рублей

            Какие темы будут раскрыты:
            • Тестирование на сетевое проникновение — от компании PentestIt
            • Нагрузочное тестирование
            • Автоматизация тестирования (рассматриваются любые аспекты)
            • Интеграционное тестирование
            • Развертывание различных систем с нуля
            • Опыт как положительный, так и отрицательный

            Итак, докладчики, о которых мы расскажем сегодня:
            • Лука Сафонов и Роман Романов. PentestIt — проникновение в сеть предприятия и про защиту от проникновения.
            • Станислав Сидристый — три доклада про все стороны автоматизации в .NET / Java и про стандартизацию подходов к автоматизации
            • Галина Галкина — расчет категории риска – подход к управлению регрессионной ТМ
            • Александр Акбашев — гоняем тесты на каждый билд: Gerrit, Jenkins, Docker, AWS
            • Роман Иовлев — сразу два доклада: «Jedi Power of Model-based testing» и «JDI — Future of UI Automation»
            • Игорь Щегловитов — расскажет про автоматизированное тестирование средствами тулсета Microsoft
            • Константин Нерадовский — функциональный подход в разработке автотестов на Java

            Хотите подробностей? Заходите под кат.
            Читать дальше →
          • Видео со встречи JUG.ru с разработчиками языка Kotlin Андреем Бреславом и Дмитрием Жемеровым



              Неделю назад в Питере прошла встреча JUG.ru с разработчиками языка Kotlin Андреем Бреславом и Дмитрием Жемеровым. Как вы все наверняка знаете, Kotlin зарелизился пару недель назад, и теперь, спустя почти шесть лет разработки, пришла пора поговорить о том, что в итоге получилось.

              В пятничный вечер 26 февраля народу в питерский офис Oracle набилось дофига, что очень обрадовало и нас и спикеров.



              Встреча состояла из четырех частей:
              • Введение. Что такое Kotlin?
              • Kotlin: к релизу и далее
              • Kotlin: самое сложное — совместимость
              • Сессия вопросов и ответов про Kotlin

              Читать дальше →
            • Обзор примитивов синхронизации — mutex и cond

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

                Меня всё нижесказанное, конечно, больше волнует с точки зрения разработки ядра ОС. Но почти всё применимо и к пользовательскому коду.

                Кстати, ядра старых ОС в примитивах синхронизации не нуждались, поскольку преемптивной мультизадачности внутри ядра в старые добрые времена не было. (Уж за Юникс 7-й версии я отвечаю. Не было.) Точнее, единственным методом синхронизации был запрет прерываний. Но об этом позже.

                Сначала перечислим героев. Мне известны следующие примитивы синхронизации:

                User/kernel mode: mutex+cond, sema, enter/leave critical section.
                Kernel only: spinlock, управление прерываниями.

                Зачем всё это нужно, читатель, наверное, знает, но всё же уточним.

                Если некоторая структура данных может быть доступна двум параллельно работающим нитям (или нити и прерыванию), и являет собой сущность, к которой нельзя обеспечить атомарный доступ, то работу с такой структурой нужно производить так, чтобы только одна нить одновременно выполняла сложные манипуляции с состоянием структуры.
                Читать дальше →