• Codeisok, или История code review в Badoo



      Привет, читатель! Меня зовут Илья Агеев, я работаю в Badoo уже почти семь лет. Текущая моя должность называется Engineering Director Quality Assurance (директор по контролю качества), и по факту я занимаюсь много чем в компании: контроль качества, релиз-инжиниринг, процессы и методология разработки и даже немного информационная безопасность. Одна из сфер, которая входит в зону моей ответственности, — ревью кода. Об истории и результате нашего процесса (которым стал опенсорсный codeisok) я сегодня и расскажу.

      Статья содержит историческое описание, технического сравнения различных инструментов для ревью кода в ней нет. Тем не менее я даю примеры таких инструментов, и если вы заинтересуетесь вопросом, то вполне можете попробовать самостоятельно установить и сравнить тулзы.
      Давным-давно в Badoo не было code review. Практически. Первой попыткой обмена информацией об изменённом коде была простая рассылка изменений на почту. К слову, и Git тогда не использовалась.

      Летом 2011 года, когда я только пришёл в компанию, для хранения версий кода использовалась SVN. Бывалые рассказывали, что до этого все работали в CVS и что была одна попытка перейти на Mercurial, но она провалилась. Почему — никто не помнит. Я подозреваю, что дело в том, что, когда решили попробовать Mercurial, особой надобности в переходе на другую VCS не было. Всё и так всех устраивало: работает, и ладно. А модный инструмент ради моды никому не нужен.
      Читать дальше →
    • Используем GPG для шифрования сообщений и файлов

      Кратко о том, как создавать ключи, шифровать и подписывать файлы и отправлять ключи на сервер ключей.



      GPG (также известный как GnuPG) создавался как свободная альтернатива несвободному PGP. GPG используется для шифрования информации и предоставляет различные алгоритмы (RSA, DSA, AES и др.) для решения этой задачи.

      Читать дальше →
      • +26
      • 10,3k
      • 9
    • Анализ данных с использованием Python


      Язык программирования Python в последнее время все чаще используется для анализа данных, как в науке, так и коммерческой сфере. Этому способствует простота языка, а также большое разнообразие открытых библиотек.


      В этой статье разберем простой пример исследования и классификации данных с использованием некоторых библиотек на Python. Для исследования, нам понадобится выбрать интересующий нас набор данных (DataSet). Разнообразные наборы Dataset'ы можно скачать с сайта. DataSet обычно представляет собой файл с таблицей в формате JSON или CSV. Для демонстрации возможностей исследуем простой набор данных с информацией о наблюдениях НЛО. Наша цель будет не получить исчерпывающие ответы на главный вопрос жизни, вселенной и всего такого, а показать простоту обработки достаточно большого объема данных средствами Python. Собственно, на месте НЛО могла быть любая таблица.


      Читать дальше →
    • REST API Best Practices

      Привет, Хабр! Представляю вашему вниманию перевод статьи "REST API Best Practices" автора Krishna Srinivasan.

      REST становится общим подходом для представления сервисов окружающему миру. Причина его популярности заключается в его простоте, легкости использования, доступе через HTTP и другие. Существует неправильное представление о том, что все данные, доступные через сеть, считаются REST, но это не так. В этой статье я собираюсь объяснить вам некоторые best practices, которые вы должны всегда помнить при реализации собственного REST приложения. Я бы хотел услышать ваш опыт в REST приложениях, поэтому если вы знаете best practies, которые не упомянуты в этой статье, пожалуйста, поделитесь с нами в комментариях.

      Disclamer: все best practies основаны на моем личном опыте. Если вы имеете другое мнение, не стесняйтесь отправлять его мне на email, и мы обсудим его.

      Здесь представлен список best practices, которые будут обсуждаться в этой статье:

      1. Конечные точки в URL – имя существительное, не глагол
      2. Множественное число
      3. Документация
      4. Версия вашего приложения
      5. Пагинация
      6. Использование SSL
      7. HTTP методы
      8. Эффективное использование кодов ответов HTTP
      Читать далее
    • LarrockCMS — новая CMS на основе Laravel

        image

        LarrockCMS — это CMS основанная на php-фреймворке Laravel поставляемая в формате composer-пакетов. Распространяется под лицензией CC-BY-4.0.

        Официальный сайт
        GitHub

        В основе проекта ядро CMS (LarrockCore), устанавливаемое в дополнение к laravel версии >=5.6 и пакеты компонентов (дополнений к LarrockCore). Требуются: php >=7.1.3, mysql >=5.7
        Читать дальше →
      • Недокументированные приемы CSS

        • Tutorial
        Всем привет! Зовут меня Дмитрий Григоров. Работаю фронтедером в Райффайзенбанке в команде RBO PRO. Я расскажу и покажу вам, как можно творчески применять данные возможности CSS. В статье мы рассмотрим следующие темы:

        • Фоны и рамки;
        • Фигуры;
        • Визуальные эффекты.

        Читать дальше →
      • Как анализировать тональность твитов с помощью машинного обучения на PHP

        • Перевод
        Всем доброго!

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

        Вступление

        В последнее время кажется, что все и каждый говорят о машинном обучении. Ваши ленты в социальных сетях забиты сообщениями об ML, Python, TensorFlow, Spark, Scala, Go и т. д .; и если у нас с вами есть что-то общее, то вы можете поинтересоваться, а что насчет PHP?

        Да, как насчет машинного обучения и PHP? К счастью, кто-то был достаточно сумасшедшим, чтобы не только задать этот вопрос, но и разработать универсальную библиотеку машинного обучения, которую мы можем использовать в нашем следующем проекте. В этом посте мы рассмотрим PHP-ML — библиотеку для машинного обучения на PHP — и мы напишем класс анализа тональности, который мы сможем позже использовать для нашего собственного чата или твит-бота. Основными задачами этого поста являются:

        • Изучение общих понятия, касающиеся машинного обучения и анализа тональности текста
        • Обзор возможностей и недостатков PHP-ML
        • Определение задачи, которую мы будем решать.
        • Доказательство того, что попытка машинного обучения на PHP не является абсолютно безумной целью (опционально)


        Читать дальше →
        • +34
        • 8,5k
        • 5
      • Директор по здравому смыслу: как перестать все контролировать и начать работать в команде

          Эта статья — вольный пересказ моего доклада на прошедшем Хайлоаде.

          Я возглавляю компанию, в которой работает 75 человек, а начинали мы 10 лет назад впятером.


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


          Читать дальше →
        • Что дает установка SSD в Mac mini?

            Привет, Geektimes! Если у вас вдруг завалялся Mac mini 2011 или 2012 года выпуска (а, может быть, вы до сих пор пользуетесь им как основным), не спешите отправлять этого «малыша» на покой раньше времени. Самый доступный компьютер в линейке Apple довольно хорошо поддается апгрейду, и с SSD вы можете дать ему вторую жизнь.


            Читать дальше →
          • Google Maps — кастомизируй меня полностью

            image

            → Демо: ссылка
            → Исходники: ссылка

            В первый раз столкнувшись с внедрением и кастомизацией Google Maps, я не нашел единой статьи, рассматривающей все необходимые моменты — информацию пришлось искать по крупицам, а что-то выдумывать самому. После чего и было решено написать эту статью, чтобы люди, ранее не работавшие со стилизацией Google Maps, но при этом ограниченные временными рамками (а может, и желанием) для полноценного изучения API, смогли быстро получить необходимую информацию и материалы. Тем более, что и те, кто обладает определенным опытом, смогут почерпнуть для себя из этой статьи какую-нибудь интересную фишку, к примеру — параллакс для элементов информационного окна.

            В этой статье мы рассмотрим:

            1. Внедрение Google Maps на сайт

            • Добавление через вставку iframe в разметку
            • Добавление через API

            2. Кастомизация маркера

            • Инициализация маркера
            • Анимация маркера
            • Изображение маркера

            3. Кастомизация информационного окна

            • Добавление информационного окна
            • Открытие информационного окна
            • Кастомизация элементов информационного окна
            • Параллакс-эффект для элементов в информационном окне

            4. Кастомизация карты

            • Изменение цвета объектов карты
            • Кастомизация элементов управления
            • Маска для карты
            Читать дальше →