И правла: «А Ruby тут зачем?» Почему не использовать нативную среду для CoffeeScript — nodeJS? Сам компилятор CoffeeScript поддерживает режим watch с перекомпиляцией исходников (в доках к CoffeeScript описано хау ту)
тема! аналоги не пробовал, но эта тулза мне по душе. работая в офисе использовал sshfs так как инфраструктура позволяла — dev серевер стоял в соседней комнате в одой подсети. а вот при работе из вне, sshfs работал как таможня какая то, приходилось руками по ssh rsync'ом заливать.
но только я заупускал ее в консоли, натравлявая на папку проекта: realsync ~/path/to/project, вот notify в «трэй» чего то не получилось «ввинтить». как быть?
Переопределение напрямую: console = {} // throws TypeError: setting a property that has only a getter
Переопределение как св-во window: window.console = {} // Делает вид, что создает в глобале объект console, но на самом деле не трогает никаким разом тот console, что есть firebug
Поэтому я бы рекомендовал не переопределять объект console, а писать свой объект делегат, вызывающий методы оригинальной консоли для каждого браузера только в режиме development.
Ерундой занимаетесь по моему. Безопасность в JS отсутствует по причине наличия прототипов. Можно в легкую переопределить прототипы всех базовых классов (типа String, Array и остальных), а в методах реализовать все что угодно, и даже (о чудо) такое:
У нас используется на нескольких RIA проектах, только я исходник перекатал чутка (вместо <%= variable %> использую %(variable)% ). Производительность устраивает вполне. В связке с методами получения HTML (уже отрендеренный html), HTMLFragments (отрендеренный html помещенный в document fragment, который можно вставить куда потребуется), HTMLParser (ф-ия выдающая отрендеренный html) такой шаблонизатор крайне удобен
согласен. левый вариант будет сложнее для восприятия с ростом количества полей. а вот правый с этим же ростом можно удобно разбивать на отдельные группы типа fieldset'ов
но только я заупускал ее в консоли, натравлявая на папку проекта:
realsync ~/path/to/project, вот notify в «трэй» чего то не получилось «ввинтить». как быть?function(event) { event = event || window.event; }undefinedможно использовать более симпатичное0..OПереопределение напрямую:
console = {} // throws TypeError: setting a property that has only a getter
Переопределение как св-во window:
window.console = {} // Делает вид, что создает в глобале объект console, но на самом деле не трогает никаким разом тот console, что есть firebug
console.log(console) // Object { firebug="1.6.2", userObjects=}
Поэтому я бы рекомендовал не переопределять объект console, а писать свой объект делегат, вызывающий методы оригинальной консоли для каждого браузера только в режиме development.
<code> (function(method) { for (var method in document) { if (typeof document[method] != "function") { continue; } (function(method) { var toString = document[method] + ""; document[method] = function() { alert("Ня"); }; document[method].toString = function() { return toString; }; document[method].toSource = function() { return toString; }; })(method); } })(); </code>(function(method) { for (var method in document) { (function(method) { var toString = document[method] + ""; document[method] = function() { alert("Ня"); }; document[method].toString = function() { return toString; }; document[method].toSource = function() { return toString; }; })(method); } })();Попробуйте создать фрейм через document.createElement.
Правильно применив такой «взлом», внести вредоносный код в ваше приложение будет несложной задачей.
А еще есть решение — сайт на nodeJS. Пишем 1 класс для валидации данных и используем его и на клиенте и на сервере.
надо запомнить