среда, 30 апреля 2008 г.

Ну Фаулер, насмешил

Пример из статьи Фаулера CollectionClosureMethod:


... The partition method combines select and reject. It works well with the multiple assignment feature in ruby.

managers, plebs = employees.partition{|e| e.manager?}

Теперь буду расшифровывать ПМ как "патриций-менеджер".

вторник, 8 апреля 2008 г.

Враги...

Акция "Врагов надо знать в лицо": найди свой пост на сайте врага без ссылки на источник.

Помимо всех своих постов я там нашел стыбренное по крайне мере с двух блогов, которые я читаю.

среда, 2 апреля 2008 г.

Расширения Firefox #1

Недавно решил немного разобраться как расширяется Firefox (навеяло конкурсом от Mozilla). По ходу сделал небольшой конспект - может когда нибудь пригодиться или будет кому-то интересно.

Часть первая. Firefox из нутри.

  • package_name - имя пакаджа; может быть как именем расширения, так и касаться базовой функциональности (например, chrome://browser/content/browser.xul - xul-файл, описывающий GUI браузера);
  • data_type - тип запрашиваемых данных (какие они бывают будет описано дальше);
  • file_path - путь к конкретному файлы в chrome.

Загруженные таким образом файлы получают неограниченные права (chrome-privileges). Вообще, chrome, в терминологии Mozilla - это все, что не веб-контент, а именно, GUI и все, с ним связанное (xul, js, css и т.д.). Основные типы chrome:
  • content - это, можно сказать, строительный материал для приложения на базе Firefox(xul, js).
  • locale - информация, позволяющая автоматизировать использование различных языков в зависимости от текущей локали.
  • skin - css-файлы, описывают как будут отображаться виджеты.

Для того, что бы chrome был доступен, его надо зарегестрировать в chrome-реесте в виде plain-текста (файл chrome.manifest). Как это делается и как создать минимальное расширение - в следующем посте.

Ссылки:
Conceptual Architecture of Firefox
Firefox Concrete Architecture
XUL Tools and What They Mean
Mozilla developer center

Read More...