Microsoft предложит до 60 тысячам сотрудников добровольно уйти с компенсацией.
Программа охватит подходящих под условия сотрудников в США, Великобритании, Канаде и Индии, сообщает The Verge.
Среди участвующих направлений – Copilot, CoreAI, Windows + Devices, Xbox, финансы и HR. Некоторые подразделения участвуют частично, а маркетинг, коммерческий бизнес и безопасность исключены.
Компания предлагает финансовую поддержку и помощь в планировании карьеры. В отличие от прежней программы добровольного выхода на пенсию, новая не привязана к возрасту, стажу или результатам работы.
60 тысяч – число сотрудников, которым доступно предложение, а не объявленное количество увольнений. Сколько человек его примут, пока неизвестно.
Программа появилась спустя несколько месяцев после сокращения 4800 рабочих мест.
https://www.theverge.com/tech/1018666/microsoft-expands-buyouts-60000-employees-eligible
Программа охватит подходящих под условия сотрудников в США, Великобритании, Канаде и Индии, сообщает The Verge.
Среди участвующих направлений – Copilot, CoreAI, Windows + Devices, Xbox, финансы и HR. Некоторые подразделения участвуют частично, а маркетинг, коммерческий бизнес и безопасность исключены.
Компания предлагает финансовую поддержку и помощь в планировании карьеры. В отличие от прежней программы добровольного выхода на пенсию, новая не привязана к возрасту, стажу или результатам работы.
60 тысяч – число сотрудников, которым доступно предложение, а не объявленное количество увольнений. Сколько человек его примут, пока неизвестно.
Программа появилась спустя несколько месяцев после сокращения 4800 рабочих мест.
https://www.theverge.com/tech/1018666/microsoft-expands-buyouts-60000-employees-eligible
🤬8🔥6🥰3👍2
Один CVE - три уязвимости: раскрыты детали взлома Oracle PeopleSoft, которым пользовалась ShinyHunters.
Исследователи ZDI выяснили, что за CVE-2026-35273 с оценкой CVSS 9.8 скрываются три ошибки в двух компонентах PeopleSoft.
Начало цепочки – SSRF: атакующий заставляет сервер отправить запрос к собственному внутреннему интерфейсу управления.
Этот интерфейс по умолчанию доверяет обращениям с 127.0.0.1. Поэтому внешний запрос, перенаправленный самим сервером, проходит проверку как локальный.
Полученный доступ открывает два пути к выполнению кода без авторизации: через произвольную запись файлов или небезопасную обработку XML.
Oracle закрыла все три проблемы 10 июня, объединив их под одним CVE. ShinyHunters эксплуатировала цепочку ещё до выхода исправления, первоначально атакуя преимущественно университеты.
Затронуты PeopleTools 8.61 и 8.62. Блокировка отдельных URL на WAF не заменяет патч. Если сервер уже взломан, обновления также недостаточно – нужны проверка компрометации и смена доступных ему учётных данных.
https://thehackernews.com/2026/10/shinyhunters-exploited-oracle.html
Исследователи ZDI выяснили, что за CVE-2026-35273 с оценкой CVSS 9.8 скрываются три ошибки в двух компонентах PeopleSoft.
Начало цепочки – SSRF: атакующий заставляет сервер отправить запрос к собственному внутреннему интерфейсу управления.
Этот интерфейс по умолчанию доверяет обращениям с 127.0.0.1. Поэтому внешний запрос, перенаправленный самим сервером, проходит проверку как локальный.
Полученный доступ открывает два пути к выполнению кода без авторизации: через произвольную запись файлов или небезопасную обработку XML.
Oracle закрыла все три проблемы 10 июня, объединив их под одним CVE. ShinyHunters эксплуатировала цепочку ещё до выхода исправления, первоначально атакуя преимущественно университеты.
Затронуты PeopleTools 8.61 и 8.62. Блокировка отдельных URL на WAF не заменяет патч. Если сервер уже взломан, обновления также недостаточно – нужны проверка компрометации и смена доступных ему учётных данных.
https://thehackernews.com/2026/10/shinyhunters-exploited-oracle.html
🔥5❤4👍3
Forwarded from Machinelearning
Вслед за флагманской RTX 5090 из каталога маркетплейса NVIDIA в США пропала видеокарта RTX 5080.
Оригинальная модель с 16 ГБ больше не отображается в фильтрах поиска, хотя на сайте по-прежнему указана ее стартовая цена в $999.
Фактически же купить ускоритель за эти деньги было крайне сложно - у крупных ритейлеров минимальный прайс давно зафиксировался на уровне $2000.
Снятие устройства с продажи связывают с планами компании по обновлению линейки.
По данным источников, производитель уже отгрузил вендорам последние запасы 16-гигабайтных чипов, которых должно хватить примерно на пару месяцев розничных продаж, и теперь готовится к релизу RTX 5080 с 24 ГБ видеопамяти.
Ожидается, что новая версия поступит на рынок на рубеже 2026 и 2027 годов.
Сама NVIDIA пока не дает официальных комментариев относительно доступности видеокарт и завышения цен на всю пятидесятую серию.
@ai_machinelearning_big_data
#news #ai #ml
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5👍3👎3🔥3
SQL-ловушка: этот UPDATE может незаметно испортить данные в продакшене
Код корректный, PostgreSQL не выдаст ошибку. Но результат не так очевиден.
Есть таблица товаров:
Применяем скидки:
Что вернёт последний SELECT?
А)
Б)
В)
Г)
Один запрос, две скидки на один товар. Как PostgreSQL обработает такой UPDATE?
Подвох связан с поведением
Код корректный, PostgreSQL не выдаст ошибку. Но результат не так очевиден.
Есть таблица товаров:
CREATE TABLE products (
id INT PRIMARY KEY,
price INT
);
INSERT INTO products VALUES (1, 100);
Применяем скидки:
WITH discounts(id, amount) AS (
VALUES (1, 10), (1, 20)
)
UPDATE products p
SET price = p.price - d.amount
FROM discounts d
WHERE p.id = d.id;
SELECT price FROM products;
Что вернёт последний SELECT?
А)
90 Б)
80 В)
70 Г)
80 или 90, результат не гарантированОдин запрос, две скидки на один товар. Как PostgreSQL обработает такой UPDATE?
Подвох связан с поведением
UPDATE ... FROM, о котором легко забыть даже при работе с реальными базами.👍11❤6🔥1
ORM превратила один SQL-запрос в 51. Разработчик даже не заметил
Знакомая ситуация: код выглядит чисто, никаких SQL-запросов вручную, всё через ORM.
Например, в Django:
Кажется, что мы просто получаем 50 постов с авторами. Но на практике это может вызвать 51 запрос к базе данных.
Один запрос загружает посты, а ещё 50 отдельно получают авторов.
Это классическая проблема N+1 queries. Причём чем больше записей, тем больше обращений к БД.
Исправляется одной строкой:
Теперь Django использует
ORM избавляет от написания SQL, но не от необходимости понимать, какой SQL выполняется.
Именно поэтому при оптимизации API полезнее сначала посмотреть на количество запросов, чем переписывать Python-код ради нескольких миллисекунд.
Знакомая ситуация: код выглядит чисто, никаких SQL-запросов вручную, всё через ORM.
Например, в Django:
posts = Post.objects.all()[:50]
for post in posts:
print(post.author.name)
Кажется, что мы просто получаем 50 постов с авторами. Но на практике это может вызвать 51 запрос к базе данных.
Один запрос загружает посты, а ещё 50 отдельно получают авторов.
Это классическая проблема N+1 queries. Причём чем больше записей, тем больше обращений к БД.
Исправляется одной строкой:
posts = Post.objects.select_related("author")[:50]
Теперь Django использует
JOIN и получает посты вместе с авторами одним запросом.ORM избавляет от написания SQL, но не от необходимости понимать, какой SQL выполняется.
Именно поэтому при оптимизации API полезнее сначала посмотреть на количество запросов, чем переписывать Python-код ради нескольких миллисекунд.
👍7❤4🔥2😁1
Если давно хотел разобраться в теме, но постоянно откладывал или терялся среди десятков материалов, этот курс на Stepik поможет выстроить обучение последовательно.
Что получишь:
- Понятные объяснения без лишней воды.
- Практические задания для закрепления знаний.
- Возможность учиться в удобном темпе.
- Структурированный подход вместо хаотичного поиска информации.
Подойдёт тем, кто начинает с нуля или хочет систематизировать знания.
Начни прокачивать навыки уже сейчас:
https://stepik.org/course/303477/
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3👍3👎2🔥2
Даже опытные разработчики иногда ошибаются с оконными функциями PostgreSQL.
Есть таблица событий:
CREATE TABLE events (
id INT PRIMARY KEY,
user_id INT,
ts TIMESTAMP
);
INSERT INTO events VALUES
(1, 10, '2026-01-01 10:00'),
(2, 10, '2026-01-01 10:05'),
(3, 10, '2026-01-01 10:05'),
(4, 10, '2026-01-01 10:20');
Выполняем запрос:
SELECT
id,
COUNT(*) OVER (
PARTITION BY user_id
ORDER BY ts
) AS cnt
FROM events
ORDER BY id;
Что вернёт PostgreSQL?
А)
1, 2, 3, 4Б)
1, 3, 3, 4В)
4, 4, 4, 4Г)
1, 2, 2, 4Правильный ответ:
По умолчанию PostgreSQL использует оконную рамку:
```sql
RANGE BETWEEN UNBOUNDED PRECEDING
AND CURRENT ROW
```
При
RANGEts10:05cnt = 3Чтобы получить обычный накопительный счётчик, нужно явно указать
ROWS```sql
SELECT
id,
COUNT(*) OVER (
PARTITION BY user_id
ORDER BY ts, id
ROWS BETWEEN UNBOUNDED PRECEDING
AND CURRENT ROW
) AS cnt
FROM events
ORDER BY id;
```
Теперь результат:
1, 2, 3, 4Подвох:
COUNT(*) OVER (ORDER BY ...)Please open Telegram to view this post
VIEW IN TELEGRAM
👍13❤5🔥4
SQL-задача с подвохом: найдите пользователей, которые вернулись после 30 дней молчания
Представьте, что вы анализируете активность пользователей сервиса. Нужно найти тех, кто вернулся после длительного перерыва.
Есть таблица PostgreSQL:
Задача: для каждого пользователя найти все даты возвращения после 30 полных календарных дней без активности.
Ожидаемый результат:
| user_id | return_date |
|---|---|
| 1 | 2026-11-01 |
| 3 | 2026-11-05 |
Условия: несколько событий в один день считаются одной активностью. День последней активности и день возвращения в период молчания не входят. Например, между 1 октября и 31 октября только 29 полных дней без активности, а между 1 октября и 1 ноября уже 30.
Ограничение: решите задачу одним SQL-запросом, без процедур, временных таблиц и циклов.
На первый взгляд достаточно
Как бы вы решили эту задачу на PostgreSQL?
Представьте, что вы анализируете активность пользователей сервиса. Нужно найти тех, кто вернулся после длительного перерыва.
Есть таблица PostgreSQL:
CREATE TABLE events (
user_id INT,
event_time TIMESTAMP
);
INSERT INTO events VALUES
(1, '2026-10-01 10:00'),
(1, '2026-10-01 12:00'),
(1, '2026-11-01 09:00'),
(1, '2026-11-02 14:00'),
(2, '2026-10-01 10:00'),
(2, '2026-10-31 10:00'),
(3, '2026-09-01 10:00'),
(3, '2026-11-05 10:00'),
(3, '2026-11-05 11:00');
Задача: для каждого пользователя найти все даты возвращения после 30 полных календарных дней без активности.
Ожидаемый результат:
| user_id | return_date |
|---|---|
| 1 | 2026-11-01 |
| 3 | 2026-11-05 |
Условия: несколько событий в один день считаются одной активностью. День последней активности и день возвращения в период молчания не входят. Например, между 1 октября и 31 октября только 29 полных дней без активности, а между 1 октября и 1 ноября уже 30.
Ограничение: решите задачу одним SQL-запросом, без процедур, временных таблиц и циклов.
На первый взгляд достаточно
LAG(), но если не учесть дубли событий и границы календарных дней, результат окажется неправильным.Как бы вы решили эту задачу на PostgreSQL?
👍7🔥6❤3🥰1
RAG без векторной базы: PageIndex набрал 40 тысяч звёзд на GitHub
PageIndex предлагает другой подход к поиску информации в документах. Вместо embeddings, разбиения текста на чанки и векторного поиска используется иерархический индекс и рассуждения LLM.
Система строит дерево разделов документа, а затем модель последовательно выбирает нужные ветки и находит ответ с указанием источника.
Такой подход особенно полезен для больших PDF, финансовых отчётов, юридических документов и технической документации, где одного семантического сходства недостаточно.
Результаты разработчиков:
98,7% точности на FinanceBench.
До 97% экономии токенов при ответах на вопросы по документам с использованием Page Search API.
В 16,6 раза дешевле, чем передавать модели целый PDF на 420 страниц при каждом запросе, в одном из сравнительных тестов.
Это результаты собственных бенчмарков проекта, поэтому для конкретной RAG-системы их стоит перепроверять.
Есть Python SDK, локальная индексация PDF и интеграции с ИИ-агентами. Лицензия MIT.
PageIndex особенно интересно попробовать там, где обычный vector RAG теряет контекст между разделами длинного документа.
GitHub: https://github.com/VectifyAI/PageIndex
PageIndex предлагает другой подход к поиску информации в документах. Вместо embeddings, разбиения текста на чанки и векторного поиска используется иерархический индекс и рассуждения LLM.
Система строит дерево разделов документа, а затем модель последовательно выбирает нужные ветки и находит ответ с указанием источника.
Такой подход особенно полезен для больших PDF, финансовых отчётов, юридических документов и технической документации, где одного семантического сходства недостаточно.
Результаты разработчиков:
98,7% точности на FinanceBench.
До 97% экономии токенов при ответах на вопросы по документам с использованием Page Search API.
В 16,6 раза дешевле, чем передавать модели целый PDF на 420 страниц при каждом запросе, в одном из сравнительных тестов.
Это результаты собственных бенчмарков проекта, поэтому для конкретной RAG-системы их стоит перепроверять.
Есть Python SDK, локальная индексация PDF и интеграции с ИИ-агентами. Лицензия MIT.
pip install -U pageindex
PageIndex особенно интересно попробовать там, где обычный vector RAG теряет контекст между разделами длинного документа.
GitHub: https://github.com/VectifyAI/PageIndex
❤11🔥4🥰1
PostgreSQL: от SQL до внутреннего устройства
Практический курс на русском для разработчиков, аналитиков и инженеров, которым важно понимать не только синтаксис запросов, но и поведение базы под нагрузкой. Вы построите учебный сервис заказов, исследуете планы запросов, воспроизведёте блокировки и разберёте MVCC, WAL и vacuum.
https://github.com/justxor/postgresql-deep-dive-ru
Практический курс на русском для разработчиков, аналитиков и инженеров, которым важно понимать не только синтаксис запросов, но и поведение базы под нагрузкой. Вы построите учебный сервис заказов, исследуете планы запросов, воспроизведёте блокировки и разберёте MVCC, WAL и vacuum.
https://github.com/justxor/postgresql-deep-dive-ru
❤5👍4🔥3
NVIDIA выпустила Auto Ontology: теперь ИИ-агенты могут понимать корпоративные базы данных и самостоятельно писать SQL
NVIDIA открыла исходный код Auto Ontology - Python-платформы, которая создаёт семантический слой поверх баз данных и помогает ИИ-агентам работать с корпоративной информацией.
Как это работает:
- Анализирует схемы БД, таблицы, столбцы и связи между ними.
- Автоматически строит онтологию с бизнес-сущностями и их определениями.
- Преобразует вопросы на обычном языке в SQL-запросы.
- Проверяет SQL, значения фильтров и связи между таблицами.
- Возвращает результат вместе с SQL и происхождением данных.
Поддерживаются 10 источников данных: PostgreSQL, MySQL, Snowflake, Databricks, ClickHouse, Trino, DuckDB, SQLite и другие.
Отдельно интересна интеграция с MCP: подключить онтологию к Claude Desktop, Cursor и другим агентам можно через MCP-сервер.
В стеке Python, FastAPI, PostgreSQL, pgvector и Next.js. Есть Docker Compose и Helm для Kubernetes.
Лицензия Apache 2.0.
GitHub: https://github.com/NVIDIA/auto-ontology
NVIDIA открыла исходный код Auto Ontology - Python-платформы, которая создаёт семантический слой поверх баз данных и помогает ИИ-агентам работать с корпоративной информацией.
Как это работает:
- Анализирует схемы БД, таблицы, столбцы и связи между ними.
- Автоматически строит онтологию с бизнес-сущностями и их определениями.
- Преобразует вопросы на обычном языке в SQL-запросы.
- Проверяет SQL, значения фильтров и связи между таблицами.
- Возвращает результат вместе с SQL и происхождением данных.
Поддерживаются 10 источников данных: PostgreSQL, MySQL, Snowflake, Databricks, ClickHouse, Trino, DuckDB, SQLite и другие.
Отдельно интересна интеграция с MCP: подключить онтологию к Claude Desktop, Cursor и другим агентам можно через MCP-сервер.
В стеке Python, FastAPI, PostgreSQL, pgvector и Next.js. Есть Docker Compose и Helm для Kubernetes.
Лицензия Apache 2.0.
GitHub: https://github.com/NVIDIA/auto-ontology
❤9🔥5👍1👎1
PostgreSQL закрыл 52 уязвимости за одно обновление
12 ноября вышли PostgreSQL 18.7, 17.12, 16.16, 15.20 и 14.25, а также второй релиз-кандидат PostgreSQL 19. Помимо 52 уязвимостей, разработчики исправили более 140 ошибок.
У ряда уязвимостей оценка 8,8 по CVSS. Они позволяли пользователю с доступом к базе при определённых условиях выполнить код с правами системного пользователя, от которого запущен PostgreSQL. Также исправили SQL-инъекции в утилитах
После обновления проверьте раздел
https://www.postgresql.org/about/news/postgresql-187-1712-1616-1520-1425-and-19-rc-2-released-3442/
@sqlhub
12 ноября вышли PostgreSQL 18.7, 17.12, 16.16, 15.20 и 14.25, а также второй релиз-кандидат PostgreSQL 19. Помимо 52 уязвимостей, разработчики исправили более 140 ошибок.
У ряда уязвимостей оценка 8,8 по CVSS. Они позволяли пользователю с доступом к базе при определённых условиях выполнить код с правами системного пользователя, от которого запущен PostgreSQL. Также исправили SQL-инъекции в утилитах
pg_dump, pg_restore и reindexdb. В примечаниях к релизу за сообщения о нескольких уязвимостях проект благодарит Claude, Ada Logics и программу Anthropic OSS.После обновления проверьте раздел
Updating для своей версии. Проект рекомендует перестроить затронутые индексы GIN и pg_trgm GiST: из-за повреждения индекса поиск мог пропускать подходящие строки. Версия 14.25 стала последней для ветки 14. Стабильный PostgreSQL 19 запланирован на 19 ноября.https://www.postgresql.org/about/news/postgresql-187-1712-1616-1520-1425-and-19-rc-2-released-3442/
@sqlhub
🔥6❤2👍2