Pull to refresh
7
0
Панфилов Максим Александрович @viatoriche

Backend developer

Send message

Синхронный код в асинхронном Twisted, или сказ о том, как скрестить ежа с ужом

Reading time3 min
Views10K
Всё хорошо

Twisted — асинхронный (событийно-ориентированный) фреймворк, написанный на Python. Мощное средство для быстрой разработки сетевых (и не только) сервисов. Он разработан с использованием паттерна проектирования Reactor. Сервисы созданные с использованием Twisted быстры и надежны, фреймворк позволяет не писать макаронный код, насыщенный непонятными коллбэками, имеет внутри себя красивые хелперы (Deferred, Transport, Protocol etc). Другими словами, делает нашу жизнь бекенд разработчиков лучше.

Но есть и проблемы

Основная проблема в том, что многочисленные, надежные, оттестированные, удобные библиотеки, использующие в своей основе синхронные модули Python (socket, os, ssl, time, select, thread, subprocess, sys, signal etc), просто возьмут и заблокируют нам основной процесс, цикл реактора и наступит беда. Такими библиотеками, к примеру, являются psycopg2, request, mysql и другие. В частности, psycopg2 используется в Django ORM как один из бекендов баз данных.

Что же делать?

Есть три пути. Сложный, приемлемый и хороший. Сложный — реализовать аналог библиотеки на Twisted. Приемлемый — использовать deferToThread и запускать синхронный код в отдельных потоках (используя пул потоков реализованный в Twisted). О хорошем пути (по моему мнению) и пойдет речь в заметке.
Скрестить ежа с ужом
Читать дальше →
Total votes 8: ↑6 and ↓2+4
Comments12

LG GT540: Увеличение размера раздела /data за счет /system

Reading time2 min
Views26K

Вступление


Пользователи андроид-смартфона LG GT540 знают, что официальная прошивка 2.1 перегружена предустановленным софтом, который в массе своей не нужен и бесполезен. Изначально мы имеем два раздела: /system (245 МБайт) и /data (138,5 МБайт). Весь предустановленный софт находится в /system.

Задачи и цели


Задача: удалить весь ненужный хлам из system и изменить размер этого раздела в пользу data.
Профит: получаем намного больше пространства на внутренней памяти, для инсталляции большего числа приложений, чем если бы мы могли это сделать ранее.

Сейчас у меня такая картина: /system 180Мбайт и /data 203.5Мбайт (и это не предел совершенства)


Читать дальше →
Total votes 39: ↑31 and ↓8+23
Comments34

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity