У Claude Code довольно элегантная структура проекта: одна папка
👉 @SQLPortal
.claude/, в которой живёт всё, что связано с агентом.Please open Telegram to view this post
VIEW IN TELEGRAM
❤3
Только начинаете знакомство с Oracle AI Database?
Anders Swanson показывает, с чего начать.
Что входит в руководство:
• запуск бесплатной базы данных в Docker
• установка необходимых инструментов для разработки: расширения SQL Developer для VS Code и CLI-интерфейса SQLcl
• подборка бесплатных материалов для изучения Oracle AI Database и экосистемы Oracle
Подойдёт тем, кто хочет быстро поднять локальное окружение и начать работать с Oracle без лишней настройки.
👉 @SQLPortal
Anders Swanson показывает, с чего начать.
Что входит в руководство:
• запуск бесплатной базы данных в Docker
• установка необходимых инструментов для разработки: расширения SQL Developer для VS Code и CLI-интерфейса SQLcl
• подборка бесплатных материалов для изучения Oracle AI Database и экосистемы Oracle
Подойдёт тем, кто хочет быстро поднять локальное окружение и начать работать с Oracle без лишней настройки.
Please open Telegram to view this post
VIEW IN TELEGRAM
andersswanson.dev
Brand new to Oracle AI Database? Start Here - andersswanson.dev
Many Oracle guides are written for DBAs or long-time developers, and as a newcomer it feels like you’re expected to already know the jargon. I started in the same place, learning the as I went, and I’m still learning each day. If you’re considering using…
Любимый паттерн для “последняя запись на группу” в Postgres —
Да, он Postgres-specific. Нет, он не из SQL Standard. Зато для этой задачи он читается почти идеально.
Есть таблица заказов:
Старый классический вариант:
Работает, но есть нюансы.
Таблица читается два раза: сначала ищем
И ещё хуже: если у одного клиента два заказа с одинаковым
В Postgres проще так:
То есть
Чтобы это реально летало, добавляем индекс:
Теперь Postgres может идти по уже отсортированному индексу и не делать отдельную сортировку.
На небольшом тесте с 100k строк и 20k
Без индекса:
•
•
•
С индексом
•
•
•
Главный вывод: для “одна последняя строка на группу” в Postgres я первым беру
Если нужно не одну строку, а top N строк на группу, тогда уже
Window functions — когда нужна гибкость.
👉 @SQLPortal
DISTINCT ON.Да, он Postgres-specific. Нет, он не из SQL Standard. Зато для этой задачи он читается почти идеально.
Есть таблица заказов:
CREATE TABLE orders (
id bigint PRIMARY KEY,
customer_id int,
status text,
created_at timestamptz
);
Старый классический вариант:
SELECT o.*
FROM orders o
INNER JOIN (
SELECT customer_id, MAX(created_at) AS latest
FROM orders
GROUP BY customer_id
) latest ON o.customer_id = latest.customer_id
AND o.created_at = latest.latest;
Работает, но есть нюансы.
Таблица читается два раза: сначала ищем
MAX(created_at) по каждому customer_id, потом джойнимся обратно за полной строкой.И ещё хуже: если у одного клиента два заказа с одинаковым
created_at, запрос может вернуть две строки. Нужен tie-breaker.В Postgres проще так:
SELECT DISTINCT ON (customer_id)
customer_id, status, created_at
FROM orders
ORDER BY customer_id, created_at DESC;
DISTINCT ON (customer_id) оставляет первую строку для каждого клиента после сортировки.То есть
ORDER BY customer_id, created_at DESC сначала кладёт свежий заказ клиента наверх, а DISTINCT ON забирает его.Чтобы это реально летало, добавляем индекс:
CREATE INDEX ON orders (customer_id, created_at DESC);
Теперь Postgres может идти по уже отсортированному индексу и не делать отдельную сортировку.
На небольшом тесте с 100k строк и 20k
customer_id получилось так:Без индекса:
•
MAX + self-join: 32.92ms•
DISTINCT ON: 34.75ms•
ROW_NUMBER(): 38.68msС индексом
(customer_id, created_at DESC):•
DISTINCT ON: 15.99ms•
ROW_NUMBER(): 25.36ms•
MAX + self-join: 38.01msГлавный вывод: для “одна последняя строка на группу” в Postgres я первым беру
DISTINCT ON.Если нужно не одну строку, а top N строк на группу, тогда уже
ROW_NUMBER():SELECT customer_id, status, created_at
FROM (
SELECT *,
ROW_NUMBER() OVER (
PARTITION BY customer_id
ORDER BY created_at DESC
) AS rn
FROM orders
) ranked
WHERE rn = 1;
DISTINCT ON — для простого “последний на группу”.Window functions — когда нужна гибкость.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2👍1
This media is not supported in your browser
VIEW IN TELEGRAM
Чем больше пользуюсь Claude Code, тем сильнее кажется, что главный навык теперь не кодинг.
А управление агентами.
У некоторых workflow выглядит примерно так:
Одна задача автоматически разбивается между несколькими агентами.
• один накидывает идеи
• один пишет технический план
• один кодит
• один делает ревью
• один ищет проблемы и пропущенные кейсы
Всё складывается в markdown, чтобы не потерять контекст.
Да, получается медленнее.
Да, приходится ждать.
Но качество обычно выше, потому что каждый агент делает только одну работу.
А настоящий буст начинается с Git Worktrees.
Вместо одной сессии Claude Code можно держать несколько параллельных.
Одна пилит новую фичу.
Вторая разбирается с багом.
Третья пишет тесты.
Четвёртая занимается рефакторингом.
В итоге начинаешь думать не в стиле «как написать этот код», а в стиле «как распределить работу между агентами и не потерять контроль над результатом».
Похоже, это и есть новый engineering skill.
👉 @SQLPortal
А управление агентами.
У некоторых workflow выглядит примерно так:
Одна задача автоматически разбивается между несколькими агентами.
• один накидывает идеи
• один пишет технический план
• один кодит
• один делает ревью
• один ищет проблемы и пропущенные кейсы
Всё складывается в markdown, чтобы не потерять контекст.
Да, получается медленнее.
Да, приходится ждать.
Но качество обычно выше, потому что каждый агент делает только одну работу.
А настоящий буст начинается с Git Worktrees.
Вместо одной сессии Claude Code можно держать несколько параллельных.
Одна пилит новую фичу.
Вторая разбирается с багом.
Третья пишет тесты.
Четвёртая занимается рефакторингом.
В итоге начинаешь думать не в стиле «как написать этот код», а в стиле «как распределить работу между агентами и не потерять контроль над результатом».
Похоже, это и есть новый engineering skill.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2
Тебе точно понравится:
Этот инструмент, который преобразует запросы на естественном языке в SQL-запросы
То есть пишешь ему, например:
И он вам выдаёт
Очень удобный инструмент для тех, кто не знаком с SQL, но нуждается в работе с базами данных, пользуйтесь📸
⛓ Ознакомиться: тут
👉 @SQLPortal
Этот инструмент, который преобразует запросы на естественном языке в SQL-запросы
То есть пишешь ему, например:
все книги которые взяли студенты 2 курса за последнюю неделю
И он вам выдаёт
SELECT * FROM ... и тд.Очень удобный инструмент для тех, кто не знаком с SQL, но нуждается в работе с базами данных, пользуйтесь
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - shurutech/mql: MQL tool is designed to generate SQL queries directly from natural language inputs.
MQL tool is designed to generate SQL queries directly from natural language inputs. - shurutech/mql
❤1
Новый бесплатный курс от Anthropic!
Agent Skills: пошагово и с нуля
✓ Создание навыков (Skills) и лучшие практики
✓ Отличия от Tools и MCP
✓ Для Claude Code и Visual Studio Code
2 часа контента и 10 видеоуроков
→ deeplearning.ai/short-courses/agent-skills-with-anthropic/
👉 @SQLPortal
Agent Skills: пошагово и с нуля
✓ Создание навыков (Skills) и лучшие практики
✓ Отличия от Tools и MCP
✓ Для Claude Code и Visual Studio Code
2 часа контента и 10 видеоуроков
→ deeplearning.ai/short-courses/agent-skills-with-anthropic/
Please open Telegram to view this post
VIEW IN TELEGRAM
www.deeplearning.ai
Agent Skills with Anthropic
Equip agents with expert on-demand knowledge to enable reliable coding, research, and data analysis workflows
Лето начинается: водные развлечения, гриль на острове и новые маршруты в бутик-отеле «Заонежье»
Для гостей бутик-отеля «Заонежье» к новому сезону подготовлены лесные трассы для первых заездов на новых квадроциклах — они позволяют исследовать дикие уголки карельской тайги и скалистые берега озер. Велопрогулки по дорогам Заонежья стали еще комфортнее благодаря электробайкам, которые этой весной пополнили велопарк отеля.
В мае, в отеле открылся сезон водных развлечений: гостям доступны сапы, каяки и весельные лодки. В этом году пользование ими - комплементарное для всех гостей. Также появились новые маршруты для катеров по заливам Онежского озера.
Ресторан «Руна» представляет летнюю серию гриль-сетов, которые можно приготовить самостоятельно на одном из необитаемых островов или устроить барбекю на лужайке у дома. В меню — овощные и рыбные сеты, а также мясное ассорти.
Бутик-отель «Заонежье» приглашает к активному отдыху среди озер и северной природы Карелии.
Для гостей бутик-отеля «Заонежье» к новому сезону подготовлены лесные трассы для первых заездов на новых квадроциклах — они позволяют исследовать дикие уголки карельской тайги и скалистые берега озер. Велопрогулки по дорогам Заонежья стали еще комфортнее благодаря электробайкам, которые этой весной пополнили велопарк отеля.
В мае, в отеле открылся сезон водных развлечений: гостям доступны сапы, каяки и весельные лодки. В этом году пользование ими - комплементарное для всех гостей. Также появились новые маршруты для катеров по заливам Онежского озера.
Ресторан «Руна» представляет летнюю серию гриль-сетов, которые можно приготовить самостоятельно на одном из необитаемых островов или устроить барбекю на лужайке у дома. В меню — овощные и рыбные сеты, а также мясное ассорти.
Бутик-отель «Заонежье» приглашает к активному отдыху среди озер и северной природы Карелии.
😁1
Начиная с Oracle 21c, массивы PL/SQL можно инициализировать через конструкторы с циклом
Такие конструкторы позволяют перебирать:
значения —
результат курсора —
Для задания собственных индексов можно использовать необязательное выражение
👉 @SQLPortal
FOR.array := arr_type ( FOR i IN ... )
Такие конструкторы позволяют перебирать:
значения —
IN x .. yрезультат курсора —
IN ( SELECT ... )Для задания собственных индексов можно использовать необязательное выражение
INDEX.Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Появился
По многочисленным просьбам автор вынес один из самых полезных инструментов своего агентного пайплайна в отдельный skill для Claude Code, Codex и других агентных сред.
После того как агент внёс изменения, достаточно выполнить:
Дальше инструмент автоматически проверит изменения и поможет найти проблемы до коммита.
По словам автора, код, сгенерированный ИИ, даже лучшими моделями, пока нельзя безоговорочно принимать и мержить без тщательной проверки.
Его собственная статистика:
68% изменений содержали проблемы
эти проблемы могли попасть в основную ветку, если бы их не обнаружил no-mistakes
Раньше инструмент запускался только через:
Теперь доступен и как skill.
Исходный код открыт и распространяется бесплатно: https://github.com/kunchenguid/no-mistakes
Для настройки в репозитории:
👉 @SQLPortal
/no-mistakes.По многочисленным просьбам автор вынес один из самых полезных инструментов своего агентного пайплайна в отдельный skill для Claude Code, Codex и других агентных сред.
После того как агент внёс изменения, достаточно выполнить:
/no-mistakesДальше инструмент автоматически проверит изменения и поможет найти проблемы до коммита.
По словам автора, код, сгенерированный ИИ, даже лучшими моделями, пока нельзя безоговорочно принимать и мержить без тщательной проверки.
Его собственная статистика:
68% изменений содержали проблемы
эти проблемы могли попасть в основную ветку, если бы их не обнаружил no-mistakes
Раньше инструмент запускался только через:
git push no-mistakesТеперь доступен и как skill.
Исходный код открыт и распространяется бесплатно: https://github.com/kunchenguid/no-mistakes
Для настройки в репозитории:
no-mistakes initPlease open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
😁1