Наша цель, написать offline-first приложение — SPA которое загружается и сохраняет полную функциональность в отсутствии интернет-соединения. В первой части повествования мы научились пользоваться браузерной базой данных. Сегодня мы настроим синхронизацию с серверной бд и подключим авторизацию. В результате мы получим возможность редактировать наши данные на разных устройствах даже в оффлайне с последующей синхронизацией при появлении соединения.
User
Offline-first приложение с Hoodie & React. Часть первая: браузерная база данных
Современный веб позволяет решать часть задач которые раньше были прерогативой нативных мобильных приложений. Мы с вами создадим веб-приложение (сайт) которое будет загружаться и сохранит полную функциональность даже в отсутствии интернета, а при его появлении автоматически синхронизируется с сервером. На мобильном устройстве для такого приложения достаточно создать ярлык и в плане автономности мы получим аналог нативного приложения.
Мы напишем подобие todo-листа, с одним отличием: "выполненные" задачи будут не удаляться, а переноситься в конец списка и по мере решения остальных задач всплывать вверх. Такой список удобно использовать для повторяющихся вещей, таких как различные спортивные активности, развлечения, еда и т.п. Одна моя социально-реализованная знакомая использует его, чтобы равномерно поддерживать контакт с многочисленной популяцией своей френдзоны.
То, что получится в результате можно посмотреть тут. Попробуйте внести некоторые изменения, закрыть вкладку, отключить интернет и снова открыть сайт. Вы обнаружите, что он открывается и сохраняет полную функциональность. Если вы залогинитесь на разных устройствах и внесёте изменения в оффлайне, по восстановлении соединения изменения синхронизируются интуитивно ожидаемым образом.
Вы удивитесь насколько мало кода нам потребуется для реализации этого функционала.
Окружение для разработки на aiorest (asyncio) + angular.js
- авто-перезапуск сервера при изменении python-кода и jinja-шаблонов
- сборка, минификация и автоматическая пересборка при изменении клиентского js-кода
Современный торнадо, часть 2: блокирующие операции
Современный Торнадо: распределённый хостинг картинок в 30 строк кода
Поиск python пакетов
В списке сразу видны гитхаб-звёздочки / фолловеры автора, доступна сортировка.
Логика хуков ShareJS
odbm = объектная обёртка для key-value хранилищ
odbm
Оптимизация проекта => оптимизация хранилища => dbm => dict style => :-( => odmb => :-)
Говорящий контекстный переводчик сайтов
Перевод пока только англо-русский. Не найду озвучки для других языков. Может, подскажет кто?
Выбор смс-биллинга под рутраф
Удобная штукенция, однако графа «комиссия биллинга или сколько получает партнер» вообще ни о чём.
Решил глянуть тарифы и сравнить.
Рестарт демона mod_wsgi
@never_cache
def restart(request):
''' Перезапуск демона '''
if request.META['mod_wsgi.process_group'] != '':
import signal, os
os.kill(os.getpid(), signal.SIGINT)
ret = 'restarted'
else:
ret = 'not find porcess_group'
return HttpResponse(ret, mimetype='text/plain')
UP: touch yourfile.wsgi
Information
- Rating
- Does not participate
- Location
- Таиланд
- Registered
- Activity