Сегодня решил создать новую страничку в разделе про Vim - Рецепты для Vim. Что бы и самому не забывать и с другими поделиться. Постепенно буду добавлять туда всякие полезные при использовании Vim мелочи.
Новая версия подсветки Python для Vim версии 2.6.3:
- Возвращена поддержка для чисел с 'L' на конце. Она была удалена для Python 3.0, но не в том файле;
Скачать можно здесь:
- http://hlabs.org/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.org/vim/highlighting.html#python - скрипты подсветки синтаксиса на HIGH Labs;
- http://www.vim.org/scripts/script.php?script_id=790 - все версии python.vim на Vim.org;
Сейчас отсылал письмо на почту Yandex и решил заглянуть в лог, поглядеть статус доставки. Ответ сервера:
250 2.0.0 Content-Policy reject msg: Message accepted.
Напоминает: "Казнить нельзя помиловать". :-)
В связи со скорым выходом Python 2.6 обновил подсветку для Vim. Обновления в новой версии 2.6.1:
- Добавлены новые встроенные функции и исключения появившиеся в Python 2.6: "bin", "bytearray", "bytes", "format", "next", "BufferError", "BytesWarning";
- Добавлена встроенная переменная "__debug__";
- Добавлены глобальные переменные: "__doc__", "__file__", "__name__", "__package__";
- Удалено исключение "OverflowWarning" (было удалено в Python 2.5);
- Добавлена опция "python_print_as_function" для подсветки "print" как функции;
- Добавлена поддержка для нового синтаксиса чисел "0o" и "0b";
- Добавлена поддержка для синтаксиса string.Template управляемая опцией "python_highlight_string_templates";
- Добавлена поддержка для синтаксиса str.format управляемая опцией "python_highlight_string_format";
- Удалена подсветка для "--" и "++" т.к. это допустимые выражения Python и могут быть интерпретированы как "a + +b";
Скачать подсветку можно в следующих местах:
- http://hlabs.org/vim/highlighting.html#python - скрипты подсветки синтаксиса на HIGH Labs;
- http://www.vim.org/scripts/script.php?script_id=790 - все версии python.vim на Vim.org;
В последнее время телефонные разводчики как-то активизировались в мою сторону. Не то что бы часто звонят, но придумывают все более изощренные способы.
Где-то пол года назад позвонила тетенька и сказала, что у нее украли только что купленный телефон и номер телефона был такой же как у меня. :-) Не очень понятно в чем был смысл развода (может я должен был отдать ей телефон?), или возможно это была просто разведка, но очень маловероятно, что произошла ситуация которую она описала. :-)
А недавно была целая акция которая и побудила меня написать эту заметку. На выходных позвонила тетенька и сказала, что проводится соц. опрос (не назвав при этом даже компании) и когда я отказался участвовать умоляющим голосом спросила давно ли у меня мой номер (разведка?)? Пока не так интересно? Вчера позвонил дяденька и стал говорить по-английски! Сказал, что он звонит из Нью-Йорка, из офиса лотереи Green Card и что у меня есть все шансы и все такое. Сначала я даже подумал, что это правда, т.к. лет 5 назад бродил мимо сайта лотереи Green Card, только вот не помню что бы регистрировался. ;-) В итоге, поспрашивав про мое семейное положение и образование и продиктовав мне какой-то номер (мой регистрационный номер?) он сказал, что участие платное (и это правда) и я могу прямо сейчас все оплатить достав свою банковскую карточку. :-) Когда я сказал, что у меня ее сейчас нет, он посоветовал попросить у друзей. :-)) В итоге, я сказал, что все оплачу через интернет ;-) и он, уже умоляющим тоном, сказал, что если я буду платить прямо сейчас, то будет скидка 10%. :-)))
Самое смешное, что у дяденьки был акцент и манера напомнившие мне турецких торговцев, например, частое употребление "my friend" и даже вставка пары русских слов. Видимо насчет "my friend" и того, что ну уж иностранцам-то можно верить написано где-то в теории социальной инженерии? Вобщем с таким "друзьями" надо быть внимательней.
На HighScalability появилась заметка по следам интервью с Jonathan Heiliger из Facebook.
Из известных моментов:
- Частые релизы. Более-менее большие релизы раз в неделю, маленькие раз в несколько дней.
- Постепенное внедрение массивных изменений. Большие изменения имеет смысл сначала делать для небольшой группы пользователей, отлавливать ошибки и потом постепенно открывать дальше.
- Откат назад. Если обнаружены проблемы в релизе иногда правильнее его откатить.
Из интересного:
- Распределение команды по временным зонам. Никому не надо перерабатывать, каждая часть команды работает в свое время. Так же работают и 37signals, Google, Yahoo и т.п.
- Быть новатором, а не осторожничать. Страх ошибки может остановить все развитие.
- Ожидать проблемы. Проблемы случаются, изменения случаются. Все это может происходить после релиза, в рабочем состоянии. Но это не должно останавливать развитие.
Эта картинка видна и в Mozilla Firefox и в Inernet Explorer:
А вот эта в Internet Explorer не видна, а Mozilla Firefox все нипочем:
Неприятный эффект отнимающий рабочее время. :-)
Последнее время заметил, что стал достаточно часто использовать в Python декораторы, благо есть синтаксическая поддержка. Раньше я уже опубликовал парочку:
- Декоратор для добавления информации об авторе в строку документации функции: http://code.activestate.com/recipes/302036/
- Декоратор для запуска декорированной функции не чаще чем заданный временной интервал: http://code.activestate.com/recipes/502247/