python
Скрипт для проверки и автоматического восстановления MySQL БД
Опубликовано vladimir в Сб, 08/01/2009 - 11:13Особенно акутально для большого числа БД с MyISAM таблицами. Рекомендуется запускать периодически и после каждого аварийного перезабуска MySQL.
Требует: Python 2.x и MySQLdb (mysql-модуль для Python)
#!/usr/bin/env python ######################################### # Check all tables in all mysql databases # # Written by Vladimir Rusinov <vladimir@greenmice.info>, http://greenmice.info/ # # Reqirements: # Python 2.x (tested with 2.4) # MySQLdb ######################################### # Settings: host="localhost" username="root" password=""
Fortune #003
Опубликовано vladimir в Вс, 03/15/2009 - 13:56Одна из моих любимых цитат, с коротой я согласен наверное на 100%.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
/Tim Peters, "The Zen of Python"/
Перевод:
Если реализацию сложно объяснить, это плохая идея.
Если реализацию легко объяснить, это может быть хорошей идеей.
/Tim Peters, "The Zen of Python"/
Linkdump #0003
Опубликовано vladimir в Втр, 01/06/2009 - 20:22- RTPG: вебинтерфейс для rtorrent
- WWW SQL Designer - простенький визуальный дизайнер БД, работающий в браузере
- Серия статей "Частые ошибки программирования а Bash". Бегло просмотрев мои скриптики нашел некоторые из них.
- Видео: интересная обзорная презентация о Erlang и его применении в highload
CAFS
Опубликовано vladimir в Пт, 12/19/2008 - 11:35CAFS — это кеширующая read-only файловая система, которая может работать поверх локальной или сетевой ФС (sftp, samba, webdav, ...), а также может работать в offline (т.е. когда исходная фс недоступна).
Новости
12 февраля 2008
Доступен trac проекта.
20 декабря 2008
Версия 0.0.6: небольшие дополнения; фикс setup.py
Fortune #002
Опубликовано vladimir в Пт, 11/21/2008 - 23:45Special cases aren't special enough to break the rules. /Tim Peters, "The Zen of Python"/
Особые случаи не настолько особые, чтобы не соблюдать правила. /Тим Петерс, "The Zen of Python"/
Синхронизация потоков (мьютексы) в Python
Опубликовано vladimir в Пт, 09/05/2008 - 00:10Несмотря на GIL, Python не является полностью thread-safe. Поэтому в критических секциях (особенно в тех местах, где вызывается сишный код или сторонние бинарники) нужно использовать мьютексы (mutex), которые в Python представлены в виде объекта threading.Lock
Вот пример использования:
import threading class MyClass: def __init__(self): self.lock = threading.Lock() def critical_function(self): self.lock.acquire() # заполучить лок do_something_important() # этот код гарантированно не будет прерван каким либо другим потоком
nginx, gzip_static и gzip файлов директории
Опубликовано vladimir в Пнд, 08/25/2008 - 15:41nginx - отличный веб-сервер, который особенно удобно использовать в качестве фронтенда к большому апачу, кроме того, им очень удобно отдавать статику, и в нем много фишечек, которые могут сильно пригодиться при высокой нагрузке.
Вот одна из них:
"Модуль ngx_http_gzip_static_module позволяет отдавать вместо обычного файла предварительно сжатый файл с таким же именем и с суффиксом ".gz"."
Распространение модулей Python (distutils)
Опубликовано vladimir в Чт, 08/21/2008 - 20:05Не секрет, что у Python существует огромная стандартная библиотека с кучей модулей. Но кроме нее, существует просто огроменная коллекция модулей в pypi (Python Package Index).
Однако многие начинающие разработчики сталкиваются с проблемой распространения своих модулей. Можно конечно записать их все в архив и дать пользователям точные инструкции, как все это устанавливать. Однако это неудобно как для пользователей, так и для самих разработчиков. В python у этой проблемы есть простое и элегантное решение - создание стандартных пакетов при помощи модуля distutils.
