DevBrain
2.97K subscribers
28 photos
2 videos
9 files
724 links
Download Telegram
Я сейчас активно играю с вайб кодингом, реализую все свои старые хотелки по части веб-приложений, виджетов и других штук. Намедни за денёк сделал web app для трекинга привычек: Zen Habits

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

Порядок действий:

1. Авторизуйтесь через Telegram внутри веб-сайта

2. Укажите свой часовой пояс (сервис попробует его автоматически подставить)

3. Заведите первую привычку, укажите частоту и время для уведомления.

Пользуйтесь https://zenhabits.dev
👍8🔥3
Наконец-то...

Вышла мажорная версия старичка jQuery 4.0.0: https://blog.jquery.com/2026/01/17/jquery-4-0-0/
👍8👎2🔥2
Forwarded from DataEng
fastjsondiff - High-performance JSON comparison with a Zig-powered core

Написал небольшую библиотеку для сравнения двух JSON-текстов/файлов. В Python есть популярная либа jsondiff, но её основная проблема это сильные тормоза, если на вход подать более менее крупный JSON-текст. Давно вынашивал идею реализации чего-то такого, но на Zig/Rust, т.к. чистая реализация на Python будет всё равно медленнее. По итогу получилось реализовать на Zig основную либу и Python-интерфейс к ней.

pip install fastjsondiff-zig


Github: https://github.com/adilkhash/fastjsondiff
PyPI: https://pypi.org/project/fastjsondiff-zig/

Буду признателен за на репе в гитхабе, это поможет её распространить дальше.
👍5🔥4
gunicorn 24.0

Внезапно вышла новая версия популярного WSGI сервера для Python. Из новшеств, туда завезли поддержку ASGI, не прошло и ста лет.

В стадии беты, но есть сомнения, что будет быстрее uvicorn, например. В любом случае классно. К слову, я до сих пор WSGI приложения запускаю через gunicorn. Привычка.

Ссылка на релиз https://github.com/benoitc/gunicorn
🔥2👍1👎1
Курс по разработке под iOS на Swift от Стэнфордского университета: Stanford CS193p: iOS Development with SwiftUI
django-modern-rest@0.1.0 – первый публичный релиз!

Исходники: https://github.com/wemake-services/django-modern-rest
Подробнейшая документация: https://django-modern-rest.readthedocs.io
Пример настоящего приложения: https://github.com/wemake-services/wemake-django-template

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

Во-первых, у нас рекорд: еще нет ни одного релиза, а уже 560+ на Гитхабе (сходите поставьте, кто еще не).
Вижу, что люди ждут, вижу интерес. Спасибо!


import uuid
import msgspec
from dmr import Body, Controller
from dmr.plugins.msgspec import MsgspecSerializer

class UserCreateModel(msgspec.Struct):
email: str

class UserModel(UserCreateModel):
uid: uuid.UUID

class UserController(
Controller[MsgspecSerializer],
Body[UserCreateModel],
):
def post(self) -> UserModel:
return UserModel(uid=uuid.uuid4(), email=self.parsed_body.email)


Фичи

– Главная фича, которая вообще подтолкнула меня к такому проекту: инфраструктура Джанги. Тут есть буквально все пакеты на все случаи жизни. Но не было нормального REST фреймворка. В комментах я регулярно наблюдал, как люди ненавидят Джангу, но почти всегда говорят про DRF. Да, он был ужасен – но теперь он на свалке истории!
– Все существующие плагины к родной Джанге должны работать
– Официальная поддержка Джанго в одном файле, да, Джанга может быть настолько простой
– Работаем с любыми моделями: pydantic, msgspec, TypedDict, dataclass, тд. Сериализация и валидация не прибиты гвоздями. А значит можно выбирать сериализатор под контроллер. Где-то msgspec + TypedDict для скорости. Где-то pydantic для более широких возможностей валидации. Можно писать свои
Скорость. Мы довольно быстрые. Самый быстрый Python фреймворк для REST в Django. По скорости можно сравнивать с FastAPI, мы всего лишь на 30% медленнее. Но у нас и Джанга вообще-то. Скорость будет улучшаться, есть разные интересные идеи
– Типизация: типизировано всё! Но самое важное, типизацию не пихают вам в лицо. Нет огромных и сложных типов. Все просто, надежно и удобно. Поддерживаем mypy, pyright, pyrefly в самых строгих вариантах
– Поддержка async везде. От вьюх и моделей до SSE. Никаких sync_to_async внутри
– SSE! Без дополнительных костылей: просто работает (с валидацией сообщений и возможностью строить бизнесовые ADT поверх типов сообщений и крутейшей схемой)
Семантика. Одна из ключевых фичей: мы очень сильно упоролись по генерации схемы. Добавил auth= в контроллер? В списке ответов появился 401 статус код автоматически. Возвращаешь ответ, заголовок, куку, которой нет в спеке? Во время дебага – случится ошибка валидации. На проде валидацию нужно отключать для скорости. Так мы гарантируем точность ответов и схемы. Не нравится схема? Все легко переопределить или вообще отключить
– Swagger, Scalar, Redoc из коробки, легко настраивать
– Работаем не только с json, поддерживаем content negotiation, можно писать свои парсеры и рендереры
– JWT и DjangoSessionAuth из коробки, есть возможность отзыва токенов и сессий
– Возможность писать заготовки контроллеров и полностью переиспользовать код. Писать плагины под dmr будет просто и удобно
– Загрузка и отдача файлов (но на питоне такое очень осторожно надо делать, лучше на Rust)
– Нет привязки к логике или DI (берите любой, например dishka). Мы просто парсим данные и возвращаем их. То есть: код не превратится в кашу из логики и фреймворка уже через 10 бизнес фичей
– Удобная обработка ошибок на многих уровнях
– Полная возможность для кастомизации. Можно даже поменять формат внутренних ошибок в рамках контроллера
– Удобные тесты: polyfactory, pytest, schemathesis (проходим все правила из коробки)
– Скилы для LLM для написания кода по OpenAPI спеке, llms-full.txt, Context7 для контекста
– Но никакого нейрослопа внутри!
🔥6👍2