• Jasmine — дополнительные возможности

    • Tutorial
    Данная статья является продолжением первой части «Введение в Jasmine». Здесь рассматриваются дополнительные возможности тестового фреймворка Jasmine, а именно:

    • Spy — эмуляция функций/объектов
    • Clock — синхронизация вызовов при использовании setTimeout/setInterval
    • Runner и Reporter — запуск тестов и оформление отчета


    Читать дальше →
    • +5
    • 40.4k
    • 1
  • От JQuery до Backbone

    imageВ данной статье будет показано как можно реорганизовывать код написанный в «простом» JQuery стиле в код на Backbone, с использованием представлений, моделей, коллекций и событий. Реорганизация будет постепенной, так чтобы этот процесс дал четкое понимание основных абстракций в Backbone. Статья рассчитана на тех кто использует JQuery и хотел бы познакомится со схемой MVC для клиентского кода.
    Читать дальше →
  • Simple-Science — Простые опыты (дайджест #17)

      image

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


      • простейший электромотор на батарейке;
      • воздушный шарик и -170°C;
      • черный сахар;
      • свободное падение;
      • растворение ракушек;
      • топливо для водородной машинки.

      Внимание:
      Некоторые опыты могут быть опасны для здоровья. При их проведении нужно обязательно соблюдать технику безопасности.

      Ниже смотрите 6 видео с пояснениями.
      Читать дальше →
    • Simple-Science — Простые опыты с микроволновкой (дайджест #16)

        image

        Этот дайджест "Простых опытов" не совсем похож на все предыдущие. И дело тут не в микроволновке. Сегодня мы постарались дать каждому опыту объяснение: "Почему так происходит". Если у кого будут замечания или комментарии, будем признательны за них.

        Сегодня в «микроволновке»:


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

        Внимание:
        Опыты могут быть опасны не только для здоровья, но и для микроволновой печи.

        Ниже смотрите 6 видео.
        Читать дальше →
      • Отладка Grunt-задания в WebStorm

          Вообще-то у меня PhpStorm, но, думаю, все будет работать и в WebStorm.

          Запускаем в командной строке
          cd <path to Gruntfile>
          node --debug-brk=64005 $(which grunt) img2base64
          

          Где img2base64 — название нужного задания. Можно опустить этот параметр, чтобы запустились все задания.
          Получаем debugger listening on port 64005
          Читать дальше →
        • Теория относительности в картинках

          • Tutorial
          В своей статье я хотел бы рассказать о теории относительности. Эта теория не требуется в представлении. С самого своего создания она была окутана ореолом тайны, поскольку полностью подрывает наши привычные представления о пространстве и времени. Все мы в школе учили формулы теории относительности, но мало кто действительно понимал их. И это не удивительно, ведь человеку, чтобы по-настоящему понять какую-то теорию во всей её красоте, полноте и непротиворечивости, не достаточно знать формулы. Нужно иметь какой-то визуальный ориентир, нужна динамика, чтобы было что-то, что можно повертеть в руках. Я решил восполнить этот пробел и написал небольшую программку, в которой можно «повертеть в руках» пространство-время. Мы, как настоящие исследователи, с помощью небольших экспериментов попытаемся выяснить основные свойства этой загадочной материи.
          Под катом много картинок (и ни одной формулы).
          Читать дальше →
        • Egghead.io — видео курс по AngularJS

            Egghead.io — проект, созданный Джоном Линдвистом (John Lindquist), цель которого создание видео курсов. Как утверждает автор, он никогда не был доволен существующими реализациями сайтов с видео уроками. Поэтому главной его задачей стало применение лучших практик для организации и подачи обучающих видео материалов в сети.
            Пока сам ресурс находится в стадии доработки и нуждается в качественном дизайне. Но уже сейчас доступен первый курс видео туториалов по AngularJS.
            Проект получил множество хороших отзывов сообщества, также был упомянут в рассылке javascript weekly и на странице javascript в google+.
            Читать дальше →
            • +38
            • 28.9k
            • 5
          • Мини-игра с отслеживанием положения головы или как я встретил headtrackr.js


              11.02.2013 г. Хабраюзер omfg опубликовал статью, с которой началось мое знакомство с headtrackr.js.
              В этом топике я расскажу, как средствами браузера с поддержкой getUserMedia получить координаты и угол наклона головы пользователя перед монитором, как учесть дефекты изображения, принимаемого с веб-камеры и отфильтровать их, и как использовать данную технологию в своих проектах, задействовав лишь html + JavaScript.

              Применений этому можно придумать огромное количество. Для простоты, в данном топике мы сделаем мини-игру, в которой змейка будет ползти сверху вниз и менять направление в зависимости от положения головы играющего.
              Самым нетерпеливым: результат тут.
              Читать дальше →
            • Облака на CSS3 3D Transformations

              • Translation
              • Tutorial

              Пример, как нарисовать красивые 3D облака используя CSS 3D Transformations



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

              Для нетерпеливых: То, что получится в итоге

              Вступление


              В этой статье, автор попытаеся рассказать и показать как создать красивые 3D облака используя CSS3 Transformations. Автор так-же считает, что иметь базовое понятие о том, как работают эти самые CSS 3 Transformations не будет лишним. Ссылка на туториал здесь

              Данный туториал разбит на несколько простых шагов. Каждый шаг основан на коде из предыдущего и содержит ссылки на примеры.

              Сделай сам!

              • Создаем мир и камеру
              • Добавляем объекты в мир
              • Добавляем спрайты к облакам
              • Магия
              • Пролог


              Поооеехааали!

              Читать дальше →
            • Применение, советы и особенности knockout.js

                О библиотеке knockout.js на хабре написано не так много, но кое что есть (и конечно же есть официальный туториал и другие материалы на оф. сайте и хороший ресурс на англ. языке knockmeout.net, статьи которого смогу перевести, если будет спрос). Данная статья возможно перерастёт в цикл статей по javascript и нокауту, если нло не похитит меня.

                Изначально готовил материал для людей, уже знакомых с нокаутом и mvvm, но в комментариях к другим статьям меня попросили рассказать как готовить нокаут для чайников. Предполагаю, что вы уже прочитали предыдущие статьи о нокауте на хабре. Поехали!
                Читать дальше →
              • Обзор JS-фреймворков. Путешествие через джунгли JavaScript MVC. Ч. 2

                • Translation
                (Окончание перевода статьи Эдди Османи о сравнении и выборе библиотеки для проекта со значительной ролью JS на клиенте.)
                Содержание первой части:

                ■ Что такое MVC или, лучше сказать, MV*?
                ■ Когда нам нужен MV*-фреймворк JS?
                ■ Где же мы будем нуждаться в MV*, а где нет?
                ■ Проблема выбора: слишком много вариантов?
                ■ TodoMVC: общее приложение для обучения и сравнения
                ■ Предложенные нами критерии выбора фреймворка
                ■ Dojo и усложнение фреймворков на JavaScript
                ■ Коллекция TodoMVC (фреймворки, на которых сделаны реализации тестового приложения Todo)
                Читать дальше →
              • Обзор JS-фреймворков. Путешествие через джунгли JavaScript MVC. Ч. 1

                • Translation
                (от 27 июля 2012)
                При написании нативного веб-приложения легко начать чувствовать себя богом, способным работать просто с библиотекой работы с DOM (такой как jQuery) и горсткой сервисных плагинов. Вскоре возникает проблема в виде груды вложенных возвратных функций jQuery и разбросанных DOM-элементов без всякой структуры вместо приложения.

                Короче, мы застреваем в спагетти-коде. К счастью, есть современные JS-фреймворки (библиотеки, задающие, кроме функций, правила организации кода --прим. перев.), помогающие поддерживать структуру и организованность в проекте, облегчающие ремонтопригодность в будущем.

                ■ Что такое MVC или, лучше сказать, MV*?


                Эти современные библиотеки дают разработчикам простой путь к организации кода, используя вариации паттерна проектирования, известного как MVC (Model-View-Controller). MVC разделяет задачи в приложении на 3 части:
                Читать дальше →
              • JavaScript: от начала до конца

                  TL;DR
                  Эта обзорная статья. Такое себе "краткое содержание предыдущих серий". Она будет полезна для новичков, или тех, кто не следил за отраслью в последнее время. Для новичков это будет первый шаг во "Вселенную JavaScript", бывалые смогут освежить свои знания.
                  

                  У JavaScript очень удивительная судьба. Он преодолел путь от самого не понимаемого до самого удивительного языка. У него было тяжелое детство:
                  Изначально Автор хотел написать функциональный язык. Но менеджеры хотели получить, «обычный» объектно-ориентированный. И чтобы было легко искать разработчиков для новоиспеченного языка синтаксис решили сделать похожим на Java и даже название сделали похожим.
                  Но на этом история не заканчивается. Java, JavaScript это торговые марки Sun (а теперь Oracle). Microsoft не мог воспользоваться именем JavaScript (Netcape и Sun дружили против Microsoft). В результате Microsoft решил сделать реверс инжиниринг JavaScript и назвал его JScript. Сделали реверс инжиниринг, и сделали его настолько хорошо, что даже содрали все баги в реализации. Позже решили сделать стандарт и назвали его ECMAScript.
                  Читать дальше →
                • Coroutines в PHP и работа с неблокирующими функциями

                  • Translation
                  • Tutorial
                  Одним из самых больших нововведений в PHP 5.5 будет поддержка генераторов и корутин (сопрограмм). Генераторы уже достаточно были освещены в документации и в нескольких других постах (например в этом или в этом). Сопрограммы же получили очень мало внимания. Это гораздо более мощный, но и более сложный для понимания и объяснения, инструмент.

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

                  Генераторы


                  Суть генератора в том, что это функция, которая возвращает не просто одно значение, а последовательность значений, где каждое значение выброшено одно за другим. Или, другими словами, генераторы позволяют вам реализовать итератор, без лишнего кода.
                  Читать дальше →
                • Что нам стоит Git настроить!

                  • Tutorial

                  Дарова, хабр! (ничего оригинальнее не придумал)

                  Сомневаюсь что эта заметка тянет на полноценный пост, но я все же оставлю ее здесь. О чем же пойдет речь?

                  Все мы слышали о Git. Все мы знаем что он — хорош. Но лишь немногие пытаются что-то с ним делать, как-то его протвикерить. Сразу говорю, тут не будет ничего паранормального, только немного работы с файлом .gitconfig. Да-да, именно с тем файлом, который так трепетно пылится у вас в домашней директории.

                  Так, мне уже немного надоело писать этот, по сути, бессмысленный вступительный текст, так что давайте уже начнем что-то делать.
                  Читать дальше →
                • Лучшее в мире PHP за 2012 и дайджест интересных материалов за последние две недели №7 (15.12.2012 — 28.12.2012)



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

                    Приятного чтения!
                    Читать дальше →
                  • WebRTC #1 — Знакомимся



                      Многие уже слышали о проекте WebRTC, некоторые даже используют его (или пытаются применять в существующих проектах), а кто-то злобно потирает руки, предвкушая постепенную расправу со Skype и Flash.

                      Погуглив в Хабре (хе-хе) я почему-то не нашел статей, которые углублялись в техническую сторону WebRTC, показывали бы примеры его использования.

                      Что же, я попытаюсь порадовать вас схемками, кодом. В общем, именно тем, что всем по вкусу. Так пройдем же под кат, мой любимый читатель.
                      Читать дальше →
                    • Шаблон проекта Express.js

                        Взять можно тут: github.com/maxatwork/expressjs_template (или в виде zip-архива).

                        Что есть


                        Читать дальше →
                      • Используем backbone.js под node.js

                        Приветствую, уважаемые читатели Хабрахабра. Хочу поделиться с вами своим опытом использования backbone.js под node.js. Ранее я активно поработал с backbone.js на клиенте, и эта библиотека оказалась крайне удобной для структурирования кода.

                        Сервис без работы с какой либо базой данных — не сервис. В моем случае, в качестве СУБД была выбрана mongodb. Я посмотрел существующие решения ORM для mongodb, и мне показалось более удобным пользоваться знакомыми инструментами, тем более они же будут использоваться и на клиенте, поэтому решено было попробовать применить для моделей класс Backbone.Model и заодно проверить, как все это можно кастомизировать под mongodb.

                        Читать дальше →
                        • +9
                        • 15.4k
                        • 3