• Войны в песочнице — Часть 1

      Предупреждение


      В статье описаны приключения одного моего знакомого.

      Предыстория


      События проходят во времена далекого третьего курса.

      Жил со мной в студенческом общежитии в одной комнате сосед-первокурсник, который, также как и я, учился на ВМК и интересовался информационными технологиями. Для определённости в дальнейшем буду называть его N.

      Что же дальше?
    • Бикубическая интерполяция, теория и практическая реализация

      Возникла задача визуализировать результаты некоторых замеров на 2-мерной карте, были известны результаты в узловых точках на равномерной сетке, соответственно, задача свелась к интерполяции полученных данных. Основное требование было — качество полученной картинки и минимальное количество артефактов интерполяции, поэтому выбор пал на бикубическую интерполяцию. Статьи в Вики мне показались суховатыми (по крайней мере для человека, который математикой не занимался со школьной скамьи), но там же нашлась ссылка на потрясающую статью, детально описывающую алгоритм. Здесь мы рассмотрим практическое применение данного алгоритма и разберем статью.
      Далее
    • Доступ к гироскопу и акселерометру из javascript

        Думаю многие видели демки сделанные парнями из google, когда при тряске ноутбука видео внутри html страницы разваливалось на куски. Мне захотелось сделать так же, но к сожалению на тот момент не смог найти как. А совсем недавно я прочитал о двух типах событий: DeviceOrientationEvent и DeviceMotionEvent, которые теперь поддерживаются в iOS 4.2. Подробности под катом.
        Читать дальше →
      • Обёртки для создания классов: зло или добро?

          Раз за разом я читаю, что удобные библиотеки для создания классов на Javascript, видите ли, не соответствуют идеологии языка и тем, кто их использует просто необходимо учить язык. Такое говорят невежды, которые и сами толком не разобрались ни в самом языке ни в библиотеках, которые они критикуют. И так часто говорят, что я решил написать этот топик и просто давать ссылку
          var Foo = new Class({
          	Extends: Bar,
          	initialize: function(firstname, lastname) {
          		this.parent(firstname);
          		this.lastname = lastname;
          	},
          	sayHello: function(){
          		alert(this.lastname || this.firstname);
          	}
          });
          

          Читать дальше →
        • Drupal Forms API. Часть 2 — для Drupal 7


            Вторая часть статьи содержит отличия, свойственные Drupal Forms API для версии 7. Эта часть статьи публикуется как открытый топик, видный не только подписчикам блога Drupal. Но свои дальнейшие статьи (по созданию тем) буду публиковать как закрытые статьи блога, чтобы не мешать тем, кому Drupal не интересен.

            В прошлой статье, мы разобрали функционал простого модуля, который возвращал введенное имя в форму при помощи AJAX (именуемого в Друпале 6 «AHAH»). Теперь очередь версии 7.

            Читать дальше →
          • Свежая подборка jQuery плагинов

            • Перевод
            Для меня jQuery ассоциируется с мощной и главное кросс-браузерной JavaScript библиотекой. Можно долго перечислять ее достоинства, холиварить по поводу и без, но думаю, никто не будет против посмотреть подборку интересных плагинов и уроков:
            для удобства – каждая картинка ведет на демо

            Hover Slide Effect



            Демо | Урок
            Галерея состоит из нескольких картинок, при наведении на одну из них она эффектно меняется на другую, а при клике на любую картинку — меняются все одновременно.

            Остальные плагины
          • 5 вещей, которые вы могли не знать о jQuery

            • Перевод
            jQuery очень мощная библиотека, но некоторые его богатые возможности неясны, если вы не изучали исходный код jQuery и не читали книгу jQuery Pocket Reference (автор пишет my new book), вы можете не знать о них. В этой статье представлены отрывки из этой книги — 5 полезных вещей о которых вы могли не знать.

            1) Вы вы не обязаны использовать $(document).ready() Если вы хотите выполнить функцию, когда документ готов для манипулированию просто передайте её в $()

            2) Вы, наверное, уже знаете, что вы можете передать тэг в функцию $() для создания элемента этого типа и, что вы можете передать атрибуты объекта (в качестве второго аргумента), которые будут установлены на созданный элемент. Вторым аргументом может быть любое свойство, который вы передаете в метод attr(). Кроме того, если какое-либо свойство имеет тоже самое имя, что и событие (click, mouseover), то значение свойства используется в качестве функции обработчика данного события.
            Следующий код, например, создает новый элемент, устанавливает три HTML атрибута и регистрирует функцию обработчика события(click) на нем:
            var image = $("<img>", {
                              src: image_url,
                              alt: image_description,
                              className: "translucent_image",
                              click: function() {$(this).css("opacity", "50%");}
                           });
            

            Читать дальше →
          • Использование объектов для красивой структуры кода в JavaScript

            Вступление


            Доброго всем времени суток. Поздравляю вас с праздниками и перехожу к теме.
            Когда вы выходите за рамки написания простых фрагментов jQuery и приступаете к разработке более сложных взаимодействий пользователей, ваш код может быстро стать громоздким и трудным для отладки. Эта статья покажет вам начать думать об этих взаимодействий в терминах «частичек поведения» используя паттерн проектирования object literal.

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

            Но подождите. Допустим, теперь требования изменились. Теперь код, который работал для трех элементов должен работать для десяти. Или ваш код должен быть повторно использован для несколько иного приложения, в котором все идентификаторы разные. Как не потеряться в коде, который является не просто вызовом плагина или парой строчек типа show() и hide()?
            Читать дальше →
          • Прямой нечеткий логический вывод

            Введение


            В 1965 г. в журнале «Information and Control» была опубликована работа Л.Заде под названием «Fuzzy sets». Это название переведено на русский язык как нечеткие множества. Побудительным мотивом стала необходимость описания таких явлений и понятий, которые имеют многозначным и неточный характер. Известные до этого математические методы, использовавшие классическую теорию множеств и двузначную логику, не позволяли решать проблемы этого типа.

            Читать дальше →
          • Используем быстрые селекторы для jQuery

            Как Вы знаете — в разработке объёмного JS-приложения где используется популярнейшая библиотека jQuery наступает момент когда остро встаёт проблема производительности. Все силы кидаются на амбразуру профайлера, каждый вызов скрупулёзно исследован, каждый функционально нагруженный кусок реализации обнюхан со всех сторон и выправлен. Но беда поступает не с той стороны, откуда её ждут 90% разработчиков. Селекторы — Как много в этом слове.
            Давайте разберёмся — как работает эта магия и почему поиск DOM-элементов может стать причиной падения производительности приложения.
            Читать дальше →