• Gremlins.js — monkey testing библиотека для веб приложений

    • Translation
    • Tutorial
    NPM version

    Это первая из двух статей, рассказывающая о тестировании с помощью gremlins.js и grunt-gremlins. Первая статья — перевод официальной документации gremlins.js. Вторая — опыт внедрения gremlins.js в реальный проект при помощи grunt-gremlins.

    Gremlins.js это monkey testing библиотека написанная на JavaScript, для Node.js и браузеров. С ее помощью проверяется надежность веб-приложений под полчищем гремлинов.

    Kate: What are they, Billy?
    Billy Peltzer: They're gremlins, Kate, just like Mr. Futterman said.


    image
    Читать дальше →
  • CPU Load: когда начинать волноваться?

    Данная заметка является переводом статьи из блога компании Scout. В статье дается простое и наглядное объяснение такого понятия, как load average. Статья ориентирована на начинающих Linux-администраторов, но, возможно, будет полезна и более опытным админам. Заинтересовавшимся добро пожаловать под кат.
    Читать дальше →
  • Шаблоны проектирования PHP. Часть 1. Порождающие

      Тема заезженная до дыр, не спорю… Вероятно, для опытных разработчиков моя статья будет мало, чем полезна. Я бы рекомендовал её к прочтению тем, кто только начал осознавать, что его коду чего-то не хватает, и что он созрел для вникания в это далёкое понятие – «паттерны». По себе помню, что довольно долгое время я путался в шаблонах, иногда даже не понимая, чем один отличается от другого. Именно этот факт стал основой для моей статьи. Примеры в ней не будут реальными. Они будут абстрактными и максимально простыми. Однако я постараюсь все примеры держать в едином контексте, чтобы можно было наглядно видеть отличия их использования в одной и той же ситуации. Я не буду нагружать классы лишним функционалом, чтобы можно было понять, какая именно часть кода имеет непосредственное отношение к шаблону. Главными героями примеров станут Factory (фабрика) и Product (продукт, производимый этой фабрикой). Возьмём это отношение за отправную точку. Возможно, в некоторых примерах это будет не очень уместно, но зато очень наглядно…

      Статья будет разбита на несколько частей. В каждой я буду рассказывать о новом типе шаблонов проектирования. Всем, кого эта тема может заинтересовать, прошу под кат.
      Меня заинтересовала...
    • PhpStorm — повышаем производительность (плагины и темы оформления). Часть 2

      • Translation
      • Tutorial
      imagePhpStorm — повышаем производительность (клавиатурные сокращения). Часть 1

      Плагины


      PhpStorm имеет богатый выбор плагинов, добавляющих поддержку различных языков. Я, например, использую плагин Dart для PhpStorm. Хотя это не совсем тот тип плагинов, о которых я хотел бы поговорить, они, тем не менее, также могут повысить вашу продуктивность.
      Плагины, добавляющие функции, которые, казалось бы и не подумаешь встретить в PHP IDE
    • PhpStorm — повышаем производительность (клавиатурные сокращения). Часть 1

      • Translation
      • Tutorial
      imagePhpStorm — повышаем производительность (плагины и темы оформления). Часть 2

      У всех нас есть любимые IDE или редакторы в которых мы пишем код. Для меня это PhpStorm, и потребовалось некоторое время, чтобы освоить все клавиатурные сокращения и ускорить свой рабочий процесс. В этой статье я поделюсь с вами некоторыми сочетания клавиш и советами, которые возьмут на себя часть рутинной работы, если вы тоже делаете свою работу в этой IDE. Эта статья была частично вдохновлена этим Reddit тредом, и я буду упомянать и демонстрировать некоторые трюки найденные там.

      Обратите внимание, что я разрабатываю на Linux в Vagrant, размещенном в Windows, я буду использовать клавишу CTRL вместо CMD. Если вы работаете в OS X, замените CTRL на CMD.

      Клавиатурные сокращения и хаки


      PhpStorm позволяет настроить себя практически до бесконечности — вы можете заточить этот инструмент под себя так, что постороннему может показаться, что это совсем другая IDE.

      (осторожно, много gif изображений)
      Давайте посмотрим, чем мы можем воспользоваться
    • Хелпер объединяющий скрипты и стили в один файл для старичка ZF1

      Если вы хотите для множества добавленных скриптов:
      $this->view->headScript()->appendFile('/static/js/script1.js');
      $this->view->headScript()->appendFile('/static/js/script2.js');
      $this->view->headScript()->appendFile('/static/js/script3.js');
      

      вместо этого:
      <script type="text/javascript" src="/static/js/script1.js"></script>
      <script type="text/javascript" src="/static/js/script2.js"></script>
      <script type="text/javascript" src="/static/js/script3.js"></script>
      

      получить вот это:
      <script type="text/javascript" src="/static/cache/bff149a0b87f5b0e00d9dd364e9ddaa0.js"></script>
      

      тогда эта статья для вас.
      Читать дальше →
    • Шпаргалка по шаблонам проектирования


        Перевод pdf файла с сайта http://www.mcdonaldland.info/ с описанием 23-х шаблонов проектирования GOF. Каждый пункт содержит [очень] короткое описание паттерна и UML-диаграмму. Сама шпаргалка доступна в pdf, в виде двух png файлов (как в оригинале), и в виде 23-х отдельных частей изображений. Для самых нетерпеливых — все файлы в конце статьи.

        Под катом — много картинок.

        Читать дальше →
        • +166
        • 1007k
        • 64
      • Видео-курс по JavaScript на русском языке

          Здравствуй, Хабр!

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



          Первая лекция: Введение в JavaScript, немного истории, числа (тут есть ошибка: функция toFixed округляет значения).



          Остальное – под катом.
          Читать дальше →
        • Простая Наука — дайджест опытов #28

            image

            Мы продолжаем выпускать опыты в обновленном виде с более красочным оформлением.

            В этом выпуске четыре химических опыта:
            • горение ацетона на проволоке;
            • огненная пена;
            • кислотный огонь;
            • шпионские чернила.
            Читать дальше →
          • Сниппеты для Chrome DevTools

              Возможности встроенного в браузер инструмента Chrome Developer Tools можно расширить с помощью сниппетов. Это ускоряет разработку и упрощает рабочий процесс. Хорошая коллекция сниппетов есть на GitHub'е.

              Сниппеты в Google Chrome


              Подробно о функциях сниппетов можно почитать в официальной документации Chrome. А вот краткая инструкция:

              1. Зайти в «chrome://flags» — Отметить «Enable Developer Tools experiments».
              2. Открыть DevTools: «Settings» — «Developer Tools Experiments» — Отметить «Snippets support».
              3. После перезагрузки во вкладке DevTools «Sources» появится «Snippets», где можно управлять сниппетами:

              image
              Читать дальше →
            • Опыт работы с GruntJS

                image

                Привет. Мы, наконец, закончили работу над одной интерактивной книгой, и сейчас очень хочется рассказать об одном из самых интересных инструментов, из тех, что мы использовали — о GruntJS.

                Немного о проекте


                Собственно, делали мы интерактивную книгу одного популярного российского писателя. Книжка написана на JS, шаблонах ECT-JS и LESS. Сборкой, конкатенацией, минификацией и деплоем занимается Grunt, книжка работает на iPad’е под Phonegap.

                Технически, мы делали прототип — мы активно изучали и применяли различные технологии. С чем-то получилось круто, с чем-то не очень. Как бы то ни было, книга работает, и ее даже можно скачать в App Store.

                Думаю, что этого достаточно. Теперь можно перейти к GruntJS…

                Читать дальше →
              • Простая Наука — дайджест обновленных опытов #27

                  Прошло полтора года с начала работы канала ПРОСТАЯ НАУКА. За спиной более 200 опытов. Мы решили отметить это событие, выпустив небольшой ролик:



                  Теперь представляем наши опыты в обновленном виде. Мы постарались сделать их еще более зрелищными и познавательными. И не без гордости представляем на суд зрителей четыре видео нового формата:
                  image
                  • полезный опыт;
                  • красивый опыт;
                  • бесполезный опыт;
                  • опыт, который не следует повторять.
                  Читать дальше →
                • Как узнать, что ваш PHP сайт был взломан

                  • Translation
                  Сайт моего друга недавно был взломан, на нем была запущена старая версия IP.Board, в которой есть уязвимость локального внедрения кода (local file inclusion). Этот пост не будет посвящен IP.Board или другому php коду, он покажет, как найти потенциально вредоносный php код на ваших серверах. Наконец, покажу пример того, что злоумышленники могут загрузить на взломанный сайт.

                  Проверьте логи доступа


                  Что бы с чего-то начать, я бы хотел поделиться некоторыми записями из журнала доступа (access log) взломанного сайта моего друга.

                  IpreMOVED - - [01/Mar/2013:06:16:48 -0600] "POST /uploads/monthly_10_2012/view.php HTTP/1.1" 200 36 "-" "Mozilla/5.0"
                  IpreMOVED - - [01/Mar/2013:06:12:58 -0600] "POST /public/style_images/master/profile/blog.php HTTP/1.1" 200 36 "-" "Mozilla/5.0"
                  

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

                  Два файла выше это загруженные взломщиком скрипты, как они туда попали, большой роли не играет, так как код на любых двух серверах, вероятно, будет различным. Тем не менее, в данном конкретном примере, уязвимость в устаревшей версии IP.Board была использована, и атакующие смогли добавить свои собственные скрипты в директории доступные для записи, такие как пользовательский каталог загрузки и каталог, в котором IP.Board хранит кэшированные изображения темы оформления. Это общий вектор атаки, много людей изменяют права на эти каталоги на 777 или дают им доступ на запись, подробнее об этом чуть позже.

                  Рассмотрим подробнее приведенные выше строки журнала, ничего не цепляет вас?

                  Обратите внимание, что в журнале доступа POST запросы, а не GET запросы.
                  Скорее всего, злоумышленники хотели сделать журнал доступа более неприметным, так как большинство журналов не сохраняют post данные.
                  Читать дальше →
                • FireBug* Console API

                    Введение


                    Firebug добавляет глобальную переменную с именем «console» к каждой веб-странице, загруженной в Firefox. Этот объект содержит много методов, которые возволят Вам писать на консоль Firebug и показывать информацию, проходящую через скрипты.
                    firebug.ru

                    К нашему счастью, не только firebug обладает данным функционалом:
                    • Chrome Javascript console — практически точный аналог
                    • Opera Dragonfly console — функционал реализован частично
                    • Firefox Web console — функционал реализован частично

                    Эта статья — мануал по Console API.
                    Примеры даны из chromeChrome 28.0.1500.72 m, firebugFirebug 1.11.3, firefoxFirefox 22.0, operaOpera 12.15 (версия до ухода с presto)
                    Читать дальше →
                  • Наглядный жизненный урок


                      Когда я переучивал на программистов своих друзей, то заметил интересную вещь. Люди, которые уже где-то работали, переучивались очень охотно. И чем больше был их стаж вне ИТ, тем усерднее они занимались. Те же, кто был еще студентами, иногда откровенно халявили.

                      Поговорив и с теми и с другими, я заметил, что студенты до последнего верят в «волшебное трудоустройство», которое ждет их сразу после окончания вуза.

                      Далее, для тех, кто еще не снял розовые очки — гайд по реальному миру.
                      Добро пожаловать в реальный мир
                    • Simple-Science — Простые опыты (дайджест #26)

                        image

                        Сегодня в выпуске #26:


                        • возбуждение магнитом;
                        • лазерный луч в воде;
                        • компас «видит» электромагнитное поле;
                        • жгучий апельсин;
                        • зажечь огонь в микроволновке;
                        • алюминий и магнит.

                        Внимание:
                        Некоторые опыты могут быть опасны для здоровья. При их проведении нужно обязательно соблюдать технику безопасности.
                        Читать дальше →
                        • +31
                        • 26.5k
                        • 8
                      • Simple-Science — Простые опыты (дайджест #25)

                          image

                          Сегодня в выпуске #25 опыты для детей:


                          • серебряное яйцо;
                          • простейший гироскоп;
                          • иголки на воде;
                          • игла в стоге сена и простой элеткромагнит;
                          • смешение холодной воды и горячей;
                          • вода переворачивает изображение.

                          Внимание:
                          При проведении опытов взрослыми существует опасность увлечения и впадения в детство!
                          Читать дальше →
                        • PHPStorm + XDebug + Bitbucket: разработка на удаленном сервере в небольшой команде

                          В этой статье я расскажу как мы построили процесс разработки сайта не поднимая локальных копий веб-сервера в небольшой команде разработчиков с использованием Xdebug на тестовом сервере и автоматического развертывания репозитория на боевой сервер.


                          Читать дальше →
                        • Интересное развитие Koding.com

                            Год назад на хабре был анонсирован сервис Koding.com. Он обрадовал немалоприятными плюшками в виде халявного сервера, apache, php, mysql, ruby, python, консоли в веб интерфейсе, удобное подобие IDE в браузере и прочие приятные вещи.



                            Помимо социальной составляющей разработчики обещали все больше и больше нововведений, приложений и развития проекта. Как и было обещано, все то, что поставлялось в beta версии, останется бесплатным на момент релиза (хотя он как бы еще и не релиз).
                            Что же мы имеем сейчас?
                          • Реалистичный дым на Canvas

                            Введение


                            На просторах интернета есть несколько статей о том как сделать эффект дыма, но скрипты слишком «тяжелые», и лично для меня не совсем понятные. Вот я и решил упростить задачу тем, кому интересно воплотить такой эффект в своих проектах.
                            Писать много не буду, в основном код с подробными комментариями.
                            Читать дальше →