JavaScript → Chosen: сделай выпадающие списки более дружественными
Плагин Chosen создан для оформления красивых и удобных выпадающих списков с помощью jQuery и Prototype. Для установки плагина достаточно просто скачать файлы и прописать одну строчку:
По умолчанию в Chosen вместо длинного текстового списка предлагается поле, по нажатию на которое появляется список. Поддерживается автодополнение ввода, выбор нескольких пунктов меню, элемент optgroup и др. Выглядит вполне нативно. В общем, лучше один раз увидеть.
Поскольку Chosen заменяет стандартный элемент HTML, то не нужно беспокоиться, как он работает с браузерами без поддержки JavaScript. Также не нужно ничего менять в бэкенде: формы сабмиттятся как обычно, изменения только в пользовательском интерфейсе.
Некоторые форки:
Chosen для MooTools
Модуль Chosen для Drupal 7
$(".chzn-select").chosen() (версия для jQuery)По умолчанию в Chosen вместо длинного текстового списка предлагается поле, по нажатию на которое появляется список. Поддерживается автодополнение ввода, выбор нескольких пунктов меню, элемент optgroup и др. Выглядит вполне нативно. В общем, лучше один раз увидеть.
Поскольку Chosen заменяет стандартный элемент HTML, то не нужно беспокоиться, как он работает с браузерами без поддержки JavaScript. Также не нужно ничего менять в бэкенде: формы сабмиттятся как обычно, изменения только в пользовательском интерфейсе.
Некоторые форки:
Chosen для MooTools
Модуль Chosen для Drupal 7
Блог компании ALEE Software → Интерактивное прототипирование с GUI Machine
В предыдущих сериях...
В предыдущих статьях цикла мы в деталях описали процесс поиска подходящего нам инструмента прототипирования и историю создания собственного инструмента – GUI Machine.Теперь пришло время рассказать более подробно о том, что у нас получилось. Дабы не тратить драгоценное время читателя, приступлю к описанию инструмента прототипирования GUI Machine, его функциональности и возможностей без замедления и лирических отступлений.
Статья будет интересна не только тем, кто уже знаком с инструментом и хочет узнать о нём больше, но и тем, кто находится в активном поиске инструмента прототипирования и проводит их сравнительный анализ.
JavaScript → Введение в prototype.js
Подключаюсь к разработке проекта, в котором используется этот замечательный js-фреймворк. До этого использовал только jQuery, поэтому пришлось изучать эту новую для меня библиотеку.
Второе место, куда я пошел за информацией, после Википедии, был Хабр. С удивлениемобнаружил не обнаружил здесь блога, посвященного Prototype и более того, никакой информации «для новичков». Решил исправить этот недостаток.
Все заинтересованных — прошу под кат
Второе место, куда я пошел за информацией, после Википедии, был Хабр. С удивлением
Все заинтересованных — прошу под кат
JavaScript → Основы и заблуждения насчет JavaScript
Объекты, классы, конструкторы
ECMAScript, будучи высоко-абстрактным объектно-ориентированным языком программирования, оперирует объектами. Существуют также и примитивы, но и они, когда требуется, также преобразуются в объекты. Объект — это коллекция свойств, имеющая также связанный с ней объект-прототип. Прототипом является либо также объект, или же значение null.В JavaScript нет привычных классов, но есть функции-конструкторы, порождающие объекты по определенным алгоритмам (см. Оператор new).
Прототипное делегирующее наследование
Классическое наследование очень похоже на то, как люди наследуют гены своих предков. Есть какие-то базовые особенности: люди могут ходить, говорить… И есть характерные черты для для каждого человека. Люди не в состоянии изменить себя — свой класс (но могут поменять собственные свойства) и бабушки, дедушки, мамы и папы не могут динамически повлиять на гены детей и внуков. Все очень по земному.
Теперь представим другую планету, на которой не такое как на Земле генное наследование. Там обитают мутанты с «телепатическим наследованием», которые способны изменять гены своих потомков.
Разберем пример. Отец наследует гены от Дедушки, а Сын наследует гены от Отца, который наследует от Дедушки. Каждый мутант может свободно мутировать, и может менять гены своих потомков. Например у Дедушки был зеленый цвет кожи, Отец цвет унаследовал, Сын тоже унаследовал цвет. И вдруг Дед решил: «надоело мне ходить зеленым — хочу стать сними», смутировал (изменил прототип своего класса) и «телепатически» распространил эту мутацию Отцу и Сыну, вобщем посинели все. Тут Отец подумал: «Дед на старости лет совсем двинулся» и поменял свой цвет в генах обратно на зеленый(изменил прототип своего класса), и распространил «телепатически» свой цвет сыну. Отец и Сын зеленые, Дед синий. Теперь как бы дед ни старался Отец и сын цвет не поменяют, т.к сейчас Отец в своем прототипе прописал цвет, а Сын в первую очередь унаследует от Прототипа Отца. Теперь Сын решает: «Поменяю ка я свой цвет на черный, а моё потомство пусть наследует цвет от Отца» и прописал собственное свойство, которое не влияет на потомство. И так далее.
Nokia → Прототипы Nokia на Windows Phone 7 — первые впечатления и вся линейка на начало 2012 года
Не имей сто рублей, а имей сто друзей. Именно эта поговорка ведет меня по жизни и позволяет знакомиться с теми или иными продуктами еще на стадии их начальной разработки. В Москве появился мой старый знакомый, который привез множество новостей относительно Nokia и Windows Phone 7, а также у него на руках был один из прототипов такого устройства. Специально для юристов Nokia добавлю, что это устройство не принадлежит мне. Рискну поделиться с вами рядом впечатлений, а также дополнительной информацией, которую я вынес из нашего общения.
Планы Nokia относительно WP7 — 4 устройства в разработке
Внутри MS есть спецификации на WP7 устройства, так называемые шасси (chassis — не уверен, что именно так пишу, но слово именно это — шасси). В данный момент все многообразие устройств, доступных на WP7 очень похоже друг на друга — у них одинаковая функциональность, спасибо WP7 и отсутствию кастомизации, одинаковые процессоры, платформа от Qualcomm, как результат, очень схожие впечатления и производительность. Сегодня нет никакой разницы аппарат какого производителя купить, они все похожи до одури, отличия минимальны (тип экрана, батарейка, материалы корпуса и так далее).
В конце года выходит вторая волна устройств, так называемое шасси2, в нем сделаны определенные послабления по отношению к производительности устройств (процессор может быть не таким быстрым). Но при этом шасси2 позволяет добавлять новые форм-факторы — например, QWERTY-моноблоки с сенсорными экранами, то чем был известен Windows Mobile в свое время. Все производители создают такие модели уже сегодня, это HTC, Samsung, LG и ряд других компаний, даже SE ведет подобные разработки и изучает вопрос.
Планы Nokia относительно WP7 — 4 устройства в разработке
Внутри MS есть спецификации на WP7 устройства, так называемые шасси (chassis — не уверен, что именно так пишу, но слово именно это — шасси). В данный момент все многообразие устройств, доступных на WP7 очень похоже друг на друга — у них одинаковая функциональность, спасибо WP7 и отсутствию кастомизации, одинаковые процессоры, платформа от Qualcomm, как результат, очень схожие впечатления и производительность. Сегодня нет никакой разницы аппарат какого производителя купить, они все похожи до одури, отличия минимальны (тип экрана, батарейка, материалы корпуса и так далее).
В конце года выходит вторая волна устройств, так называемое шасси2, в нем сделаны определенные послабления по отношению к производительности устройств (процессор может быть не таким быстрым). Но при этом шасси2 позволяет добавлять новые форм-факторы — например, QWERTY-моноблоки с сенсорными экранами, то чем был известен Windows Mobile в свое время. Все производители создают такие модели уже сегодня, это HTC, Samsung, LG и ряд других компаний, даже SE ведет подобные разработки и изучает вопрос.
*nix → Собираем пакет для Solaris из сорцов из песочницы
Предисловие
Итак, у вас есть исходный код очень нужной вам программы и некоторые количество серверов под Solaris, на которые необходимо его развернуть. Более того, для успешной компиляции нужна куча модулей Perl.
Не так давно я столкнулся с такой задачей, и, после продолжительных попыток, не могу не поделиться найденным решением.
Задача: Собрать исходный код клиента munin-node под SPARC Solaris и распространить по нескольким серверам.
Весь процесс будет описан на примере операционной системы Solaris 10 SPARC (update, мне кажется особой роли не играет, у меня был и U6, и U9) и свободного распространяего приложения munin (http://munin-monitoring.org/).
JavaScript → Написание документации
Если вы пишете документацию открытого исходного кода, то это не просто вежливые дополнение к проектам, она в определенной степени помогает вашему проекту взлететь. Хорошонаписаный README помогает, но полная документация по API делает проект более профессиональным. Даже если ваш проект с закрытым исходным кодом, документация поможет новым коллегам более быстро адаптироваться или поможет вам вспомнить как все работает в длительных проектах.
Давайте посмотрим как устроена документация в популярных JavaScript фрэймворках.

Документация jQuery располагается по адресу docs.jquery.com и представляет из себя wiki в которой описана вся документация по API. Любая крупная область API включена в навигацию, каждая страница имеет список методов для этой области. Страница содержит примеры кода и комментарии на Disqus.
Комментарии исходного кода в основном связаны с багами или с необычным фрагментом кода, который требует пояснений.
Далее: Prototype, JSDoc и несколько специфических подходов к JavaScript документации
Давайте посмотрим как устроена документация в популярных JavaScript фрэймворках.
jQuery

Документация jQuery располагается по адресу docs.jquery.com и представляет из себя wiki в которой описана вся документация по API. Любая крупная область API включена в навигацию, каждая страница имеет список методов для этой области. Страница содержит примеры кода и комментарии на Disqus.
Комментарии исходного кода в основном связаны с багами или с необычным фрагментом кода, который требует пояснений.
Далее: Prototype, JSDoc и несколько специфических подходов к JavaScript документации
JavaScript → Разбираемся с prototype, __proto__, constructor и их цепочками в картинках
Есть javascript код:
Затрудняетесь ответить?
Тогда вам стоит пройти под кат ;-) (Далее 600 Кб больших изображений)
- var A = function () {};
- A.prototype.b = 100;
- var a = new A();
- A.prototype.c = 101;
- a.c = -100;
- A.prototype = {};
- A.prototype.b = 536;
- /* 1 */ console.log(a.__proto__.constructor.prototype.b === 536);
- var b = new A();
- /* 2 */ console.log(a.__proto__.__proto__.constructor === a.__proto__.constructor.prototype.constructor);
- /* 3 */ console.log(b instanceof A);
- /* 4 */ console.log(!(a instanceof Object));
Вопрос. Что возвратят выражения 1-4 и почему?Затрудняетесь ответить?
Тогда вам стоит пройти под кат ;-) (Далее 600 Кб больших изображений)
JavaScript → После всех асинхронных вызовов
Итак, мы пишем приложение с кучей асинхронных запросов. Нам надо отправить два асинхронных запроса и обработать их результат только после того, как будет получен результат обоих. Например, это могут быть ассинхронные обращение к файлу и запрос к базе, результат которых надо сложить вместе и обработать. Или два аджакс запроса.
Но особенность асинхронных запросов в том, что мы не знаем, какой из них придёт первым, а какой — последним. Решают это разными способами, но я не видел еще красивого и изящного. В топике я расскажу, как я это вижу.
Но особенность асинхронных запросов в том, что мы не знаем, какой из них придёт первым, а какой — последним. Решают это разными способами, но я не видел еще красивого и изящного. В топике я расскажу, как я это вижу.
var process = processFsAndDb.after('fs', 'db'); asyncFsAccess( file, process.fs); asyncDbAccess(query, process.db);
Клиентская оптимизация → Увеличиваем скорость загрузки сайта используя lazy-load изображений
Сейчас многие сайты насыщены графикой в разных видах: аватары, иллюстрации к постам, галереи и тп.
Читатели блога «Клиентская оптимизация» как никто другой знают цену лишних запросов к серверу.
Количество обращений к серверу можно легко уменьшить с помощью техники пост загрузки изображений, которые не попадают в область видимости(первый экран). Т.е изначально будут загружаться только те изображения которые пользователь способен увидеть, остальные будут загружаться по мере скролинга страницы.
Читатели блога «Клиентская оптимизация» как никто другой знают цену лишних запросов к серверу.
Количество обращений к серверу можно легко уменьшить с помощью техники пост загрузки изображений, которые не попадают в область видимости(первый экран). Т.е изначально будут загружаться только те изображения которые пользователь способен увидеть, остальные будут загружаться по мере скролинга страницы.