Tom Adler’s blog

блоги о javascript

поделитесь, пожалуйста, ссылкой на какой-нибудь список блогов о javascript на русском языке

если такого списка нет, но вы читаете или ведете блог(и) по этой теме, то ссылкам на них я тоже буду рад, можно будет составить список прямо здесь. (Говоря «о javascript», я подразумеваю, что в блоге есть хотя бы 15 таких записей, и уровень их несколько выше, чем «нашел новую библиотеку jQuery, буду пробовать»)

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

а вот список рекомендованных блогов на английском:

просто блоги

Peter-Paul Koch, известнейший автор quirksmode.org

Dean Edwards, не менее известный автор IE7.js etc


Jonathan Snook

Flagrant Badassery — js + regexp

Vitamin

библиотеки и их авторы

prototype/scriptaculous

блог prototype.js

Thomas Fuchs

Justin Palmer

Andrew Dupont

jquery

блог jquery

John Resig

блог yui

блог dojo

firebug и его разработчик

официальный блог Firebug

Joe Hewitt

браузеры

miscoded — парень из Opera QA, отвечает за совместимость яваскриптов, один из авторов browser.js

статьи разработчиков из Оперы

блог команды IE — врага нужно знать в лицо

блог команды WebKit

,

расширяя prototype.js — обработка нескольких событий

prototype.js — моя любимая javascript-библиотека. Но несмотря на то, что в ней есть очень многое, некоторых вещей мне в ней не хватает. Обычно это довольно простая функциональность, которая реализуется в несколько строчек. Впрочем, я понимаю, что creeping featuritis приводит к bloatware, поэтому не предлагаю разработчикам включать весь мой код в ядро. С другой стороны, несколько строчек недостойны включения в скриптеку как отдельный плагин, поэтому я иду стандартным путем, собирая свои маленькие расширения в extend.js. В этом посте и нескольких следующих я буду делиться такими расширениями с миром : )

в prototype есть мощная обертка для назначения обработчиков событиям — Event.observe(). Этот метод обычно вызывается как element.observe('click', function(){ … }). Однако иногда возникает необходимость навесить один и тот же обработчик на несколько событий, например, keypress и click. Естественно, копипастить текст функции не хочется, как не хочется и объявлять ее с именем до назначения. Разумно просто передать вместо одного имени события массив с ними, и это очень просто:

Event.observe = Event.observe.wrap(function(oldFunction, element, eventName, handler){
    $A(Object.isArray(eventName) ? eventName : [eventName]).
        each(function(eventName){ oldFunction(element, eventName, handler); });
    return element;
});

остались только две маленькие детали. Дело в том, что таким образом мы изменили только сам метод Event.observe, но его старая копия осталась в методах элемента и документа. Обновить их — это еще две строчки:

Element.addMethods({ observe: Event.observe });
Object.extend(document, { observe: Element.Methods.observe.methodize() });

вуаля, теперь задача решается просто и изящно: element.observe(['click', 'keypress'], function(){ … })

, ,

pingback

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

тем не менее, двусторонние ссылки — это добро, и сейчас понемногу развиваются системы, значительно упрощающие их создание. Особенно активно используются trackback и pingback. Принципы работы у них схожие: когда автор создает на своем сервере ссылку на другую страницу, сервер автора автоматически извещает об этом сервер, хранящий другую страницу, и тот проставляет обратную ссылку.

в этом блоге я реализовал клиент и сервер pingback'а, а весь этот пост написан для того, чтобы можно было пропинговать страницу спецификации этой ссылкой : )

,

об опечатках

вообще хорошим тоном для веб-разработчиков было бы автоматическое исправление опечаток типа:

URL vs I18N

поигрался сейчас с переводом частей урла на русский язык, и с легким сожалением вернул все, как было. С сожалением — потому что как-то радуют адреса типа https://blog.arty.name/профиль/вход/. А отключил из-за того, что это не очень совместимо с тем способом, которым переводится мой блог

если коротко, все зависит от ваших предпочтений, пересказанных браузером. Коли вы настроили его в первую очередь хотеть русские страницы — каркас будет русскоязычным, в других случаях английским. Проблемы тут могли бы начаться, зайди вы «русским» браузером на английский адрес, или наоборот. Джанго с помощью gettext будет знать только язык вашего браузера, и ругаться на несоответствующие адреса

а жаль, красиво получалось…