• 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
      • 17,7k
      • 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. Честь им и хвала — Навигатор-Курьер, Аксиомус, О-Курьер, ЮниЭкспресс .
                  Читать дальше →
                • Управление бюджетом ИТ проекта



                  Не секрет, что одна из серьезных проблем в проектах – превышение сроков и бюджета. От этого страдают и Исполнитель и Заказчик. Заказчик не получает ожидаемый результат, а Исполнитель – ожидаемые деньги. Казалось бы, общая проблема должна объединять, но она зачастую лишь вбивает дополнительно клинья раздора между сторонами. Вы знаете, как сделать так, чтобы сроки и бюджет всегда выдерживались? Я – нет. Но кое-что в этом направлении нам удалось достичь. Перед тем как рассказать о своем опыте, хотелось бы ответить на несколько принципиальных вопросов: чего хочет Заказчик и чего хочет Исполнитель при выполнении проектов?

                  Читать дальше →
                • Как покупать электронику на Amazon

                    Amazon logo
                    Наверняка многие из вас попадали в ситуацию, когда в американском интернет-магазине есть интересующая вас вещичка по заманчивой цене, но доставку магазин осуществляет только в пределах США. Например, в крупнейшем интернет-магазине Amazon жители из стран СНГ могут заказывать лишь книги и фильмы, и то не все. Конечно же, можно компенсировать данный недостаток с помощью ebay, но где еще у вас может быть шанс купить iPod Touch 32 GB 3rd Gen за $269.99, а Nokia N900 за $559.99? А может, грешным делом заказать Nexus One? Падение доллара и ценовая политика производителей сделала покупки в США достаточно заманчивым делом.
                    Все самое интересное под катом
                  • Как из дешевого и простенького роутера сделать полнофункциональный сервер.

                      Введение


                      Первым роутером, который попал ко мне, был D-Link DI-524, у меня не было времени что либо выбирать, просто купил первый попавшийся недорогой роутер с wi-fi. Так как по натуре я люблю всё ломать, я почти сразу полез в интернет искать, как его можно усовершенствовать.
                      Но в то время почти ничего не нашел кроме советов просверлить в нем дырок. Да действительно он частенько перегревался и поэтому нестабильно работал, но на такой рискованный шаг я не пошел.
                      Благо я его почти сразу продал своему другу.
                      Когда мне снова понадобилось такое устройство, я уже знал какие функции мне действительно необходимы, для меня это было QoS. Я как обыденный покупатель начал смотреть на маркетинговые описания возможностей и фишек устройств. Для меня это тогда казалось единственно верным. Оказалось это не совсем так.
                      Я купил asus w520gu, я им в целом доволен (об этом позже), но считаю правильным поделиться опытом и информацией как я его усовершенствовал.
                      Кому интересно читаем дальше
                    • Логика английских времен

                        Изучавшие или изучающие английский язык знают, каким страшным может казаться множество английских временных форм глаголов.
                        Всего в английском 12 временных форм. А в русском-то, на первый взгляд, всего 3, и как их связать с английскими, для новичка может быть совершенно не понятно.
                        Читать дальше →
                      • Обзор Android коммуникатора за $210, DualSIM, 5Mp, WiFi

                          image

                          Если говорить о рынке китайских телефонов, то сразу приходят в голову аляповатые Nokla с сенсорными экранами, двумя SIM-картами, ТВ и смешным переводом. Но в Китае делают не только подделки и копии известных телефонов. Если посмотреть сайты производителей телефонов, то можно найти достаточно много интересных моделей в плане дизайна и возможностей.
                          Далее фотографии = трафик!

                          Читать дальше →
                        • Управление складскими запасами по Теории Ограничений Голдратта

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

                            Вот, начинаю с запасов.

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

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



                            Читать дальше →
                            • +6
                            • 16,5k
                            • 8
                          • Moqups — новый сервис для создания макетов UI

                              Как характеризуют сервис сами разработчики, Moqups — это «изящное HTML5-приложение для создания макетов, концептов пользовательского интерфейса, прототипов, в зависимости от того, как вы сами это называете».



                              Для Chrome есть отдельное приложение.

                              На данный момент доступно более 60 шаблонов элементов, экспорт в PDF и PNG, клавиатурные шорткаты, группировка объектов, привязка к сетке и проч.

                              Проект находится в стадии активной разработки и открыт для критики, помощи и предложений.
                            • Про jQuery и велосипеды — мое дополнение

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

                              Для затравки начнем с простого.
                              Читать дальше →
                            • The Bricks — фреймворк для создания пользовательского интерфейса

                              • Перевод


                              Bricks это бесплатный набор компонентов пользовательского интерфейса. Он предназначен для упрощения создания дизайна и прототипирования будущего сайта. Этот набор позволит вам сэкономить время при разработке веб элементов и станет замечательной основой для создания сайта от дизайна до верстки. Больше не надо тратить время на рисование многочисленных форм, так как они уже включены в этот набор. Просто переместите компонент в свой проект, измените его стиль и пользуйтесь. Это просто, быстро и элегантно.
                              Читать дальше →