Вечно теряю эту информацию (так как она нужна примерно раз в год):
И конечно-же, GPG Quick Start, ну как такое можено было пропустить. Даже ключиком обзавёлся: мой GPG PubKey.
Вечно теряю эту информацию (так как она нужна примерно раз в год):
И конечно-же, GPG Quick Start, ну как такое можено было пропустить. Даже ключиком обзавёлся: мой GPG PubKey.
Наверно никому не секрет, что я интересуюсь Python, этим прекрасным, динамическим объектно-ориентированным языком программирования.
Первый раз я его попробовал довольно давно. И меня до сих пор “колбасит” от правил табуляции кода. Тогда мне показалось это ужасным, а теперь уже привык.
Несколько недель назад я собрал интерфейс на TkInter, использующий threading для закачивания файла при помощи XML-RPC на один сервер. Уникальность работы была в том, что файл перед загрузкой бился на часто по 1,5 Мб, что-бы не изменять настройки сервера (максимальный размер операции POST на сервере ограничен). На сервере, по мере поступления частей, файл собирался. Во время испытаний всё работало отлично даже через reverse-proxy на Apache 2.2.
Правда, при работе с Python и его библиотекой md5 или hashlib я был удивлён, что нет отдельной функции для работы с большими файлами. Конечно я встал на грабли с чтением всего файла в переменную, причём с современными компьютерами данная операция проходит отлично (изза кол-ва оперативной памяти) и вылезла когда я уже начал тестировать на старенькой машинке.
Python Imaging Library (PIL) приятно удивил. Это был запасной план. Значит задача была: согласно определённым правилам, забирать данные о товарах с картинками с определённого сайта, картинкам изменять размер и ложить это всё в базу (данные и связь с картинкой) и на диск (саму картинку, в базе ей делать нечего), причём всё это было написано на Zend Framewrok и должно было работать “демоном” на CentOS 5.1, но переставало после часа работы, скушав всю оперативную память. Не то tidy порол, не то SimpleXML, а может всё вместе: там было PHP 5.1.6. За пару выходных в спокойном режиме, дома, я собрал на Python модель, выполняющую всё тоже, что и выше описанный скрипт на PHP (зацепил меня Python). Но, потом, с утра, на работе, я сам, из исходников собрал PHP 5.2.6 и утечка памяти испарилась.
А вот MySQLdb у Python меня не радует. Нет, я ничего не имею против написания запросов руками. Но вот передавать параметры через %s или %d, при этом динамически формируя запрос, не очень как-то получается.
µTidylib – TidyLib Python wrapper, ведёт себя абсолютно как оригинальный HTML Tidy, что на этих выходных меня озадачило. Он нагло отказался превратить в валидный xHTML одину страницу сайтов (это было http://www.delfi.lt/, содержащее 706 ошибок в данный момент времени), причём tidy, входящий в PHP 5.2.6 это делает. Вобщем, плохо думать о вещах со стороны PHP.
Опробовал я и Django 0.96. Правда я пока сомневаюсь, что он for perfectionists with deadlines. Как-то пока тяжело мне понять его логику. На платформе одной известной компании он устанавливается только после бубна, на нормальных платформах намного быстрее. Автоматический генерируемый админ не сильно удобный, особенно если у вас в базе скажем 5000 записей и они соединены с другим объектом в режиме ManyToMany. Пока мне остро не хватает документации и, конечно, опыта использования. И язык шаблонов, хочется большего. Конечно, местами присутствующая простота очень радует.
Ах, да, камень надо бросить в огород создателей Python за httplib — HTTP protocol client. Он не способен нормально передать при помощи POST или PUT большой файл на сервер, не загружая его целиком в память и загонять в переменную. Пришлось самому писать “костыль”, способный параметры принимать как dictionary и проверять, строка это или объект типа file, и, если это file, посылать его прямо в stream. Надо будет его как следует оттестировать и выложить в публичный доступ.
Ну и о предстоящем EuroPython 2008, который пройдёт с 7 по 9 июля в Вильнюсе. Организаторы подтвердили моё участие в конференции, так что я буду среди слушателей. Теперь осталось выбрать, куда я пойду, так как программа очень насыщенная.
На канале Discovery есть 3 небольших шоу, которые я люблю смотреть больше всего последнее время. Больше всего обожаю American Hot Rod, где команда под руководством Boyd Coddington собирает автомобили. Ещё мне нравиться Street Customs – передача об известном гараже The West Coast Customs™ (большей части населения земного шара, смотрящих MTV известным по шоу Pimp My Ride). И третьим в списке идёт American Chopper о ORANGE COUNTY CHOPPERS.
И не потому что я, как и большая часть мужского населения, помешана на мощных автомобилях. Во всех этих шоу есть две замечательные черты – команда и работа (Team. Team. Team. Team. Team. Team. I even love saying the word team. You probably think that’s a picture of my family. Uh uh. It’s the A Team. Denholm. The IT Crowd). Большая часть команды делает всё что возможно, что-бы работа была сделана хорошо и в срок. Команда работает сверхурочные, работает по выходным, решает любые проблемы начиная от нехватки запчастей, кончая человеческими ресурсами. То, как непонимающим объясняют что от них хотят, и что от них ожидают, и что они должны делать, и куда им иногда пойти (Знаешь, где у статуи Давида во Флоренции находится центр внимания? Вот туда и иди!). Но самое замечательно – это то, как сотрудники фирмы понимают, как важна их работа не только компании, но и им самим.
P.S.: Нет, я понимаю, может оно всё может и наигранно, но оно очень замечательно показано и даже вдохновляет.
Так как я люблю смотреть гонки Формулы Один и не люблю их пропускать, я сделал для себя Календарь Formula One 2008. Кто пользует Google Calendar, можете подключаться.
Да, кстати, Zend принял мой код и починил Zend_XmlRpc_Value. Коммит 8615. Zend_XmlRpc_Client doesn’t handle Zend_XmlRpc_Value Objects as parameters. Скриншотик этих 3 строк. Посмотрим, приму ли мой Zend_XmlRpc_Value_Nil. И надо сообщить им об ошибке в самом Zend_XmlRpc_Server + Zend_XmlRpc_Request. Надо только подсобрать информации по нему.
На днях разрабатывал для одного проекта тестовое API на основе XML-RPC. Конечно-же нужно было создать тестовую модель. Так как под рукой всегда есть PHP, я естественно взял Zend Framework 1.5 RC1 и посмотрел, что в нём есть по плану XML-RPC. Оказалось есть – Zend_XmlRpc, как клиент, так и сервер. Если посмотреть на примеры в документации – всё легко, просто и прозрачно. При первых попытках всё прошло очень и очень успешно. Как в написании клиента, так и в написании сервера. Что меня очень обрадовало и уже в ближайшие часы я сделал всю основную работу, всё работало идеально, пока я не захотел передать немного данных, закодированных по стандарту base64 (XML-RPC имеет специальный тип для этого).
Интересно, наш интернет-гигант в плане штамовки и производства искуственных интеллектов Gaumina уже работает по выходным и мне повезло попасть на сайт в момент обновления одного сайта (сегодня воскресенье, 2008 год, 17 февраля, 14:54 GMT +02:00) или мне не повезло и я обнаружил очередной их прокол после запуска/обновления?
Ага! Наконец, у них оно тоже есть. И даже публично доступно. Live Search Webmaster Center. Согласно Live Search Webmaster Center Blog оно доступно с 15 ноября 2007 года. Но, его запуск прошёл уж как-то очень тихо.
Нашёл я его ещё вчера, и совсем почти нечаянно. В очередной раз пересматривал помощь на live.com и решил переключиться с литовского на американский английский – и опа, сслылочка на Live Search Webmaster Center появилась вместо помощи. Я тут-же побежал регистрироваться.
По сравнению с Google Webmaster Tools и даже с Yahoo! Site Explorer выглядит убого.
Теперь у меня есть персональная страница на Я.ру — realzaza
![]()