• Модульный подход в JavaScript

    • Translation
    Модульный подход довольно распространённая техника программирования в JavaScript. Обычно его понимают довольно хорошо, но продвинутые техники описаны недостаточно. В этой статье я рассмотрю основы и затрону некоторые сложные приёмы, включая один, по моему мнению, оригинальный.

    Основы



    Мы начнём с несложного обзора модульного подхода, хорошо известного с тех пор, как Эрик Миралья (Eric Miraglia) из YUI впервые об этом написал. Если вам уже знаком модульный подход, переходите сразу к «Продвинутым техникам».

    Анонимные замыкания


    Читать дальше →
  • Как хороший договор спасает нервы и монетку

      Договоры, отчеты, акты — кому охота заниматься этой скукотой, когда вокруг бьет ключом и фонтанирует идеями креативная жизнь? Особенно, если заказчик снисходительно хлопает творческого подрядчика по плечу: «Да ладно, зачем какие-то договоры. Мое слово — закон!» Остается только радостно согласиться и приступить к работе.

      На заре существования нашего агентства мы вообще не стремились формализовать отношения с дорогими клиентами. Типовой договор умещался на двух машинописных листах. Содержал он минимум информации: предмет договора, сроки, цена. Если заказчиков немного, и все они — старые знакомые, то в известной степени можно положиться на их добропорядочность. Но когда клиентская база активно растет, то и проблемы множатся: задерживают выплаты, не выполняют обязательства, злоупотребляют лояльностью исполнителя. Столкнувшись с ними в полном объеме, мы собрались, подумали и составили новый типовой договор.
      Читать дальше →
    • Используем console на полную

      • Translation
      Метод console.log() — отличный способ вывести отладочную информацию, не мешая пользователю. Но знаете ли Вы, что объект console имеет еще уйму других не менее полезных методов? Очень редко разработчики используют этот функционал, ограничиваясь неблокирующим alert'ом. Что-ж, давайте исправим это положение.

      Вкусности console
    • 2000 из 3000 иконок готово — стань соавтором! (стол заказов)

        Не так давно на хабре был топик, который привел на наш сайт 17 тысяч посетителей за два дня (11,828+5,100 on October 21, 2010). С 2009го года эта уже не первая волна, а последние иконки будут нарисованы в первой четверти 2012го года. Best reseller hosting providers.

        image

        Не хватает еще 1000 иконок для best email hosting. Готовы ли вы предложить метафоры, которых у нас еще не хватает? Тогда follow me…

        Читать дальше →
      • Очень много полезных штук для AS3 #2

          В продолжении статьи о полезных штуках для AS3, сегодня мы поговорим о 2D физических движках, библиотеках для работы со звуком, системах для работы с частицами, наборах для загрузки данных, ООП фреймворках, фреймворках для разработки сайтов, а так же о куче других полезных библиотек/фреймворках/классах, чьё назначение не вписалось не в одну из категорий.
          Читать дальше →
        • Набор инструментов для построения графиков, блок-схем и диаграмм



            Есть много разных сервисов, облегчающих жизнь веб-разработчику или дизайнеру, в том числе создающих разные графики, диаграммы, блок-схемы и т.д. Ниже представлена небольшая подборка.
            (Осторожно, много изображений)
            Читать дальше →
          • Анимированные баннеры на Javascript — это просто*

              *) На самом деле все равно сложно, но зато проще, чем было раньше.

              История началась с постановки задачи: нужно сделать анимированный баннер с примерно тридцатью объектами средствами HTML+javascript за один день. За день, конечно, баннер сделан не был, а был сделан за два усилиями трех человекодней. После выполнения задания осталась библиотека пакетной анимации, которую я назвал Scenario. О её доработанной версии я и хочу рассказать.

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

              Запуск сценария из любого места предельно прост:

              var newScenario = [...];
              $.scenario(newScenario, {
                  complete: function(time) {
                      alert('Готово!');
                  }
              });

              Осталось только разобраться, что писать вместо трех точек в примере :)
              Читать дальше →
            • Smthngs (thn.gs) — todo веб-сервис как десктопное приложение

                Странное дело, порой кажется что каждый месяц появляется не меньше дюжины новых GTD-like таск-менеджеров. Одновременно с этим, хороших приложений для эффективного управления повседневными задачами крайне мало. Думаю, редкий читатель нашел для себя подходящий инструмент и пользуется им повседневно.
                Мы не из ленивых, и как вы уже догадались, тоже сделали свой, с… всем что полагается.
                Ниже я расскажу о нашей парадигме и особенностях, которые выгодно отличают нас от конкурентов. Т.к. многие уже устали от обилия постов о личной продуктивности на Хабре, в своем рассказе я сделаю упор на веб-технологии, а не на gtd-методологию. А пока картинка для привлечения внимания:
                image
                Читать дальше →
              • jQuery Deferred Object (подробное описание)

                31 января вышел релиз jQuery 1.5, одним из ключевых нововведений которого стал инструмент Deferred Object. Именно о нём я и хочу рассказать подробнее в этой статье.

                Эта новая функциональность библиотеки направлена на упрощение работы с отложенными (deferred) вызовами обработчиков (callbacks). Deferred Object, аналогично объекту jQuery, «цепочный» (chainable), но имеет свой набор методов. Deferred Object способен регистрировать множество обработчиков в очередь, вызывать зарегистрированные в очереди обработчики и переключать состояние на «завершено» или «ошибка» для синхронных или асинхронных функций.
                Подробности и примеры далее
              • 10 вещей, которые должен знать каждый Senior Flash Developer

                  Я собеседовал нескольких Flash/Flex разработчиков в качестве потенциальных сотрудников Roundarch. Для меня, самой сложной частью собеседования было понять, какие именно вопросы задавать, чтобы оценить уровень Flash-разработчика. Поэтому, я создал этот список. Этот список позволяет мне оценить уровень и опыт разработчика, которого я собеседую.

                  Если вы ещё не достигли уровня «Senior-developer», то прочитайте список и изучите информацию по ссылкам из него. Если вы посчитаете этот список устаревшим, то, пожалуйста, критикуйте его и расскажите о других ссылках в комментариях.
                  Читать дальше →
                • Использование Deferred объектов в jQuery 1.5

                  • Translation
                  Deferred объекты появились в jQuery 1.5. Они позволяют отделить логику, которая зависит от результатов выполнения действия от самого действия. Для JavaScript Deferred объекты не новы, они уже были в MochiKit и Dojo, но с изменениями логики jQuery ajax от Julian Aubourg, внедрение Deferred объектов было неминуемо. С Deferred объектами несколько callback могут быть связаны с результатом задачи и любые из них могут быть привязаны к действию даже после начала его выполнения. Выполняемая задача может быть асинхронна, но не обязательно.

                  Deferred объекты теперь встроены в $.ajax() таким образом вы будете получать их автоматически. Обработчики теперь могут быть связаны с результатом следующим образом:
                  // $.get, ajax запрос, он асинхронный по умолчанию
                  var req = $.get('foo.htm')
                     .success(function( response ){
                        // что-нибудь делаем с ответом
                     })
                     .error(function(){
                        // делаем что-нибудь если запрос провалился
                     });
                   
                  // это выполнится перед тем как $.get() будет выполнено
                  doSomethingAwesome();
                   
                  // Делаем что-то ещё перед завершением запроса
                  req.success(function( response ){
                     // делаем  что-то ещё с ответом
                     // он будет выполнен когда запрос завершится, а если запрос завершен, то будет вызван немедленно
                     // если запрос уже был выполнен
                  });

                  Читать дальше →
                • Мой опыт использования таск-менеджера Мегаплан

                    Привет, сообществу Хабра!

                    Я хочу рассказать про мой опыт использования таск-менеджера Мегаплан.

                    Сразу несколько уточнений:
                    1. Я не работаю в этой компании, статья не заказная и т.п.
                    2. По-моему мнению, негативный информационный шум вокруг компании не делает продукт хуже.
                    3. Цель моего поста — поделиться полезной, с моей точки зрения, информацией и узнать опыт своих товарищей по оружию (даже если оно другой модели).

                    Читать дальше →
                  • Инструменты для форматирования CSS-кода

                      Любите ли вы свой CSS-код так, как люблю его я? Если да, то, несомненно, стремитесь к тому, чтобы он не только хорошо себя вёл и чувствовал, но и приятно выглядел.
                      Надеюсь, что инструменты, описанные ниже, помогут вашему коду приблизиться к идеалу.
                      Читать дальше →
                    • jPlayer — плагин для проигрывания аудио и видео

                        imageЯ уже писал про скрипт audio.js, позволяющий проигрывать аудио файлы использую возможности html5 и flash. Пост был встречен хорошо, поэтому сейчас я хочу рассказать про jPlayer — jQuery плагин для проигрывания аудио и видео.
                        Читать дальше →
                      • Двадцатка лучших веб-шрифтов

                        • Translation
                        Top 20 Fonts

                        Сейчас самое время повышать уровень дизайна своих работ с помощью веб-шрифтов


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

                        Свобода использования веб-шрифтов вне безопасного списка на всех ведущих ОС стала возможной, по большому счету, благодаря трем основным, почти одновременным технологическим факторам: широко распространенной поддержке правила @font-face в браузерах; появлению таких «шрифтохранилищ» как Typekit и Fontdeck; создание нового формата шрифтов — архивированного файла шрифта WOFF.

                        Читать дальше →
                      • Прикручиваем GTD к Remember The Milk

                          Добрый день, уважаемые хабравчане. В данной топике я бы хотел представить вольный перевод статьи Дуга Айртона, о том, как приспособить сервис Remember The Milk (далее RTM) для работы с системой Getting This Done. О самой GTD писать нет смысла — это уже много раз делали до меня. А вот на чем стоит остановиться – так это на допиливании любимого многими Remember The Milk под эту систему.

                          Честно говоря, GTD я увлекся год назад и, переехав на Android, стал искать удобную программу для работы с задачами и списками. Перебрав довольно много приложений, я наткнулся на парочку программ синхронизации с сервисом RTM и пошел копать в этом направлении. Скажем так, прямо «из коробки» RTM мало приспособлен для работы с контекстами. Но если применить смекалку…

                          Скажу сразу – для себя я выбрал другую систему и другие программы. Если интересно почему, то вот тут и тут я об этом довольно подробно рассказываю. Сегодня же мне бы хотелось остановится именно на RTM – сервисе в России довольно популярном и почти что локализованным.
                          Читать дальше →