Weblate - элегантный сервер переводов на python



Weblate — симпатичный сервис на python + django для организации совместных переводов текстов в различных форматах (Gettext, Qt, Java, Windows). Сервис глубоко интегрируется с git, автоматически сохраняя в репозитарии все изменения.

Медиа хостинг на MediaGoblin

Неплохой открытый проект на Python — MediaGoblin.



GIT репозиторий тут:

gitorious.org/mediagoblin/mediagoblin

Wiki по сборке:

wiki.mediagoblin.org/HackingHowto

Пока проект не имеет излишеств и это его главное достоинство — все модульно, просто и понятно.

Python3: идентификаторы на русском

Оказывается в Python 3 в качестве идентификаторов можно использовать не-ASCII символы:



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

Библиотека Django пакетов

Сайт djangopackages.com позволяет в полной мере следовать идеологии «неизобретательства велосипедов». Сайт разделен на категории, в каждой категории существующие пакеты для фреймворка django сгруппированы в таблицы для сравнения функциональности, оценки жив тот или иной проект или нет, на каких сайтах используется.

gevent на FreeBSD

В этом топике соберем gevent — сетевую библиотеку для Python, использующая libevent. В состав библиотеки входит быстрейший WSGI сервер. Соберем gevent и запустим один из примеров — простенький чат, использующий django и gevent.

Для начала нам не помешает поддержка sqlite и imaging для нашего Python:

cd /usr/ports/databases/py-sqlite3
make install
cd /usr/ports/graphics/py-imaging
make install


Также естественно нужна libevent:

( Читать дальше )

Бенчмарк WSGI серверов Python

nichol.as/benchmark-of-python-web-servers

А также сравнение асинхронных серверов:

nichol.as/asynchronous-servers-in-python

FreeBSD 9 + Cherokee / uWSGI + PINAX

В данном топике рассмотрим такую интересную вещь, как Pinax — заготовку для создания сайтов на базе фреймворка Django (шаблонизатор, основные функции, web-сервер для тестировния), работающего в свою очередь на Python. Особенность Pinax в том, что нам предлагается не готовая CMS, а заготовки для разных типов проектов. Тут и регистрация пользователей с поддержкой openid и топики и комментарии и блоги, сообщества, твиты, галереи, теги и прочее. Для всего этого уже готова структура базы данных.

Начнем со сборки Cherokee из портов:

cd /usr/ports/www/cherokee
make install


Не забываем отметить галку uWSGI:

( Читать дальше )

Консольный инструмент для работы с Youtube

Суровый мачо Питона и идальго консоли Ricardo Garcia Gonzalez написал замечательную утилиту youtube-dl для выдергивания видео и аудио прямо с сайта Yuotube. Вот, например, как можно извлечь звуковую дорожку в формате mp3:

./youtube-dl.py -t --extract-audio --audio-format mp3 http://www.youtube.com/watch?v=lE9gVbDMFC


Установка не требуется, питоновский скрипт нужно просто «Сохранить как...» на жесткий диск и сделать исполняемым. Из зависимостей — только ffmpeg.

СМС по свистку

Продолжаю серию топиков про подключение Beeline-модемов к компьютерам с Linux. В гентушной статье, на основе которой написаны предыдущие материалы, приводится код на Python, с помощью которого можно узнать состояние баланса:

#!/usr/bin/python
#coding: utf8
import time, io, tty

def writeToPort(s):
  p.write(s+'\r\n')
  time.sleep(0.1)

p = io.open('/dev/ttyUSB1', 'w+b', 0)
tty.setraw(p)
writeToPort('AT+CPBS="SM"')
writeToPort('AT+CPMS="SM","SM",""')
writeToPort('AT+ZSNT=0,0,2')
writeToPort('AT+CUSD=1,*102#,15')

print 'Waiting answer...'
for ln in p:
  if ln.startswith('+CUSD'):
    print ln[10:ln.rfind('"')].decode('hex').decode('utf-16-be')
    break
p.close()


Сохранил это в файл /usr/bin/beelinehowmuch, проверил — работает.



Думаю, если похимичить с AT-командами — можно получить весь набор удобств, которые прилагаются к модему с виндовым софтом.

CentOS: сборка свежего Python

Установка Python 2.7.1:

Устанавливаем необходимое для сборки:

yum install sqlite-devel openssl-devel make gcc


Скачиваем исходники Python:

wget http://www.python.org/ftp/python/2.7.1/Python-2.7.1.tgz
tar xvfz ./Python-2.7.1.tgz
cd ./Python-2.7.1


Конфигурация:

./configure --prefix=/opt/python2.7 --with-threads --enable-shared


Сборка и установка:

make && make install


Создаем символическую ссылку:

ln -s /opt/python2.7/bin/python /usr/bin/python2.7


Прописываем пути к библиотекам в /etc/ld.so.conf.d/opt-python2.7.conf:

/opt/python2.7/lib


Запускаем:

ldconfig


Проверяем:

python2.7


Python 2.7.1 (r271:86832, Apr 26 2011, 12:11:59)
[GCC 4.1.2 20080704 (Red Hat 4.1.2-50)] on linux2
Type «help», «copyright», «credits» or «license» for more information.
>>>

Установка дополнительных модулей, например setuptools:

wget http://pypi.python.org/packages/2.7/s/setuptools/setuptools-0.6c11-py2.7.egg


sh ./setuptools-0.6c11-py2.7.egg --prefix=/opt/python2.7/


Processing setuptools-0.6c11-py2.7.egg
Copying setuptools-0.6c11-py2.7.egg to /opt/python2.7.1/lib/python2.7/site-packages
Adding setuptools 0.6c11 to easy-install.pth file
Installing easy_install script to /opt/python2.7.1//bin
Installing easy_install-2.7 script to /opt/python2.7.1//bin

Installed /opt/python2.7.1/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg
Processing dependencies for setuptools==0.6c11
Finished processing dependencies for setuptools==0.6c11