Обновить
47
0
Всеволод Новиков@nnseva

Пользователь

Отправить сообщение

Нулевое время простоя при миграции в Django + PostgreSQL

Уровень сложностиСредний
Время на прочтение4 мин
Охват и читатели5.2K

СУБД PostgreSQL сейчас вероятно, является самым популярным бакендом для Django. К сожалению, у этой СУБД есть особенность - для построения индексов, она блокирует таблицу, и на время выпололнения индексирования, запись в эту таблицу оказывается недоступной, что приводит к частичной или полной неработоспособности приложения на время выполнения миграции, включающей в себя построение индекса.

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

Как решать эту проблему - описано в данной статье.

Читать далее

Разработка библиотеки ленивых строк в паре с ИИ

Уровень сложностиСредний
Время на прочтение12 мин
Охват и читатели9K

Еще одна библиотека строк для Python? Легко - если у вас есть ИИ-помощник.

Рассказываю, что хотел сделать (действительно, ленивые строки), что получилось, как использовал ИИ, с какими проблемами столкнулся, какие выводы для себя сделал.

Читать далее

Как устроен пакет Django-Leaflet-Admin-List

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели8.2K

Попросили рассказать про этот пакет, чем я и займусь.

Пакет Django-Leaflet-Admin-List позволяет добавить карту со всеми географическими объектами на странице в отображение списка в админке Django.

Читать далее

Мой набор для Django

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели5.5K

Обнаружил у себя довольно внушительный набор инструментов, разработанных для Django в разное время и для разных целей. Все инструменты под лицензией LGPL, и почти все так или иначе используются в активных проектах. Возможно, какие-то из них окажутся полезны вам, поэтому хочу рассказать о них в этой - кратко, - и возможно, последующих подробных статьях по каким-то из инструментов отдельно.

Читать далее

Надежное программирование в Solidity

Уровень сложностиСредний
Время на прочтение2 мин
Охват и читатели369

Привет всем из мира авось-программирования Solidity.

Как я уже писал раньше, при неограниченном использовании маппингов и динамических массивов в Solidity, есть весьма малая, но ненулевая вероятность того, что адреса данных, сохраненных в массивах и маппингах, пересекутся. При этом очевидно, логика контракта будет непредсказуемо нарушена.

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

Читать далее

Пакет для импорта данных в Django

Время на прочтение3 мин
Охват и читатели6.1K

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

Читать далее

Использовать хранилище Django для хранения результатов Celery в Google Cloud

Уровень сложностиСредний
Время на прочтение3 мин
Охват и читатели2.6K

Тот, кто подключает Celery к Django, использует как правило, пакет django-celery-results для использования таблицы специальной модели Django в качестве хранилища результатов выполнения задач Celery.

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

Читать далее

Деятельное раскаяние под LGPL

Время на прочтение2 мин
Охват и читатели2.9K

Мне очень не по себе при мысли о том, что до сих пор находятся на первый взгляд вполне адекватные и вменяемые люди моей и смежных профессий - программисты, админы и пр., - сознательно продолжающие работать на реализацию безумных идей все заблокировать, трафик проконтролировать и сломать интернет в попытках его "суверенизации".

... мне (и я надеюсь, нам - профессиональному сообществу) не нужны покаянные речи на публику, этим пусть занимаются те, кому речи являются профессией - политики или журналисты...

Подробнее и опрос

Требования по контролю за электронным голосованием

Время на прочтение5 мин
Охват и читатели5.7K

Конституция, и далее везде


Приветствую всех, недавно я предложил вам обсудить систему голосования, разработанную Департаментом информационных технологий (ДИТ) г.Москвы.


Обсуждение вышло весьма продуктивным, и по его результатам можно выработать некоторые рекомендации по процедуре голосования. Все, кому это интересно, приглашаются под кат.

Читать дальше →

Обсуждение системы голосования, разработанной ДИТ Москвы

Время на прочтение3 мин
Охват и читатели18K

Открытые исходники


Недавно в открытый доступ были выложены исходники системы голосования, которая по всей видимости, и будет применяться на электронном голосовании по Конституции в Москве и Нижнем Новгороде.


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

Читать дальше →

Управлять правами на уровне объектов

Время на прочтение15 мин
Охват и читатели16K

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


Допустим, ваш проект касается хранения информации о проектах. Разные пользователи входят в разные проекты и не должны видеть информацию о другом проекте. Один и тот же пользователь может входить в несколько проектов и иметь разный статус в разных проектах — где-то он может только просматривать информацию, а в других — править данные. В каком-то проекте пользователь зарегистрирован как персонал проекта, а в другом — только как потребитель его услуг. Уровень доступа соответственно, должен быть совершенно разным.


Этими вопросами занимаются несколько пакетов, мы рассмотрим один из них — Django-Access. Все, кому это интересно, приглашаются под кат.

Читать дальше →

Конструирование сайта, защищенного от блокировок

Время на прочтение4 мин
Охват и читатели22K

Привет всем! В связи с ростом блокировок, в том числе необоснованных, сайтов со стороны государства, вашему вниманию предлагается описание идеи, а также прототип настроек сайта, защищенного от блокировок по конкретному пути и доменному имени. Идеи по защите от блокировок:


  • со звездочкой
  • по адресу IP

будут изложены в других постах. Кому интересна тема, заходите под кат.

Читать дальше →

Гибкая система управления доступом на уровне объектов-записей

Время на прочтение10 мин
Охват и читатели17K

Привет всем!


В проектах, основанных на Джанго, часто хочется использовать гибкое управление доступом на уровне записей (объектов), когда разные пользователи имеют, или наоборот, не имеют доступ к отдельным объектам в рамках одной и той же модели.


Я хочу рассказать, какая именно политика доступа к данным требовалась в нашем проекте, почему не нашлось подходящей готовой системы и как появилась новая система управления доступом на уровне записей.


Для наиболее дотошных, далее приведены детали устройства системы, ее внутренней логики и порядка обращения с ней.

Читать дальше →

Борьба с производительностью Tastypie API

Время на прочтение7 мин
Охват и читатели8.3K
Как я перетащил пакет Tastypie на Pony ORM и что из этого получилось.

Данная статья продолжает историю моей борьбы за производительность приложений на python и django.

Читать дальше →

Внедрение высокопроизводительного Pony ORM в проект Django

Время на прочтение3 мин
Охват и читатели13K
Предыдущий пост посвященный производительности, описывал Pony ORM, показавший фантастические результаты по сравнению с Django ORM и SQLAlchemy.

Впечатленный столь неординарными результатами и озабоченный производительностью собственного проекта, я решил внедрить Pony ORM в свой проект. Что из этого получилось, см подкатом.

Читать дальше →

Зима, смартфон и перчатки, или готовь палец летом…

Время на прочтение2 мин
Охват и читатели48K
Не за горами зимушка-зима, мороз и солнце, день чудесный… Солнце это хорошо, а вот мороз… Привыкнув свободно пользоваться смартфоном летом, хочется так же свободно пользоваться им и зимой. А вот с этим возникают определенные проблемы.

У кого как, а у меня зимой руки мерзнут. Поэтому я надеваю на них перчатки. При этом, почитать ленту твиттера, или даже просто ответить на звонок становится весьма затруднительно: снять перчатки, достать телефон, махнуть замерзающим пальцем по слайдеру разблокировки… и срочно надевать перчатки обратно, потому что руки-то — мерзнут.

Немного погуглив, поэкспериментировав и вдохновившись вот этим постом на хабре, я решил смастерить чудо-перчатки, которыми можно манипулировать на морозе любым смартфоном с емкостным экраном (к которым относятся экраны и андроидов, и айфонов, и абсолютного большинства других современных смартфонов). Процесс, результат и видео — подкатом.
Читать дальше →

Снова о производительности ORM, или новый перспективный проект — Pony ORM

Время на прочтение6 мин
Охват и читатели23K
В своей первой статье на Хабрахабре я писал об одной из основных проблем существующих ORM (Object-Relational-Mapping, объектно-реляционных отображений) — их производительности. Рассматривая и тестируя две из наиболее популярных и известных реализаций ORM на python, Django и SQLAlchemy, я пришел к выводу: Использование мощных универсальных ORM приводит к очень заметным потерям производительности. В случае использования быстрых движков СУБД, таких как MySQL — производительность доступа к данным снижается более чем в 3-5 раз.

Недавно со мной связался один из разработчиков нового движка ORM под названием pony и попросил поделиться своими соображениями по поводу этого движка. Я подумал, что эти соображения могут быть интересны и сообществу Хабрахабр.
Читать дальше →

Реляционное отображение коллекций — альтернатива объектно-реляционному отображению?

Время на прочтение6 мин
Охват и читатели10K
Данный текст рассматривает вкратце особенности объектно-реляционного отображения (Object-Relational Mapping — ORM) и вводит новое понятие реляционного отображения коллекций (Collection-Relational Mapping — CoRM), предлагая обсудить перспективы и возможности технической реализации новой концепции долговременного хранения состояния объектов
Читать дальше →

Интернационализация локального проекта django

Время на прочтение4 мин
Охват и читатели9.9K
Хорошо, когда при разработке проекта под django, разработчики проекта изначально озаботились его интернационализацией.

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

Ситуация выглядит совсем иначе, если проект изначально не предназначался для интернационализации. Огромный массив файлов, в которых разбросаны локальные строки в совершеннейшем беспорядке, при этом многие из них дублируются в разных файлах. Собирать все эти строчки в один файл, сортировать, заменять их содержимое в исходных файлах на идентификаторы сообщений — огромная и неблагодарная работа.

Читать дальше →

Параметризованные запросы и производительность django orm

Время на прочтение7 мин
Охват и читатели10K
Столкнувшись с существенными потерями производительности на использовании django orm, я стал искать выход из положения, рассматривая разные способы использования orm. Что у меня получилось — смотрите подкатом.

Читать дальше →
1

Информация

В рейтинге
Не участвует
Откуда
Нижний Новгород, Нижегородская обл., Россия
Дата рождения
Зарегистрирован
Активность