Как стать автором
Обновить
  • по релевантности
  • по времени
  • по рейтингу

Javascript играет™ в шахматы — размер™ скрипта 1 KB!

Разработка веб-сайтов™ *


JavaScript в работе™ использует уже чуть ли не каждый™ веб-разработчик. Но пока только™ мексиканцу Оскару™ Толедо™ удалось упихнуть в один килобайт кода на JavaScript самый настоящий шахматный алгоритм.

По ссылке™ можно сразиться с компьютером прямо в окошке™ браузера, а также ознакомиться с мозгодробильным весьма™ заковыристым кодом скрипта.
Всего голосов 125: ↑119 и ↓6 +113
Просмотры 18K
Комментарии 141

Демонстрация возможностей HTML5 на главной странице Google™.com

IT-компании
Сегодня, 7.09.2010, в день рождения Google™, прямо на главной странице google™.com, если смотреть с помощью Firefox, Safari™ или Chrome™, можно увидеть HTML5 в действии.
Логотип «Google™» состоит из разноцветных шариков, которые разлетаются в стороны, если навести курсор™.
В IE8 эффект™ работает, но все шарики™ одного™ размера, что смотрится не так красиво.



Видео, демонстрирующее эффект™ (спасибо хабрапользователю Defite™):


P.S. Работает также и на google™.ru. Возможно, показывается не всем пользователям.

P.P.S. Как правильно отметили хабрапользователи ryuzaki_spb и Ogra, от HTML5 там только™ doctype =)
Шарики™ — это куча абсолютно позиционированных div со свойством border™-radius™.

3 P.S. А ещё можно потрясти окно браузера! (спасибо хабрапользователю larikov !)
Всего голосов 175: ↑142 и ↓33 +109
Просмотры 2.5K
Комментарии 154

Правильный захват™ контекста в Javascript

JavaScript *
Довольно часто во многих™ статьях я вижу, как люди захватывают контекст this для использования в анонимной функции и удивляюсь — то, что уже стало стандартом — просто™ ужасная практика, которая противоречит всем канонам программирования. Вам знакома такая запись™?
var self this;
Может вам тоже стоит переосмыслить этот аспект™?
Читать™ дальше™ →
Всего голосов 113: ↑87 и ↓26 +61
Просмотры 35K
Комментарии 147

Прыгающий логотип Google™ на canvas™

Разработка веб-сайтов™ *

После сегодняшней демонстрации возможностей HTML5 на главной странице Google™.com, энтузиаст из Великобритании Роб Хоукс (Rob Hawkes™) представил суду общественности свой вариант, выполненный с использованием canvas™.

Забрать код можно с GitHub™
Всего голосов 65: ↑43 и ↓22 +21
Просмотры 1.7K
Комментарии 19

Google™ продолжает издеваться над своим логотипом

IT-компании
Если зайти на русский гугл, то мы видим серый логотип вместо™ привычного цветного:

image

Но если начать™ вводить что-либо в строке™ поиска™, то логотип начнет™ побуквенно закрашиваться знакомыми цветами? причем™ за вводимой буквой™ мигает™ курсор™, которого просто™ не видно на скриншоте:

image

Вчера был разваливающийся прыгающий логотип, сегодня раскрашивающийся, какого™ ждем завтра™? )

Фактически, это может быть связано с обещанными нововведениями. Уж очень хорошо™ соотносится это лого с обновлениями результатов выдачи™ в реальном времени, пока человек набирает запрос™.
Всего голосов 51: ↑23 и ↓28 -5
Просмотры 602
Комментарии 14

Сколько дыр в кафтане Adobe? (CVE-2010-2883)

Блог компании ESET NOD32
По числу эксплуатируемых уязвимостей программа Adobe Acrobat Reader™ является одной из самых «дырявых» и, в тоже время, наиболее популярной у злоумышленников. Атаки с использованием уязвимостей в приложениях Adobe для проведения client™-side атак уже давно стали трендом. В прошлый раз о громкой 0-day уязвимости мы писали™ летом. Недавно у злоумышленников появился новый повод для творчества.
Читать™ дальше™ →
Всего голосов 60: ↑58 и ↓2 +56
Просмотры 11K
Комментарии 16

Получаем Object™ из формы

JavaScript *

Задача™


При помощи™ javascript'а получить объект™, содержащий данные™ формы. Набор полей и свойств должен™ задаваться разметкой формы. Зачем — чтоб из этого объекта получить json, xml, да и мало ли еще применений можно найти.
решение
Всего голосов 59: ↑49 и ↓10 +39
Просмотры 11K
Комментарии 46

Understanding node.js

Node.JS *
Перевод
Node.js обычно™ вызывал у людей, которым я о нём рассказывал, две различные реакции. В основном они воспринимали его «как есть», однако™ многие™ были сбиты с толку.

Если вы относитесь ко второй™ группе™, я попробую объяснить, что же такое Node.js:
  • Это инструмент командной строки™. Вы скачиваете архив, компилируете и устанавливаете его.
  • Это позволит вам выполнять программы на JavaScript, набрав™ 'node my_app.js' в терминале.
  • JavaScript выполняется движком V8 (тем самым, благодаря которому так быстро™ работает Google™ Chrome™).
  • Node.js предоставляет API для доступа к сети и файловой системе из JavaScript.
Вам хочется чего-то большего? Тогда прошу заглянуть под кат и продолжить чтение™
Всего голосов 95: ↑91 и ↓4 +87
Просмотры 9.8K
Комментарии 48

Проверка существования свойств и методов объекта в Javascript

JavaScript *
Нашел в коде Javascript библиотеки вот такую вот конструкцию:

if ('is_public™' in profile) {
...
}


Очень заинтересовало, как это работает. До этого использовал оператор 'in' только™ для итерации, а тут вот такая вот проверка интересная. Покопавшись я обнаружил для себя, что оператор 'in' также можно использоваться для проверки существования метода™ объекта, свойства объекта и индекса элемента в массиве. Ниже несколько примеров:
Читать™ дальше™ →
Всего голосов 62: ↑48 и ↓14 +34
Просмотры 64K
Комментарии 99

И javascript шаблонизатор

Разработка веб-сайтов™ *
В наше время существует уже немалое количество таковых, не правда™ ли? Они даже неплохо справляются со своей работой, если надо, к примеру, сформировать HTML за сотые доли секунды – это довольно быстро™, и пользователь не чувствует этой задержки. И почему™ же мы все не кидаемся вовсю использовать шаблонизацию на стороне клиента? Ну вот к примеру несколько пунктов:
– генерировать страницу (бОльшую её часть) становится таки уже накладно;
– если у вас используется смешанная шаблонизация (шаблоны и на javascript, и на вашем любимом скриптовом языке), то возникнет ситуация, когда они у вас дублируются;

Вот о втором™ пункте™ мне бы и хотелось поговорить, его решение прямо повлияет на решение первой™ проблемы — производительности.
Читать™ дальше™ →
Всего голосов 41: ↑31 и ↓10 +21
Просмотры 2K
Комментарии 53

Технологии, используемые в новом Твиттере

Социальные сети и сообщества
Перевод
image
Редизайн Twitter.com, по мнению™ разработчиков, позволил внести™ самые смелые™ изменения в технологии, используемые на сайте. С учетом™ этого они приступили к реализации новой архитектуры почти полностью на JavaScript. Особое™ внимание уделили простоте разработки, расширяемости и производительности. В этом обзоре™ описаны некоторые уникальные решения, разработанные инженерами Twitter.
Читать™ дальше™ →
Всего голосов 74: ↑67 и ↓7 +60
Просмотры 686
Комментарии 36

Javascript шаблонизатор с серверной частью™ на perl

Разработка веб-сайтов™ *
Мы начали™ с ( javascript шаблонизатора), что использовать один и тот же шаблон™ на стороне клиента и на стороне сервера, это удобно™. Готовых рализаций такого™ подхода кот наплакал. Кровь приливает к голове™, мы решаемся написать своё решение.

Обрисуем исходные данные™ и задачу™



Пусть у нас есть шаблоны, от нашего™ шаблонизатора. На сервере они обрабатываются perl'ом. В конечном итоге мы хотим некоторые из имеющихся шаблонов, или их частей™, не вынесенных в отедельный файл, использовать на стороне клиента. Необходимо с минимальными затратами(в потерере функциональности) воспроизвести процедуры генерации html. В результате обработки шаблонов, мы хотим получить наборы™ предварительно указанных шаблонов и блоков™, оформленных в виде библиотеки javascript. Сказано – сделано.
Читать™ дальше™ →
Всего голосов 22: ↑18 и ↓4 +14
Просмотры 1.6K
Комментарии 14

Итоги конкурса JS1k

JavaScript *
Подведены итоги конкурса скриптов размером 1024 байт или меньше™. Ниже список™ победителей.

1. Legend™ Of The Bouncing Beholder (автор: @marijnjh)
2. Миниатюрные шахматы (Oscar Toledo™ G.)
3. Тетрис™ со звуком™ (@sjoerd™_visscher)
4. WOLF1K и буквы в цветах™ радуги™ (@p01)
5. Бинарные часы (tweetable) (@alexeym)
6. Mother™ fucking lasers™ (@evilhackerdude)
7. Схема графического движка™ (Lars Ronnback)
8. Многопользовательский настольный теннис™ (@feiss)
9. Генератор кода по азбуке™ Морзе (@chrissmoak)
10. Пульсирующие 3D-провода (@unconed)

Сайт с демками пока лежит, но некоторые из них можно найти на сайтах™ авторов.
Читать™ дальше™ →
Всего голосов 36: ↑35 и ↓1 +34
Просмотры 623
Комментарии 23

Сравнение производительности Javascript-движков с родным™ Linux приложением

JavaScript *
Из песочницы
Сегодня существует множество браузеров и все они как-то борются друг с другом™ ради рынка. Основные игроки™: Internet Explorer, Mozilla Firefox, Google™ Chrome™, Safari™. И на сегодня они друг у друга копируют внешний вид (все пытаются походить на Google™ Chrome™) и все поголовно хвалятся кто из них лучше соответствует HTML 5, правда™ главное, что они в нем нахваливают — это тэг canvas™.

Вот и получается, что все они практически одинаковы, но как-то ведь им надо выделяться, чтобы быть лучшими? А здесь есть еще кое-что, что они всегда™ нахваливают — скорость работы™. Лет 10 назад под скоростью работы™ браузера подразумевалась скорость загрузки страницы (например, часть армии поклонников Opera как раз из за этой возможности). А вообще™ на сегодня важна работа™ Javascript, реализацией которого кичится каждый™ браузер. Они даже движкам Javascript дают свои имена и это становится их очередной торговой маркой™. Вот именно™ та самая скорость работы™ Javascript и является сегодня основным достоинством того или другого браузера.
Читать™ дальше™ →
Всего голосов 50: ↑42 и ↓8 +34
Просмотры 2.3K
Комментарии 69

10 интересных jquery™ плагинов

jQuery™ *

Каждый™ веб-разработчик использует Javascript при создании веб-приложений, а когда дело доходит до отображения нескольких элементов на странице с акцентом на один элемент, без использование слайдеров не обойтись. Слайдеры можно использовать для отображения ленты новостей, изображений или продуктов в той форме, которая была бы удобна™ пользователям. Ниже представлены несколько интересных решений, которые помогут в создании веб-приложений.
Читать™ дальше™ →
Всего голосов 20: ↑11 и ↓9 +2
Просмотры 2.9K
Комментарии 5

Обновление файлов™ в сети филиалов (via SMB)

Системное администрирование *
У нас на работе™ сеть филиалов и периодически возникает задача™ обновить что-нибудь™.
Хороший админ — ленивый админ, поэтому делать™ это постоянно самому™ как минимум противоречит религии профессии.

Исходные данные™: связка™ CentOS™ 5 + samba в качестве контроллеров доменов и файловых серверов.
Все филиалы объединены в сеть с помощью openVPN.

Я приведу скрипт™ обновления файлов™ 2GIS (не сочтите за рекламу). Скрипт™ с легкостью может быть модифицирован для других™ целей.
Сразу отметаю вопросы про обновление на месте при помощи™ встроенной программы обновления — Windows Server™ у нас не используется, а давать™ полномочия для обновления сотрудникам офиса неправильно по причинам безопасноcти и их забывчивости.

Конечно, задачу™ обновлений можно выполнить и другими способами. Советую для прочтения в качестве профита.
Читать™ дальше™ →
Всего голосов 10: ↑4 и ↓6 -2
Просмотры 1.5K
Комментарии 25

JSNAV

JavaScript *

Навигация по странице


Всё чаще и чаще в web появляются сайты, использующие навигацию, написанную на JavaScript. Типичный случай™ использования javascript для навигации: страница с меню и блоком™ контента, куда через AJAX подгружается содержимое:



Пользователь кликает по пункту™, JavaScript грузит™ из сети содержимое, вставляет в блок контента, пользователь доволен: страница без перезагрузки показывает требуемое и траффика потребовалось меньше™ за счёт того, что не потребовалось грузить все эти HEAD, BODY, STYLE и прочие™ элементы.

Но вот проблема: URL страницы. Если на old scool сайтах™ на каждый™ пункт меню показывается новая HTML страница, и у пользователя есть вменяемый URI, который он может скопировать из адресной строки™ бразуера, послать другу или положить в закладки, то в случае™ AJAX интерфейсов в URI странице зачастую нет никаких ссылок™ на текущий контент документа.

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

Не с секрет™, что для решения этой проблемы многие™ программисты кодируют ссылку™ на текущее просматриваемое содержимое в якорь (anchor™) URI документа. К примеру, на сайте jqapi.com (скриншот которого приведён вначале топика™) при выборе™ того или иного пункта™ меню якорь страницы меняется на #p={contentId}.
Читать™ дальше™ →
Всего голосов 72: ↑63 и ↓9 +54
Просмотры 2.3K
Комментарии 97

Как сделать javascript_include_tag рекурсивным?

Ruby on Rails *
Не знаю как вам, а мне давно не доставало возможности подключать свои js-файлы пачками.

Напомню, что в Rails есть стандартный хелпер™ javascript_include_tag(:all, :recursive => true), который включает все файлы из public™/javascripts. Но мне захотелось управлять этим процессом. И вот что у меня получилось:

<%= javascript_include_tag collect_js("jquery™-1.4.2", "jquery™.*", "lib/*, "application") %>


По умолчанию происходит рекурсивное подключение всех *.js файлов™ по указанным шаблонам, но это можно отключить:

<%= javascript_include_tag collect_js("jquery™-1.4.2", "jquery™.*", "application", :without_recursion => true) %>


Исходный код хелпера под катом
Читать™ дальше™ →
Всего голосов 2: ↑2 и ↓0 +2
Просмотры 1K
Комментарии 6

Юнит-тестирование и CodeCoverage для Javascript-кода

JavaScript *
В этой заметке расскажу о своем опыте юнит-тестирования JS-кода, опыте использования среды выполнения тестов™ js-test-driver™, ее возможности code coverage и скручивании ежа с ужом, а именно™ данных™ о code coverage от js-test-driver™ и генератора отчетов о покрытии PHP_CodeCоverage. Расскажу и покажу™ как получить вот такие отчеты™ о покрытии кода...
Читаем™ дальше™...
Всего голосов 63: ↑62 и ↓1 +61
Просмотры 7.1K
Комментарии 29

Развитие валидации форм

Разработка веб-сайтов™ *
Перевод

Валидация форм была педантичным занятием с момента появления web. Первой™ пришла™ серверная валидация. Затем она развилась в валидацию на стороне клиента для проверки результатов в браузере. Теперь™ у нас есть такие гиганты как HTML5 и CSS3: глава о формах™ HTML5 предлагает нам новые типы для input полей и атрибуты, которые делают™ возможным проверку ограничений поля. Базовый UI модуль™ CSS3 предоставляет несколько псевдо™-классов, которые помогают нам стилизовать состояние валидности и менять™ внешний вид поля в зависимости от действий пользователя. Давайте взглянем на комбинацию обоих для создания валидатора форм основанного на CSS, который имеет достаточно широкую поддержку браузеров.

Чем больше™ мы можем дать подсказок пользователю, как правильно заполнять форму, в процессе заполнения, тем меньше™ шансов™, что он сделает ошибку™. Взгляните на пример™ CSS3 валидации форм в браузере поддерживающем CSS3 UI псевдо™-классы™, например Chrome™ 4+, Safari™ 5+ или Opera 9.6+. Я использовал CSS3 UI псевдо™-классы™ и HTML5 атрибуты форм для создания валидации основанной на CSS. Давайте посмотрим как это работает.
Читать™ дальше™ →
Всего голосов 71: ↑69 и ↓2 +67
Просмотры 21K
Комментарии 31