ExtJS Tips&Hacks: автоматическая загрузка библиотеки ExtJS по требованию.
"Изначально к странице добавляется стилевой файл из дистрибутива ExtJS. Из скриптов мы используем сборку библиотеки, использующую jQuery и специальный адаптер. Вот эти два файла мы объединим в один, сначала минифицированную версию jQuery, потом Ext-jquery-adapter. И этот скрипт загружается на страницу. Сжатая версия CSS от ExtJS занимает примерно 40 Кб (особенно, если и ее откорректировать под нужды проекта), а минифицированный скрипт, объединяющий необходимые библиотеки - 73 Кб, и это все пока без учета возможностей gzip-сжатия.
В результате мы получаем на странице, во-первых, основные возможности от jQuery, и, главное, самое-самое минимальное ядро от ExtJS, буквально основные функции и возможности корневого класса Ext и его расширения для стандартных объектов JavaScript (например, String, Array и Date при использовании ExtJS получают некоторые "бонусы")."
min and max-width - проще не бывает...
"
* {margin:0;padding:0;}
body {
background-color:#fff;margin:3px auto;
padding-left:600px;width:10%;
}
.middle {border:#000 1px solid;margin-left:-600px;}
<body>
<div class="middle">...</div>
</body>
Проверено в IE6 (7,8), OPERA9.64, FF3, SafariWIN, Chrome.
"
Покраска гитары своими руками
"Итак, полностью разбираем гитару, снимаем всю фурнитуру и прячем подальше, дабы не растерять ничего. После этого берем в руки шлифмашинку, деку зажимаем на полу и снимаем старую краску. Шлифмашинка, по-моему, удобней орбитальная..."
SQL Parsing with Python, Pt. II
" The API of the module is pretty simple. It provides three top-level functions on module level:sqlparse.split(sql) splits sql into separate statements, sqlparse.parse(sql) parses sql and returns a tree-like structure and sqlparse.format(sql, **kwds) returns a beautified version ofsql according to kwds. "
Python generator to list decorator
"
def listify(gen):
"Convert a generator into a function which returns a list"
def patched(*args, **kwargs):
return list(gen(*args, **kwargs))
return patched
@listify
def f(x):
for i in range(x):
yield "item" + str(i)
assert f(5) == "item0 item1 item2 item3 item4".split()
"