Forwarded from Data Science. SQL hub
SQL-совет: сравнивайте `NULL` через `IS NOT DISTINCT FROM`
Обычное сравнение ломается на
Поэтому условие:
не считает два
В PostgreSQL используйте:
Оператор работает как безопасный аналог
Полезно при сравнении версий строк, поиске изменений и синхронизации таблиц:
Запрос вернёт строки, где значение действительно изменилось, включая переходы
Обычное сравнение ломается на
NULL:
SELECT NULL = NULL;
-- NULL
Поэтому условие:
WHERE old_value = new_value
не считает два
NULL равными.В PostgreSQL используйте:
WHERE old_value IS NOT DISTINCT FROM new_value
Оператор работает как безопасный аналог
=:
1 IS NOT DISTINCT FROM 1 -- true
NULL IS NOT DISTINCT FROM NULL -- true
1 IS NOT DISTINCT FROM NULL -- false
Полезно при сравнении версий строк, поиске изменений и синхронизации таблиц:
SELECT *
FROM old_data o
JOIN new_data n USING (id)
WHERE o.email IS DISTINCT FROM n.email;
Запрос вернёт строки, где значение действительно изменилось, включая переходы
NULL → значение и значение → NULL.👍10
Бесплатный учебник по геометрии на целый университетский курс 📐
Euclidean Plane and its Relatives Антона Петрунина, профессора Penn State, можно легально скачать бесплатно. Книга рассчитана примерно на один семестр и строит геометрию строго через определения, аксиомы и доказательства.
Внутри:
евклидова геометрия: треугольники, подобие, параллельность;
инверсивная геометрия;
гиперболическая и нейтральная геометрия;
аффинная, проективная и сферическая геометрии;
комплексные координаты, построения и площади.
Автор специально сделал книгу минималистичной и достаточно строгой, предполагая, что читатель уже знаком с матанализом, вещественными числами и непрерывностью. Учебник распространяется по лицензии CC BY-SA.
Скачать книгу бесплатно: https://arxiv.org/pdf/1302.1630v19
Euclidean Plane and its Relatives Антона Петрунина, профессора Penn State, можно легально скачать бесплатно. Книга рассчитана примерно на один семестр и строит геометрию строго через определения, аксиомы и доказательства.
Внутри:
евклидова геометрия: треугольники, подобие, параллельность;
инверсивная геометрия;
гиперболическая и нейтральная геометрия;
аффинная, проективная и сферическая геометрии;
комплексные координаты, построения и площади.
Автор специально сделал книгу минималистичной и достаточно строгой, предполагая, что читатель уже знаком с матанализом, вещественными числами и непрерывностью. Учебник распространяется по лицензии CC BY-SA.
Скачать книгу бесплатно: https://arxiv.org/pdf/1302.1630v19
👍6❤2🥰2
Полный инженерный курс по AI-агентам на русском: от tool calling до production
Курс инженерный, а не обзорный. Здесь почти нет рассуждений о том, «изменит ли ИИ мир», зато есть: минимальные работающие реализации каждого механизма, лабораторные с критериями приёмки, шаблоны для копирования, чек-листы перед релизом, каталог антипаттернов и набор бенчмарков, по которым можно честно сравнить две версии своего агента.
Качество агента почти никогда не упирается в модель. Оно упирается в инженерию вокруг модели: как описаны инструменты, что попадает в контекст, где стоят проверки, что происходит при третьей подряд ошибке и сколько это стоит за тысячу запусков. Модель - двигатель. Курс -про всё остальное в автомобиле.
https://github.com/justxor/Aiagentsfullcourse
Курс инженерный, а не обзорный. Здесь почти нет рассуждений о том, «изменит ли ИИ мир», зато есть: минимальные работающие реализации каждого механизма, лабораторные с критериями приёмки, шаблоны для копирования, чек-листы перед релизом, каталог антипаттернов и набор бенчмарков, по которым можно честно сравнить две версии своего агента.
Качество агента почти никогда не упирается в модель. Оно упирается в инженерию вокруг модели: как описаны инструменты, что попадает в контекст, где стоят проверки, что происходит при третьей подряд ошибке и сколько это стоит за тысячу запусков. Модель - двигатель. Курс -про всё остальное в автомобиле.
https://github.com/justxor/Aiagentsfullcourse
👍5❤2🔥2
Media is too big
VIEW IN TELEGRAM
🐳 Почему localhost не работает в Docker
Приложение подключалось к PostgreSQL на компьютере. Перенесли его в контейнер, оставили
Одна из возможных причин: теперь этот адрес ведёт внутрь контейнера с приложением. Если PostgreSQL работает отдельно, приложение ищет базу не там.
Наруто и его клон сидят в разных комнатах. Для каждого «здесь» означает свою комнату. В обычной изолированной сети Docker похожая история: у каждого контейнера свой localhost.
Если база в соседнем контейнере
В общей сети Docker Compose сервисы доступны по именам. Если сервис PostgreSQL называется
Названия переменных зависят от приложения. Здесь важны адрес
Даже если у базы настроено:
из соседнего контейнера обращаемся к `db:5432`, а с компьютера - к `localhost:15432`.
Если база работает на компьютере
В Docker Desktop для доступа из контейнера к хосту предусмотрено имя:
В Docker Engine на Linux может понадобиться добавить в настройки сервиса приложения:
При этом PostgreSQL должен слушать доступный из контейнера адрес и разрешать такие подключения. Одной замены имени хоста недостаточно, если доступ закрывают настройки базы или файрвол.
Что проверить при Connection refused:
• Где запущена база: в этом контейнере, соседнем или на хосте?
• Правильно ли указаны адрес и порт?
• Есть ли у контейнеров общая сеть?
• Запущена ли база и готова ли принимать подключения?
Не каждая ошибка подключения связана с localhost, но после переноса приложения в Docker его стоит проверить одним из первых.
Приложение подключалось к PostgreSQL на компьютере. Перенесли его в контейнер, оставили
localhost:5432 - получили Connection refused.Одна из возможных причин: теперь этот адрес ведёт внутрь контейнера с приложением. Если PostgreSQL работает отдельно, приложение ищет базу не там.
Наруто и его клон сидят в разных комнатах. Для каждого «здесь» означает свою комнату. В обычной изолированной сети Docker похожая история: у каждого контейнера свой localhost.
Если база в соседнем контейнере
В общей сети Docker Compose сервисы доступны по именам. Если сервис PostgreSQL называется
db, настройки приложения могут выглядеть так:
DB_HOST=db
DB_PORT=5432
Названия переменных зависят от приложения. Здесь важны адрес
db и порт, который слушает PostgreSQL внутри контейнера.Даже если у базы настроено:
ports:
- "15432:5432"
из соседнего контейнера обращаемся к `db:5432`, а с компьютера - к `localhost:15432`.
Если база работает на компьютере
В Docker Desktop для доступа из контейнера к хосту предусмотрено имя:
host.docker.internal
В Docker Engine на Linux может понадобиться добавить в настройки сервиса приложения:
extra_hosts:
- "host.docker.internal:host-gateway"
При этом PostgreSQL должен слушать доступный из контейнера адрес и разрешать такие подключения. Одной замены имени хоста недостаточно, если доступ закрывают настройки базы или файрвол.
Что проверить при Connection refused:
• Где запущена база: в этом контейнере, соседнем или на хосте?
• Правильно ли указаны адрес и порт?
• Есть ли у контейнеров общая сеть?
• Запущена ли база и готова ли принимать подключения?
Не каждая ошибка подключения связана с localhost, но после переноса приложения в Docker его стоит проверить одним из первых.
👍2🔥2❤1
🔥 Mozilla выпустила 91-страничный отчёт о состоянии open-weight AI — и главный вывод: открытые модели уже примерно в 4 месяцах от frontier.
По данным отчёта:
- 8 из 10 самых используемых моделей на OpenRouter по августовскому token volume — open-weight
- 7 из них созданы в Китае
- DeepSeek первой среди открытых моделей вышла на первое место OpenRouter по weekly requests
- open-модели используют 79% разработчиков, но до production доходят только 51% внедрений против 63% у закрытых
- capability gap с закрытым frontier сейчас измеряется буквально несколькими пунктами
Экономика при этом очень странная.
Open-модели уже забирают огромную долю usage, но в более раннем окне измерений получали лишь около 4% model-layer revenue. Одна из причин - цена: закрытые модели обходились примерно в 6× дороже при близком уровне возможностей.
Ещё интереснее DeepSeek: крупный прирост качества компания получила не новым pretraining run, а несколькими post-training проходами, около +10, а затем ещё +8 пунктов по индексу.
И даже стратегия «возьмём несколько разных моделей для надёжности» не всегда спасает: у Kimi K3 и Claude Fable 5 корреляция ошибок по задачам достигала 0,72. То есть разные модели нередко ломаются на одном и том же.
Главный сдвиг уже произошёл: вопрос больше не в том, смогут ли open-weight модели догнать frontier.
Они уже рядом. Теперь проблема - инфраструктура, tooling и production-ready экосистема вокруг них.
https://stateofopensource.ai
По данным отчёта:
- 8 из 10 самых используемых моделей на OpenRouter по августовскому token volume — open-weight
- 7 из них созданы в Китае
- DeepSeek первой среди открытых моделей вышла на первое место OpenRouter по weekly requests
- open-модели используют 79% разработчиков, но до production доходят только 51% внедрений против 63% у закрытых
- capability gap с закрытым frontier сейчас измеряется буквально несколькими пунктами
Экономика при этом очень странная.
Open-модели уже забирают огромную долю usage, но в более раннем окне измерений получали лишь около 4% model-layer revenue. Одна из причин - цена: закрытые модели обходились примерно в 6× дороже при близком уровне возможностей.
Ещё интереснее DeepSeek: крупный прирост качества компания получила не новым pretraining run, а несколькими post-training проходами, около +10, а затем ещё +8 пунктов по индексу.
И даже стратегия «возьмём несколько разных моделей для надёжности» не всегда спасает: у Kimi K3 и Claude Fable 5 корреляция ошибок по задачам достигала 0,72. То есть разные модели нередко ломаются на одном и том же.
Главный сдвиг уже произошёл: вопрос больше не в том, смогут ли open-weight модели догнать frontier.
Они уже рядом. Теперь проблема - инфраструктура, tooling и production-ready экосистема вокруг них.
https://stateofopensource.ai
❤2👍1