Uv overtakes pip in CI
Wagtail CMS обновил свой веб-сайт, добавив новую страницу «О нас», где описаны основные преимущества и возможности CMS. Вместо традиционных пунктов меню теперь используются интерактивные карточки с иконками, что улучшает пользовательский опыт. На сайте также представлена информация о команде Wagtail, его функциях, доступности и устойчивости, что делает его более прозрачным и доступным для новых пользователей. Обновление подчеркивает важность открытости и удобства, что может привлечь больше разработчиков и контент-менеджеров.
Комментарии (130)
- uv стал фактическим стандартом для управления зависимостями и окружениями, потому что он быстрый и простой в использовании, но это вызвало споры о том, действительно ли он лучше, чем pip и другие инструменты, особенно в контейнерах и CI/CD.
- Некоторые разработчики утверждают, что uv не подходит для контейнеров, потому что он не может использовать системный Python, и это вызывает споры о том, действительно ли это проблема.
- Пользователи, которые привыкли к pip и другим инструментам, иногда утверждают, что uv не предоставляет никаких преимуществ, и что это просто "Rust фанатство", но другие считают, что скорость и простота использования делают его лучшим выбором.
- Некоторые разработчики считают, что uv не подходит для использования в контейнерах, потому что он не может использовать системный Python, и это вызывает споры о том, действительно ли это проблема.
- Некоторые разработчики считают, что uv не подходит для использования в контейнерах, потому что он не может использовать системный Python, и это вызывает споры о том, действительно ли это проблема.
Removing yellow stains from fabric with blue light
Светодиодный синий свет отбеливает ткани без химии
- Синий LED (450 нм, высокая интенсивность) за 10 мин разрушает желтые пятна пота, сока апельсина/помидора на хлопке, шёлке и полиэстере.
- Кислород воздуха выступает окислителем: пигменты (β-каротин, ликопин, сквален) превращаются в бесцветные соединения.
- Метод мягче перекиси и УФ: не повреждает деликатные ткани и не образует новых жёлтых продуктов.
Комментарии (68)
- Синий свет (445 нм, 1,25 Вт/см²) эффективнее перекиси и УФ в удалении жёлтых пятен на ткани.
- УФ не помогает: он даже образует новые жёлтые соединения.
- Старинный «солнечный» метод теперь объяснён: в солнечном спектре много синего, а не только УФ.
- Для ретро-сообщества вывод меняет практику: вместо UV-ретробрайта использовать синие LED-матрицы.
- Понадобится мощная синяя подсветка (в десятки раз ярче солнца), бытовых LED-лент недостаточно.
Static sites with Python, uv, Caddy, and Docker
Стек для Python-статики: uv + Caddy + Docker
Я почти полностью перешёл на uv — он быстрый, удобен и сам ставит нужный Python. Статические сайты собираю Python-скриптами, а раздаю через Caddy в многоступенчевом Docker-контейнере.
Пример на sus
Dockerfile (сжато):
FROM ghcr.io/astral-sh/uv:debian AS build
WORKDIR /src
COPY . .
RUN uv python install 3.13
RUN uv run --no-dev sus
FROM caddy:alpine
COPY Caddyfile /etc/caddy/Caddyfile
COPY --from=build /src/output /srv/
- Берём образ с uv, копируем код.
- uv ставит Python 3.13 и зависимости, запускает
sus, который кладёт сайт в/output. - Вторая стадия — лёгкий Caddy. Копируем конфиг и готовые статические файлы в
/srv.
Caddyfile минимален:
:80
root * /srv
file_server
Запуск:
docker build -t sus .
docker run -p 80:80 sus
Итог: быстрая сборка, маленький образ, автоматический HTTPS при нужном домене.
Комментарии (75)
- Почти все комментаторы считают выбранный стек (Docker, uv, Caddy, Coolify) избыточным для статического личного сайта.
- Критика сводится к тому, что достаточно «HTML → Nginx/Apache» или даже «HTML → FTP».
- Автор отвечает: хотел остаться в экосистеме Coolify ради единого CI/CD и «zero-SSH» деплоя.
- Некоторые предлагают минимальные Dockerfile (nginx:alpine + COPY) или вообще отказаться от контейнеров.
- Обсуждение выродилось в дискуссию о «культуре овер-инжиниринга» и самоучках, использующих сложные инструменты без понимания базовых.
Code formatting comes to uv experimentally 🔥 Горячее 💬 Длинная дискуссия
uv format — экспериментальная команда в uv для форматирования кода. Под капотом вызывает Ruff, но не требует отдельной установки.
Как начать
# форматировать текущий проект
uv format
# проверить, без изменений
uv format --check
# только нужные файлы
uv format src/ tests/
Передача аргументов Ruff
Всё, что идёт после --, уходит напрямую в Ruff:
# исключить файлы
uv format -- --exclude="*_pb2.py"
# задать длину строки
uv format -- --line-length 100
Пока функция флажком --preview, но уже позволяет обойтись без отдельного бинарника ruff.
Комментарии (242)
- Пользователи спорят: стоит ли встраивать форматирование (
ruff format) вuvили это «feature-creep». - Одни рады единой команде
uv format, упрощающей жизнь новичкам и командам; другие требуют оставить инструменты раздельными, как в UNIX-way. - Создатели подчеркивают:
ruffиuvне сливаются;uv formatлишь удобный алиас, аналогичныйcargo fmt.
Representing Python notebooks as dataflow graphs
marimo — новый open-source Python-ноутбук, в котором программа представлена графом потока данных. Это снимает главные боли Jupyter: скрытое состояние, невоспроизводимость, невозможность повторного использования и сложную поддержку.
Почему старый формат не подходит
- Воспроизводимость. Исследования 2019–2020 гг. показали: только 4–24 % ноутбуков на GitHub можно перезапустить без ошибок и получить те же результаты. Причина — скрытое состояние: удаление или переупорядочивание ячеек ломает выводы.
- Интерактивность. В Jupyter интерактивен процесс, но не сами данные: выделение точек на графике не возвращает датафрейм.
- Поддержка и переиспользование. Файл
.ipynb— это JSON-блоб, не валидный Python-код; сложно версионировать в Git и переиспользовать как модуль или пайплайн.
Как marimo решает задачу
- Каждый ноутбук — корректный Python-скрипт и модуль.
- Граф зависимостей ячеек строится статически; изменение одной ячейки автоматически перезапускает только зависимые.
- Реактивность: обновление переменной мгновенно отражается во всех графиках и виджетах.
- Один файл можно экспортировать как приложение или запускать без ядра Jupyter.
Комментарии (27)
- Пользователи хвалят marimo за реактивное исполнение, «песочницу» uv и лёгкий обмен с коллегами.
- Сторонники Jupyter считают, что «restart kernel & run all» решает проблему воспроизводимости, но критики отвечают: это требует дисциплины и не работает при тяжёлых вычислениях.
- Некоторые видят в ноутбуках лишь инструмент разведки и предлагают после исследования переносить код в обычные .py-файлы.
- Участники сходятся, что метаданные зависимостей и чистые DAG-подобные модели вычислений могли бы улучшить ситуацию.