Думаю не стоит сомневаться, что каждый из нас постоянно делает для себя какие-либо маленькие открытия. О некоторых можно даже написать. Вот, например, пара интересных моментов которые я недавно для себя открыл:
Где-то месяц назад я выбирал подходящий механизм сериализации данных для передачи их по сети. В итоге оставалось посмотреть на два варианта:
- Twisted Banana - протокол сериализации из пакета Twisted;
- Механизм сериализации из пакета Google Protocol Buffers;
В конце концов оказалось, что эти механизмы сериализации практически идентичны. Только если в Banana у байта типа установлен старший бит, а у данных старшие биты сброшены, то в Protocol Buffers все с точностью до наоборот. Кстати, не очень понятно почему в Google сделали именно так - мне кажется, что версия Twisted более оптимальна...
Второй момент совсем свежий и связан с библиотекой GPGME (GnuPG Made Easy). Все началось с того, что для одной из задач мы быстро набросали обвязку для GnuPG с помощью модуля subprocess. Позже у меня появилось время оптимизировать этот код и я подумал, что наиболее оптимальным вариантом будет написать Python-обвязку для библиотеки GPGME. При этом я рассчитывал через нее получить прямой доступ к функциям GPG... Было смешно узнать, что эта библиотека делает тоже самое, что мы написали с помощью subprocess. :-)
Новая версия подсветки Python 3.0 для Vim версии 3.0.0. Внимание: Только для Python 3.0! Изменения:
- Добавлена поддержка для интернациональных идентификаторов;
- Добавлена поддержка для новых строк и бинарных данных (bytes);
- Обновлена поддержка для чисел;
- Обновлена поддержка для str.format;
- Добавлены новые встроенные функции появившиеся в Python 2.6: "ascii", "exec", "memoryview", "print";
- Добавлено новое ключевое слово: "nonlocal";
- Удалено исключение "StandardError";
- Удалены встроенные функции: "apply", "basestring", "buffer", "callable", "coerce", "execfile", "file", "help", "intern", "long", "raw_input", "reduce", "reload", "unichr", "unicode", "xrange";
Скачать можно здесь:
- http://hlabs.spb.ru/vim/highlighting.html#python - скрипты подсветки синтаксиса на HIGH Labs;
- http://www.vim.org/scripts/script.php?script_id=790 - все версии python.vim на Vim.org;
Пришлось достаточно долго повозиться с этой подсветкой - слишком много изменений. Отчеты об ошибках приветствуются. :-)
Ухх, уже полтора месяца я ничего не писал здесь. Для меня одним из самых интересных событий, произошедших за это время, был выпуск Python 3.0. Большинство новых возможностей появившихся в нем я уже описывал в отдельной статье. Конечно, нужно еще многое сделать, что бы все внимание разработчиков перешло к 3-й ветке Python, но выпуск первой версии - это уже большой шаг.
Также я обещал постепенно выкладывать статьи которые я пишу для журнала Системный Администратор и сегодня я добавил очередную статью про распределенную систему контроля версий Bazaar.
Как и обещал, выкладываю первую статью которую я написал для журнала "Системный Администратор" (#8 за 2008 год). Читаем - "Профессиональное использование консоли с помощью GNU Screen".
Теперь буду раз в месяц выкладывать остальные (еще 2 уже точно есть). Самое смешное, что статью про Screen я задумал написать еще в году 2001-м, наверное, и в итоге написал только под давлением жестких сроков. :-)
Последнее время стал уделять много времени AJAX (возможно даже из этого получится что-то интересное ;-) и больше всего проблем, как и всегда, с Internet Explorer. Вот пара моментов:
IE жестко кэширует все HTTP запросы через JavaScript. Соответственно, если не добавлять к HTTP ответам, например, вот такие заголовки:
Cache-Control: no-store, no-cache, must-revalidate Pragma: no-cache
, то каждый запрос сработает ровно по одному разу.
Если в IE динамически создавать таблицу через DOM, то нужно в обязательном порядке создавать элемент tbody. Без него таблицу никто не увидит.
Только сейчас заметил интересное изменение появившееся в PostgreSQL 8.2. Для INSERT и UPDATE добавили опцию RETURNING и теперь можно делать вот так:
INSERT INTO table (value) VALUES ('value') RETURNING id;
Теперь потерял свою актуальность наиболее часто встречавшийся вопрос: "Как получить значение поля SERIAL для только что добавленой записи?".
Сегодня решил создать новую страничку в разделе про Vim - Рецепты для Vim. Что бы и самому не забывать и с другими поделиться. Постепенно буду добавлять туда всякие полезные при использовании Vim мелочи.
Новая версия подсветки Python для Vim версии 2.6.3:
- Возвращена поддержка для чисел с 'L' на конце. Она была удалена для Python 3.0, но не в том файле;
Скачать можно здесь:
- http://hlabs.spb.ru/vim/highlighting.html#python - скрипты подсветки синтаксиса на HIGH Labs;
- http://www.vim.org/scripts/script.php?script_id=790 - все версии python.vim на Vim.org;
В журнале Системный администратор вышла моя вторая статья. Статья описывает распределенную систему контроля версий Bazaar. К сожалению оказалось, что тема очень большая и многое пришлось опустить. Возможно недосказанное будет темой для какой-то из следующих статей.
В следующий номер буду писать про NginX - многим интересная тема. И совсем хорошая новость - скоро выложу первую статью на сайт и потом буду выкладывать по статье в месяц.
Еще немного обновил подсветку Python для Vim на пути к подсветке для Python 3.0:
- Добавлено исключение "VMSError";
- Добавлена поддержка для синтаксиса строк b"...";
- Добавлена поддержка экранирования фигурных скобок для str.format;
Скачать можно здесь:
- http://hlabs.spb.ru/vim/highlighting.html#python - скрипты подсветки синтаксиса на HIGH Labs;
- http://www.vim.org/scripts/script.php?script_id=790 - все версии python.vim на Vim.org;