8 сент. 2011 г.

Snapshot и репозиторий Nexus thirdparty

Обнаружил, что разработка DisplayTag всё ещё продолжается, хотя артефакты 1.3-SNAPSHOT можно найти только в репозитории SourceForge. Поэтому скачал исходники из SVN, пофиксил JUnit-тесты тупых америкосов (в моей локали по умолчанию при выводе в текст дня недели получится что угодно, но никак не "tuesday"), собрал локально (сначала mvn package, затем mvn source:jar) и попробовал залить в свой репозиторий thirdparty (как я это обычно делал для Java plugin и JDBC-драйверов Oracle и MS SQL):

30 авг. 2011 г.

Валидное унифицированное подключение Java-апплета в XHTML

Когда встала реальная необходимость использования Java-апплета в проекте, освежил знания по этой тематике и перекопал интернеты. Результат совершенно не удовлетворил меня как веб-девелопера: невнятные советы, невалидная древняя разметка, куча логики, проверки на Netscape 6. Нужно было своё решение - современное, валидное, правильное.

29 авг. 2011 г.

javascripts.sourceforge.net

Обновил свои скрипты на SourceForge:
  1. демо
  2. страница проекта
  3. архив демо (1.2 Mb)
  4. архив проекта Aptana (6 Mb)
  5. просмотр в SVN
IDE Aptana (для которой архив проекта предназначен) - более-менее неплохая среда разработки JavaScript, основанная на Eclipse, имеет встроенный веб-контейнер Jetty, предпросмотр (Gecko), форматирование и валидацию HTML и JS (JSLint), заливку на SourceForge по SFTP.

26 авг. 2011 г.

Exception в setSelectionRange() в Firefox

Иногда при вызове element.setSelectionRange(begin, end); Firefox вываливает исключение:

uncaught exception: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsIDOMNSHTMLInputElement.setSelectionRange]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: http://127.0.0.1:8000/ui/lib/ui/maskedinput.js :: caret :: line 38" data: no]

Возможные причины:
  1. Элемент не подключен к документу (создан в JavaScript и не вставлен или только что вставлен в дерево DOM - возможны варианты в разных версиях Firefox).
  2. Элемент невидим (элемент или один из его родителей имеет стиль display:none).
  3. Элемент не имеет фокуса (проявилось в Firefox 3.6+).

25 авг. 2011 г.

Проверка слова на попадание в список зарезервированных идентификаторов

В ходе доработки ООП Prototype встала необходимость определения, является ли название поля/метода зарезервированным словом или нет. Придумал три возможных алгоритма решения (точнее придумал два, а один был подсмотрен в RightJS). На вполне закономерный вопрос, какой из трёх вариантов быстрее, ответ даёт онлайн-сервис тестирования производительности JavaScript  - весьма удобный инструмент для сравнения скорости выполнения разных вариантов скрипта в разных браузерах.