Публикации о языке Python   страница 370

Наваял свою аплоадилку-сокращалку картинок

И так, в ходе изучения python фреймворка flask и подключения домой 50 мбитного интернета, наваял сайт для аплоада картинок. Из реализованного сейчас только аплоад картинок, получение короткой ссылки на нее и установление доступа по паролю на нее Собственно, сам сайт вот сайтик

Планирую в ближайшее время сделать:

- возможность сокращения ссылок

- аплоад картинки по URL

- статистику по просмотру картинки втечение месяца

- сменить домен (это наверно первое

- возможно заменить выдачу только картинки по ссылке на страницу, где будет некоторая информация о картинке, а также всякие социальные кнопки

- добавить twitter авторизацию и добавление сразу ссылки в твиттер

- если кто сделать дизайн, сменить дизайн (могу я помечтать?)

О багах, прошу писат




Новые плюшки SyntaxHighlighter 3


Лето выдалось для меня довольно энергичным и знаменательным. Хотя, с точки зрения моего блога, это было не заметно, а порой казалось, наверное, что он и вовсе умер. Все акценты сместились в сторону реальной жизни, существенная часть времени уделялась как подготовке к своей свадьбе, так и самой свадьбе и все это феерическое действие было завершено отличным отдыхом в теплых краях. Для себя решил, что летнюю программу я выполнил на отлично, так что можно проявить немного творчества :).

2 июля 2010 года была анонсирована



[Offtopic] Анонс сайта notacash.com

Те, кто фолловит меня в твиттере, уже знают о существовании сайта notacash.com. Сейчас я хочу немного рассказать о нем. Более чем 3.5 года моя работа связана с технологиями Microsoft, в частности - .NET framework и платформа ASP.NET. Но так, как кроме языка программирования C# существует ещё большое количество других - я решил попробовать что-то другой. Выбор пал на скриптовые языки,а именно - python. По мере приобретения теоретических знаний о python, появлялась необходимость в их практическом применении.




swap мыслей или обо всём понемногу

Давно ничего не писал, нарушаю молчание. Очень трудно начать писать заметку, вроде есть о чём сказать, но начать писать трудно. Ну, ладно сразу о главном. Продолжаю поддерживать проект pylibcurl исправил баги, которые возникали в 64 битной версии ОС Ubuntu на тестах программа просто падала, выдавая в конце неприятную ошибку "Segmentation fault". А происходило это из-за того, что было неправильное обращение к указателю. В 32-битной ОС можно было обращаться к указателю таким образом:


curl_easy_init.restype = ctypes.c_void_p
и всё происходило без ошибок, а 64-битной версии данная конструкция не прокатывала, а нужно делать так:

curl_easy_init.restype = ctypes.POINTER(ctypes.c_void_p)

для меня это первая библиотека в которой задействован ctypes. Ну ничего, главное опыт и понять как это всё работает. В планах написать больше тестов и документацию



Перестановки на Scheme

В качестве небольшого упражнения по материалам прошлой статьи попробовал реализовать питоновскую функцию combinations() на Scheme. ;; ;; (define (generate n)) -> create list of string where ;; * length of each string is n ;; * each symbol of string is '0' or '1' ;; * the list has all possible combinations of symbols '0' and '1' (define (generate n) (generate-engine (list "0" "1") n))




Python: модуль subprocess. Перевод документации с комментариями и примерами. Особенности применения.

Начиная с версии 2.4, библиотека Python’а включает в себя модуль subprocess – унифицированное средство для запуска новых процессов, подключения к их потокам ввода, вывода, ошибок, и получения возвращаемого кода по завершению. Он призван заменить такие инструменты как os.system, os.spawn*, os.popen*, popen2.*,commands.* единым механизмом.

Условимся что во всей статье мы работаем в каталоге ~ в котором расположена основная программа. Модуль импортировался командой from subprocess import *, остальные модули простым импортированием,в коде присутствуют полные ссылки. Примеры рассматривались в Windows XP SP3 + python 2.6.2 и openSUSE 11.3 linux + python 2.6.5, справочный материал взят из версии 2.6, в версии 2.7 особо важных изменений нет.
Определение класса Popen

Модуль определяет в себе основной для использования класс Popen, который вызывает процесс и возвращает управление программе не ожидая его завершения:

class subprocess.Pop



An Introduction to Asynchronous Programming and Twisted

Наткнулся на серию статей на английском языке о введении в асинхронное программирование на twisted, очень рекомендую.




Контроль качества Django проектов

Если вы не смотрели слайды презентации Питера Баумгэтнера с DjangoCon 2010, то рекомендую это сделать. В данной статье содержатся некоторые мысли по этому поводу, но по большей части это перевод данных слайдов на русский.




Nginx-0.8.52 с uwsgi модулем

Похоже достойная замена Apache для развертывания python-приложений на сервере дошла до момента, чтобы это попробовать в деле. uwsgi сам по себе активно развивается. Уже реализована поддержка нового протокола Web3, чтобы приложения python 3.x смогли работать под web-серверами. Как только появиться возможность, обязательно попробую запустить проект под nginx + uwsgi.

Ссылки: nginx, uwsgi




Перезагрузка...

Понадобился веб-сервер для применения в  процессе разработки проектов на insanities. Такие сервера есть у django, werkzeug и т.д. Это удобно и разработчики охотно ими пользуются. Назовем данное явление - “дев-сервер”.

Естественно, требовать от дев-сервера устойчивости к большим нагрузкам и высокой производительности не стоит. По-моему мнению, главное - видеть журнал запросов, выброшенные исключения и просто работать с файлами проекта, забыв о перезагрузке дев-сервера.

Журнал запросов и исключений реализуется при помощи модуля logging, это не интересно. Интересно - как правильно организовать перезагрузку дев-сервера при изменениях в модулях проекта? Задача имеет типовое решение. Главный процесс запускает копию “себя” в новом процессе подкладывая в окружение флаг (1,