Ага, вот и новое письме с конкретными цифрами:

Обратите внимание: с 1 января 2026 года базовая ставка НДС в России увеличится с 20% до 22% — в соответствии с новым налоговым законодательством.

По работе получаю "письма счастья" от Я.Облака
Явно подстилают соломку к повышению НДС:

в случае установления новых ставок НДС стороны соглашаются автоматически применять такие изменения с даты их вступления в силу — путём изменения тарифов (стоимости услуг) на размер изменения ставок НДС

Вот есть проект sqlalchemy. Люди стараются, пишут абстракции, что бы работать с SQL, как с объектами. Со стороны выглядит красиво.

Но начинаешь использовать банальные варианты: sqlite для локальных тестов, postgresql для реального сервера. Казалось бы: весь код написан на абстрактных объектах и мы просто поменяет URI базы данных и... нет, оказывается это так не работает:

  • работа с датой/временем - разные функции
  • хочешь ON CONFLICT при вставке - разные реализации в разных диалектах
  • хочешь нормальное JSON поле - не забудь сделать код, который использует тип JSONB для postgresql

И так далее. Думаешь: ОК, наверное я просто что-то не понимаю в современной библиотеке...
Ага, вот как раз под руку попалась реализация хранилища объектов в БД на основе sqlalchemy в библиотеке adk от гугла. И весь тот же самый закат солнца вручную:

$ grep dialect google/adk/sessions/database_session_service.py | grep '"' if dialect.name == "postgresql": if dialect.name == "mysql": if dialect.name == "postgresql": if dialect.name == "postgresql": if dialect.name == "mysql": if self._dialect_name == "sqlite":

OpenAI Agents SDK: Hello world example

from agents import Agent, Runner agent = Agent(name="Assistant", instructions="You are a helpful assistant") result = Runner.run_sync(agent, "Write a haiku about recursion in programming.") print(result.final_output)

Code within the code,
Functions calling themselves,
Infinite loop's dance.

Спасибо xlsx2csv за то, что я снова избежал необходимости ставить офисный пакет на машину.

Simple script for converting xlsx files to csv files commandline.

"На интеграцию с другой стороны выделили трех людей: один джун, второй руководитель, а третий пока в отпуске."

Звучит, как начало анекдота, но это рабочая реальность.

For today’s #MokuMokuKai continued working on my experimental #git client. Experimented getting a quick file picker working, and stubs to show commit status. Good stopping point for tonight, since I may need to dig into the lower level library next time. #worklog
Spent some more time with #traefik today and got it working in my local dev environment. Future task will be to test with with my hosted stuff. Main reason for me to change off of nginx is to automate some of the toil of configuring #letsencrypt but will have to see if it actually improves things or not 🤔
#caddyserver is another one for me to try out to see if that would work too. #worklog

Today's #worklog is updating some Grafana -> Django API bits. I was using a json plugin [1] but a version update a while back changed quite a bit of the API. Today was updating the Django side of things. Part of me would like to have a Grafana data source plugin under my control, but some of the Grafana ecosystem looks scary to build for 😅

1: https://github.com/simPod/GrafanaJsonDatasource/releases/tag/v0.6.0

Release Builder Mode · simPod/GrafanaJsonDatasource

New Builder mode mainly implemented by @MicroOps-cn, huge thanks! 🎉 . See docs for details. ⚠️ Breaking change: Fully implement /metrics endpoint. Also /metric-payload-options endpoint is recommend...

GitHub
Continued working on my small prototype. Still don't know why #SwiftUI is drawing my `Select Vault` menu twice, but I did get a quick #markdown widget in for testing. #worklog #projects