вторник, 27 апреля 2010 г.

Логирование в web.py и не только

Для тех, кто уже знаком с web.py небольшой совет Logging на сайте web.py наверняка знаком. В нем рассказывается как организовать логирование HTTP сервера используемого по умолчанию, т.е. developement сервера. Предложенное решение базируется на использовании модуля wsgilog и передачей его в ваше приложение через middleware. В этом примере также используется класс LogIO (это только мое предположение, что LogIO является классом), но проблемка в том, что как он работает и где его взять - не понятно. В библиотеку wsgilog он не входит. Так что если кто-то сможет подсказать где его найти, буду признателен.

понедельник, 26 апреля 2010 г.

print и sys.stdout функции в многопотоковых приложения

Я думаю не ошибусь, если скажу, что функция print наиболее часто используемая функция. Именно с нее начинается первое приложение на python - Hello world. Работа с sys.stdout также рассматривается на начальных этапах. Казалось бы, что может быть сложного и необычного в этих в двух подходах записи данных в стандартный вывод?

четверг, 22 апреля 2010 г.

Эволюция веб приложений в диаграммах

С каждым годом все что мы знали или знаем меняется. Ничто не стоит на месте. Кого-то это расстраивает, кого наоборот радует. В любом случае изменения происходят и это нужно принять как естественное. Так и с веб приложениями.

Когда-то веб приложения (если их можно так назвать) представляли собой набор статических html страниц

среда, 21 апреля 2010 г.

Многопотоковый URLFetcher

Последнее время все чаще возникают вопросы о разработке приложений для многопроцессорных систем. Рост тактовой частоты процессоров больше не возможен, выбор сделан в сторону увеличения числа ядер. Но готовы ли мы, писать приложения с использованием многопоточности? Этот вопрос я задал себе. Познакомившись с нескольким теоретическими статьями на wikipedia я решил попробовать переписать ряд своих наработок с использованием нового для себя подхода. В теории казалось все так просто. Но на практике, разработка многопотокового приложения соизмерима с управлением городским трафиком. Даже несколько потоков, работающие каждый в своем режиме могут создавать сложности. Наиболее сложными для меня (и в то же время невероятно интересными) были вопросы синхрозации данных между потоками. Если однопотоковое приложение можно сразу сесть и написать и оно будет работать, то для простейшего многопотокового нужно хорошенько все продумать. Для случая с одним элементом для которого распараллеливаются задачи - все более менее понятно. все самое интересное начинается как только таких элементов появляется несколько и они зависимы между собой.

суббота, 10 апреля 2010 г.

Критерии синхронизации баз данных

Вопрос синхронизации баз данных у меня возник, когда появилось несколько компьютеров/хостов, собирающих в той или иной мере одинаковую информацию. Вопрос определения критериев с помощью которых можно четко определить различия в базах данных поднимался каждый раз, когда необходимо было выполнить синхронизацию данных из различных источников. В этом посте я хочу осветить некоторые свои наработки в этом направлении. Я умышлено убрал привязку к каким-либо реализациям баз данных (mysql, postgresql, sqlite), чтобы выявить только общие принципы.

пятница, 9 апреля 2010 г.

OpenWebCamp в Киеве

20 марта в Киеве прошла встреча посвященная открытым веб разработкам OpenWebCamp. Программа мероприятия была довольно обширная и затрагивала многие стороны разработки web приложений. Спустя время я постарался собрать материал с этой встречи: презентации, отзывы, микро-заметки, которые сделал сам. Но оказалось это не так просто. Из того что нашел

понедельник, 5 апреля 2010 г.

Окружение для разработки

В одном из постов "Платформа для разработки web приложений на базе web.py" я затронул тему окружения development сервера на компьютере с установленным MS Windows. В состав фреймворка web.py входит встроенный веб-сервер и внешний особенно не нужен. Хотя конечно же никто не запрещает установить какой-нибудь и использовать его для запуска веб приложений. Это дело вкуса. У меня как-то такой подход не прижился. Development сервер я запускаю прямо из командной строки. Но следует отметить, что у этого подхода есть небольшое неудобство: окно командной строки постоянно запущено.