<?xml version="1.0" encoding="utf-8" standalone="no"?><rss xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" version="2.0"><channel><title>Alexey Evseev</title><description></description><managingEditor>noemail@noemail.org (Alexey Evseev)</managingEditor><pubDate>Mon, 2 Sep 2024 07:55:33 GMT</pubDate><generator>Jekyll https://jekyllrb.com/</generator><link>https://st4lk.github.io/</link><language>en-us</language><item><title>SQLALchemy vs Django ORM</title><link>https://st4lk.github.io/blog/2023/12/09/sqlalchemy-vs-django-orm/</link><category>python</category><category>sqlalchemy</category><category>orm</category><category>django</category><author>noemail@noemail.org (Alexey Evseev)</author><pubDate>Sat, 9 Dec 2023 18:19:43 GMT</pubDate><guid isPermaLink="false">https://st4lk.github.io/blog/2023/12/09/sqlalchemy-vs-django-orm</guid><description>Если большую часть времени вы работаете с Django ORM и вам надо перейти на SQLALchemy - то вы встретите ряд концептуальных отличий. В этом посте опишу часть из них, на мой взгляд заметных больше всего. Все примеры для SQLAlchemy буду приводить в асинхронном коде, в контексте PostgreSQL. Версия Django - 4.2, SQLALchemy - 2.0. Полные примеры можно найти тут https://github.com/st4lk/sqlalchemy-vs-django-orm, в тексте для краткости код приведен не полностью.</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://st4lk.github.io/assets/images/posts/2023-12-09-sqlalchemy-vs-django-orm/sqla_vs_django_upd.png"/><media:content xmlns:media="http://search.yahoo.com/mrss/" medium="image" url="https://st4lk.github.io/assets/images/posts/2023-12-09-sqlalchemy-vs-django-orm/sqla_vs_django_upd.png"/></item><item><title>Sublime Text и Language Server Protocol</title><link>https://st4lk.github.io/blog/2019/02/19/sublime-text-and-language-server-protocol-lsp/</link><category>python</category><category>sublime</category><category>lsp</category><author>noemail@noemail.org (Alexey Evseev)</author><pubDate>Tue, 19 Feb 2019 18:19:43 GMT</pubDate><guid isPermaLink="false">https://st4lk.github.io/blog/2019/02/19/sublime-text-and-language-server-protocol-lsp</guid><description>Language Server Protocol (LSP) Language Server Protocol (LSP) - протокол для общения между IDE и языковым сервером. Сервер предоставляет такие функции, как автокомплит, переход к функции (goto) и прочее. Т.е. когда IDE нужно показать автокомплит на языке, скажем, python - происходит запрос к специальному серверу. В ответе возвращаются необходимые данные, которые IDE уже может отобразить. Радует то, что это инициатива крупной компании - Microsoft.</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://i.ibb.co/4K4zp06/sublime-256-lsp-light.png"/><media:content xmlns:media="http://search.yahoo.com/mrss/" medium="image" url="https://i.ibb.co/4K4zp06/sublime-256-lsp-light.png"/></item><item><title>Ловушка при подсчете связанных объектов в Django</title><link>https://st4lk.github.io/blog/2017/01/14/count-filtered-related-objects-django/</link><category>database</category><category>django</category><category>sql</category><author>noemail@noemail.org (Alexey Evseev)</author><pubDate>Sat, 14 Jan 2017 18:19:43 GMT</pubDate><guid isPermaLink="false">https://st4lk.github.io/blog/2017/01/14/count-filtered-related-objects-django</guid><description>Задача: для каждого объекта подсчитать количество связанных объектов, удовлетворяющих определенному условию.</description></item><item><title>Django: сигнал или метод модели?</title><link>https://st4lk.github.io/blog/2016/08/01/django-signal-or-model-method/</link><category>django</category><category>signal</category><author>noemail@noemail.org (Alexey Evseev)</author><pubDate>Mon, 1 Aug 2016 18:19:43 GMT</pubDate><guid isPermaLink="false">https://st4lk.github.io/blog/2016/08/01/django-signal-or-model-method</guid><description>Когда нужно написать какой-либо функционал, который должен быть выполнен при сохранении django модели, у меня всегда возникал вопрос - где его лучше реализовать. В сигнале или в методе save() модели? Давайте разберемся, что и в каких ситуациях более удобно.</description></item><item><title>Пробуем JSON в Django и PostgreSQL (и сравниваем с MongoDB)</title><link>https://st4lk.github.io/blog/2015/09/30/trying-json-combo-django-and-postgresql/</link><category>database</category><category>django</category><category>mongodb</category><category>postgresql</category><category>sql</category><author>noemail@noemail.org (Alexey Evseev)</author><pubDate>Wed, 30 Sep 2015 18:19:43 GMT</pubDate><guid isPermaLink="false">https://st4lk.github.io/blog/2015/09/30/trying-json-combo-django-and-postgresql</guid><description>В Django 1.9 будет добавлено поле JSONField, его можно использовать с базой данных PostgreSQL &amp;gt;= 9.4. Давайте попробуем с ним поработать и оценить, насколько оно удобно.</description></item><item><title>OAuth и django rest framework</title><link>https://st4lk.github.io/blog/2015/07/18/oauth-and-django-rest-framework/</link><category>api</category><category>django</category><category>oauth</category><author>noemail@noemail.org (Alexey Evseev)</author><pubDate>Sat, 18 Jul 2015 18:19:43 GMT</pubDate><guid isPermaLink="false">https://st4lk.github.io/blog/2015/07/18/oauth-and-django-rest-framework</guid><description>Star Тема избитая, но мне не удалось найти готового решения, которое полностью бы меня устроило. Поэтому пишу сам :). Итак, у нас есть “одностраничный” веб сайт, который общается с бекендом посредством REST API. Клиентская часть может быть написана с помощью ember, angularjs или чего-то подобного. Бекенд - django rest framework (DRF). И есть тривиальная задача - добавить вход через социальные сети (OAuth протокол).</description></item><item><title>Tornado and pgettext</title><link>https://st4lk.github.io/blog/2015/06/05/tornado-and-pgettext/</link><category>i18n</category><category>tornado</category><author>noemail@noemail.org (Alexey Evseev)</author><pubDate>Fri, 5 Jun 2015 18:19:43 GMT</pubDate><guid isPermaLink="false">https://st4lk.github.io/blog/2015/06/05/tornado-and-pgettext</guid><description>Недавно (26 мая 2015 года) вышел релиз tornado 4.2. В него вошли разные дополнения, пожалуй основные из них - модули tornado.locks и tornado.queues. Они перекочевали из пакета Toro, подробное описание процесса от Jesse Jiryu Davis в его блоге. Здесь же хочу рассказать о другой маленькой функции, которая была добавлена с моей помощью - pgettext.</description></item><item><title>OAuth step by step</title><link>https://st4lk.github.io/blog/2015/05/16/oauth-step-step/</link><category>api</category><category>oauth</category><category>security</category><author>noemail@noemail.org (Alexey Evseev)</author><pubDate>Sat, 16 May 2015 18:19:43 GMT</pubDate><guid isPermaLink="false">https://st4lk.github.io/blog/2015/05/16/oauth-step-step</guid><description>Gist OAuth протокол бывает двух версий: 1.0 и 2.0. Большинство сервисов сегодня используют версию 2.0, вероятно потому что ее проще реализовать. Так же версию 2.0 можно относительно безопасно использовать в standalone-приложениях (те, которые без сервера). Для понимания протоколов очень полезно взглянуть на их реализацию. Тут я приведу несколько скриптов, которые общаются с OAuth-провайдерами разных версий. Т.е. все скрипты реализуют функционал клиента (не сервера). Используются только стандартные python библиотеки. Вот почему глядя на них лучше понимаешь сам протокол OAuth - все перед глазами и все более-менее знакомое. Конечно, для реальной работы нужно использовать только готовые и проверенные временем пакеты. Эти скрипты только для понимания процесса. Разбираться с готовыми библиотеками порой бывает сложно, они разбиты на много модулей, могут использоваться разные сторонние пакеты, и в итоге общая картина ускользает из виду.</description></item><item><title>Python tips &amp;amp; tricks</title><link>https://st4lk.github.io/blog/2015/04/30/base-python-tips-tricks/</link><category>python</category><author>noemail@noemail.org (Alexey Evseev)</author><pubDate>Thu, 30 Apr 2015 18:19:43 GMT</pubDate><guid isPermaLink="false">https://st4lk.github.io/blog/2015/04/30/base-python-tips-tricks</guid><description>Недавно прочитал книгу Марка Лутца “Learning Python”, 5-ое издание. Привожу список самых интересных фишек (по моему мнению) оттуда, что-то вроде конспекта.</description></item><item><title>Слушаем wifi с помощью wireshark</title><link>https://st4lk.github.io/blog/2015/04/17/listen-wifi-with-wireshark/</link><category>fun</category><category>security</category><author>noemail@noemail.org (Alexey Evseev)</author><pubDate>Fri, 17 Apr 2015 18:19:43 GMT</pubDate><guid isPermaLink="false">https://st4lk.github.io/blog/2015/04/17/listen-wifi-with-wireshark</guid><description>Всегда знал, что можно посмотреть сетевые пакеты, которые передаются по wifi сети. Но на практике этого не делал (на работе анализировал сетевые пакеты, но то был не HTTP протокол). Решил восполнить этот пробел, ведь это интересно и полезно. Более стройно выстраивается понимание протоколов TCP-IP и HTTP. Видно, как летят наши пароли и сессии, после такого опыта поневоле начинаешь относиться к безопасности сайта с большим трепетом.</description></item></channel></rss>