• Code Conventions: как мы сохраняем быстрый темп разработки PHP-проекта

      Привет, Хабр. Меня зовут Евгений Удодов, я сооснователь и технический директор компании Roistat. Хочу поделиться нашим опытом разработки большого и сложного продукта — системы аналитики.

      TL;DR: Мы выложили на github наш Code Conventions и рассказали в статье о том, как его применять на практике.

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

      За 4 года существования нашего проекта мы сделали больше 20 000 Pull Request’ов (далее PR) и под катом я расскажу, как же мы решили эти проблемы.


      Читать дальше →
    • Книга «Безопасность в PHP» (часть 2). Атаки с внедрением кода

      • Перевод


      Книга «Безопасность в PHP» (часть 1)


      В списке десяти наиболее распространённых видов атак по версии OWASP первые два места занимают атаки с внедрением кода и XSS (межсайтовый скриптинг). Они идут рука об руку, потому что XSS, как и ряд других видов нападений, зависит от успешности атак с внедрением. Под этим названием скрывается целый класс атак, в ходе которых в веб-приложение внедряются данные, чтобы заставить его выполнить или интерпретировать вредоносный код так, как это нужно злоумышленнику. К таким атакам относятся, например, XSS, внедрение SQL, внедрение заголовка, внедрение кода и полное раскрытие путей (Full Path Disclosure). И это лишь малая часть.

      Читать дальше →
      • +30
      • 16,5k
      • 2
    • Обзор граверного лазера NEJE или перспективная бизнес модель

        Какое невероятное количество правильных начинаний и стартапов кануло в лету так и не увидев белый свет! И неважно что стало тому благовидным предлогом: отсутствие денег, поддержки окружающих или Лень-матушка… В результате мы никогда не увидим таких прекрасных изобретений как, например, автоматический спиночёс или шарообразный смартфон… А всё потому, что кто-то однажды сказал себе: «Нет, это слишком сложно/дорого для меня».

        В своём эпосе я представлю вам наглядный пример того, как при помощи китайской игрушки за $82 можно создать модель большого бизнеса.


        Читать дальше →
      • Scrollport.js — новая анимация скролла

          image

          Анимация скролла к месту страницы с момента изобретения почти не подвергалась никаким модификациям, никак не украшалась. Да никому и не надо вроде, и так все работает. Говоришь куда скроллить и за сколько нужно добраться. Всё.

          Я решил на анимацию скролла посмотреть под другим углом. Не потому что сейчас с ним что-то не так, а потому что можно и поинтереснее. В результате некоторых наблюдений и всплесков фантазии удалось придумать 3 способа для более интересной анимации. В итоге завернул все в плагин «Scrollport.js» с 3 новыми и 1 классическим режимом. Смотрите демо и проходите под кат.
          Читать дальше →
        • N+1 полезных книг о бизнесе

            В топике блиц-обзор книг, которые будут полезны IT-специалистам, бизнесменам и тем, кто собирается открыть своё дело. Рядом с каждой — короткие пояснения, почему и зачем стоит прочесть.

            Отобраны лучшие 10% из примерно 200 прочитанных книг о маркетинге, продажах и всем связанном — самые «пробивные» вещи, которые помогут вам не тратить время на всякий шлак, а сразу начать с главного.

            В конце — суммация книг, которые хабровчане рекомендуют в комментариях помимо основного списка.

            Читать дальше →
          • Material Design: на Луну и обратно

            • Tutorial
            “Это унылое диалоговое окно действительно нужно?”



            В этой статье я изложил главные принципы Material Design и дал советы по их воплощению. Текст написан по следам мастер-класса для разработчиков, который мы, Роботы, устраивали совместно с российским офисом Google (Think Mobile).


            Когда-то все продукты Google выглядели по-разному плохо. Даже один продукт на разных платформах выглядел неконсистентно.

            Все стало меняться в 2011 году, когда в Google начали усиленно работать над унификацией визуальной части экосистемы своих продуктов и назвали все это Project Kennedy.

            При чем тут Кеннеди?
            Легенда такова: президент Кеннеди инициировал программу полёта человека на Луну (если верить, что этот полёт когда-либо был). А большой начальник в Google Ларри Пейдж исповедует принцип, что продукты нет смысла улучшать на 10% — они должны быть в 10 раз лучше, чем у конкурентов. Если уж запускать продукт, то сразу на Луну. Вот и здесь было решено круто всё переделать.

            Читать дальше →
          • Поиск наилучшей последовательности просмотра списка 250 лучших фильмов с помощью языка Wolfram Language (Mathematica)


              Скачать перевод в виде документа Mathematica, который содержит весь код использованный в статье, можно здесь (архив, ~76 МБ).

              Введение


              Некоторое время назад, если быть точным — 515 дней, вышел пост Маттиаса Одисио (Matthias Odisio) под названием “Random and Optimal Mathematica Walks on IMDb’s Top Films” (Случайные и оптимальные блуждания Mathematica по списку 250 лучших фильмов по версии IMDB). В нем рассказывается о том, каким образом можно получить оптимальную последовательность просмотра фильмов из соответствующего списка, основанную на близости жанров фильмов и близости постеров фильмов с точки зрения цвета.
              Читать дальше →
            • WiFi Pineapple Mark V: черный ящик для беспроводного перехвата



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

                Описание устройства


                WiFi Pineapple — это продукт предприимчивых американцев, которые заказали у китайцев Wi-Fi роутер с двумя беспроводными интерфейсами и одним проводным, написали под него прошивку на базе OpenWRT и напичкали утилитами для взлома\перехвата и анализа трафика.

                У устройства 3 сетевых интерфейса (2 беспроводных с возможностью работы в режиме монитора и 1 проводной ), 1 USB порт для флешки\3-4G модема\GPS-треккера и слот для microSD карт.

                Так же на корпусе устройства есть набор тумблеров, сочетание которых позволяет запускать устройство с пакетом заранее присвоенных выбранному сочетанию команд, что сокращает время предварительной настройки, если задача является типовой и регулярной.
                Читать дальше →
              • Обзор курьерских служб для интернет-магазина — 2

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

                  Для написания первой статьи я посещал сайты компаний и собирал информацию оттуда. В этот раз я решил пойти другим путем и дать самим компаниям возможность рассказать о себе. К сожалению, попытка провалилась — ответило только 4 компании из 15. Честь им и хвала — Навигатор-Курьер, Аксиомус, О-Курьер, ЮниЭкспресс .
                  Читать дальше →