
Sign up to save your podcasts
Or


У цьому випуску говоримо про те, як штучний інтелект поступово змінює не лише інструменти програміста, а й сам спосіб роботи.
00:00 — Вступ, знайомство з гостем Данилом01:04 — Як програмісти сьогодні використовують AI та coding agents02:13 — Новий тип AI-моделей: не генерувати текст, а аналізувати дані04:24 — Класифікація, boolean-відповіді та структурований результат замість тексту08:30 — Практичний кейс: AI-фільтр спаму в Telegram10:03 — AI для автоматичної категоризації товарів інтернет-магазину13:24 — GPT-6 Sol і Luna: враження, ціна та ліміти14:57 — Нові ноутбуки Google та запуск Android-застосунків
17:41 — Головна тема: навіщо взагалі потрібен блокчейн?18:00 — Блокчейн як база даних — максимально просте пояснення19:00 — Як купити криптовалюту і де вона зберігається20:00 — Що таке криптогаманець21:00 — Binance як аналог банку та custodial-зберігання22:00 — Self-custody: коли гроші справді контролюєш ти24:00 — Що таке токен, Bitcoin та Ethereum25:00 — Чому блокчейн не лежить на одному сервері28:00 — Як виглядає блокчейн як розподілена база даних29:20 — Де тут гаманець, адреса та історія транзакцій30:00 — Публічність блокчейну та приватні мережі на кшталт Monero
32:00 — Що насправді зберігається у блоках33:00 — Ethereum і поява смарт-контрактів35:00 — Хто перевіряє, чи є у користувача гроші36:00 — Як майнери створюють новий блок37:00 — Proof of Work і пошук правильного hash38:00 — Складність майнінгу та швидкість створення блоків38:50 — Атака 51% і питання довіри41:00 — Емісія Bitcoin та зменшення нагороди за блок42:00 — Звідки беруться комісії за транзакції43:00 — Як транзакція розлітається між нодами44:00 — Чому транзакція може довго не потрапляти в блок
46:00 — Куди блокчейн еволюціонував після Bitcoin47:00 — Ethereum як наступний великий крок49:00 — Як працює виклик смарт-контракту50:00 — Що означає «задеплоїти код у блокчейн»52:00 — Стан смарт-контракту та історія його викликів53:00 — Смарт-контракт як «дуже дорогий SQL»54:00 — Що буде, якщо задеплоїти нескінченний цикл58:00 — Як блокчейн захищається від коду, що може покласти ноду59:00 — Gas: чому виконання коду коштує грошей1:01:00 — Solidity, bytecode та мови смарт-контрактів
1:02:00 — Проблема Ethereum: дорого і повільно1:04:00 — Скільки важить блокчейн і чи можна підняти власну ноду1:05:00 — Як інші блокчейни намагались стати швидшими1:06:00 — Solana: швидкість в обмін на компроміси1:07:00 — Робота blockchain-розробника: Solidity та EVM1:08:00 — Як почати писати смарт-контракти самому1:10:00 — Реальний приклад смарт-контракту: staking1:12:00 — Чому коду смарт-контракту потрібно довіряти1:14:00 — USDT теж є смарт-контрактом1:16:00 — Як Web3-фронтенд напряму працює з блокчейном1:18:00 — Як ноди перевіряють баланс і валідність транзакцій
1:20:50 — DEX і DeFi: переходимо до децентралізованих бірж1:22:00 — Навіщо взагалі потрібні різні токени1:23:00 — Uniswap і автоматичний обмін токенів1:24:00 — Як формується курс без банку та централізованого регулятора1:25:00 — Liquidity Pool на простому прикладі1:27:00 — ERC-20 і сумісність токенів1:28:00 — DEX-агрегатори: пошук найкращого курсу1:29:00 — Хто такі liquidity providers і на чому вони заробляють1:30:00 — Скільки різних комісій платить користувач
1:31:00 — Як насправді працює Binance1:33:00 — P2P, внутрішній баланс Binance та реальні blockchain-транзакції1:34:00 — Чому звичайні банки не працюють як криптобіржі1:35:00 — 24/7 перекази, але без chargeback і повернення транзакцій1:36:00 — Seed phrase, приватний та публічний ключ1:38:00 — MetaMask та справжній self-custody гаманець1:40:00 — Як приватним ключем підписується транзакція
1:41:00 — Що таке stablecoin1:42:00 — Як USDT та USDC прив'язуються до долара1:43:00 — Що станеться, якщо емітент stablecoin зникне1:45:00 — Арбітраж і підтримання курсу $11:48:00 — Чим відрізняються USDT та USDC і питання резервів1:50:00 — Чи може stablecoin виявитися скамом1:54:00 — Що відбувається, коли ви купуєте USDT через P2P1:56:00 — Чому USDT іноді коштує $0.9961:58:00 — Звідки взагалі береться ціна Bitcoin2:00:00 — Попит, пропозиція та чому stablecoin тримається біля $1
2:01:00 — Чи можливий refund у Binance2:02:00 — Наскільки Binance насправді централізований2:04:00 — Що залишилося розібрати про децентралізацію2:05:00 — На чому сьогодні заробляють майнери2:06:00 — Емісія Bitcoin і майбутнє нагород за блок2:07:00 — Чи веде майнінг до централізації великими гравцями2:08:00 — Mining pools2:09:00 — Proof of Stake: чому Ethereum відмовився від майнінгу2:10:00 — Валідатори, staking та покарання за нечесну поведінку2:10:36 — Підсумки та завершення
У цьому випуску починаємо з новинок Apple і розкладних смартфонів, а потім переходимо до головного питання: чи справді LLM роблять програміста швидшим, чи ми просто встигаємо зробити за той самий час більше?
Говоримо про вплив AI на бізнес і роботу, автоматизацію, безумовний базовий дохід, а в другій половині занурюємось у HTTP: 400 vs 429, rate limiting, Cloudflare, бізнес-логіку в status codes, новий QUERY method, PUT vs PATCH, OPTIONS, preflight та CORS.
Майже чотири години суперечок про програмування, AI, API та майбутнє технологій.00:00 — Старт: ліміти Claude, токени та скільки AI з’їдає ресурсів
04:20 — Презентація Apple і нова ера розкладних iPhone
08:00 — Навіщо взагалі потрібен foldable: ігри, дизайн і робота
15:20 — Розкладний смартфон як термінал для програміста
20:00 — Камери, батарея та реальні юзкейси foldable
23:50 — Samsung Fold/Flip, механіка складання та надійність
30:00 — Чи досягли смартфони свого «ідеального» формфактора
35:00 — Apple Watch, падіння, здоров’я та emergency-функції
44:30 — Супутниковий зв’язок зі смартфона і допомога без мобільної мережі
50:00 — Ностальгія за Nokia, слайдерами та старими формфакторами
55:00 — iPhone vs Android: UX, баги, камера та компресія Instagram
1:05:11 — Чи справді LLM прискорює програмування?
1:10:00 — Де AI реально економить час: SQL, boilerplate і backend
1:15:00 — Вузьке місце бізнесу: код пишеться швидше, але хто це все продасть?
1:21:00 — Як LLM уже забирають роботу у сервісних бізнесів
1:25:00 — Переклади, юридичні документи та конкуренція з ChatGPT
1:30:00 — Безумовний базовий дохід у світі AI
1:35:00 — Як автоматизація руйнує ланцюжки підрядників
1:40:00 — Роботи, автоматизація і питання «чим займатимуться люди?»
1:45:00 — Капіталізм, робота та оптимістичні сценарії майбутнього
1:49:30 — Асинхронні чати та паралельні гілки розмов
1:56:37 — Matt Pocock Skills та кастомізація AI-агентів
2:00:00 — Як забороняти агентам небезпечні Git-команди
2:01:36 — Повертаємось до HTTP status codes: 400, 409 та бізнес-логіка
2:05:30 — 429, rate limits, headers і Cloudflare
2:15:00 — Rate limiting в інфраструктурі чи всередині застосунку?
2:25:00 — Один API-клієнт проти публічного API та роль конвенцій
2:35:00 — Проксі, кеші та інфраструктура, яка може інтерпретувати status codes
2:44:00 — Авторизація на рівні nginx/proxy та статус 401
2:50:00 — Чи варто прив’язувати бізнес-логіку до HTTP status codes?
2:51:56 — Новий HTTP QUERY: навіщо ще один метод
2:56:55 — PUT vs PATCH: у чому практична різниця
3:06:30 — Навіщо браузеру OPTIONS і preflight-запити
3:09:00 — Чому старі frontend-проєкти так важко піднімати
3:12:22 — Біль міграцій Nuxt/Vue та несумісність залежностей
3:17:00 — Чому іноді краще брати найпопулярнішу бібліотеку
3:19:00 — CORS без OPTIONS: як це працює насправді
3:25:00 — Response headers, браузер і Access-Control-Allow-Origin
3:30:00 — OPTIONS, GET і суперечка про механіку CORS
3:40:00 — Куди поділись проблеми з CORS у сучасному frontend
3:42:10 — Фінал
Чи варто повертати 200 з null замість 404 і прив’язувати бізнес-логіку до HTTP-кодів? Обговорюємо дизайн API, порівнюємо досвід роботи з Codex і Claude, OpenSpec та скілами Matt Pocock. Далі — велика суперечка про Docker, стандартизацію середовища й свободу розробника у виборі інструментів. Також розбираємо баг у Go/Huma, ділимося досвідом роботи з клієнтами БД, Linux і macOS та завершуємо добіркою утиліт: navi, Atuin, Yazi й OrbStack.
00:00 Криптоісторії: Binance, банківські перевірки та загублений доступ
03:03 Дизайн API: 404 чи 200 з null?
16:24 Валідація, 422 та бізнес-помилки у відповідях API
22:06 Кешування відповідей: історія з error not found
29:14 409 без пояснень: чому одного статус-коду недостатньо
35:27 Домовленості між командами та документація API
38:45 OpenSpec проти скілів Matt Pocock: досвід на реальних проєктах
49:16 Plan Mode: навіщо планувати з агентом перед написанням коду
59:24 Скіли та MCP у Codex: розбіжності між CLI й десктопом
1:03:56 Навіщо десктопний агент: автоматизації та перегляд результатів
1:06:21 Vim Mode, хоткеї та зручність термінальних інтерфейсів
1:13:35 Керування агентом із телефона
1:16:11 Codex і Claude: моделі, багатослівність та автономна робота
1:20:29 Як оцінювати якість AI-коду — і скільки вирішує промпт
1:25:31 Спільні скіли, AGENTS.md і персональні налаштування
1:29:27 Однаковий запуск проєкту для всіх: зручність чи обмеження?
1:44:37 Docker чи локальний запуск: швидкість, тести та залежності
1:50:24 Neovim і LSP у Docker: як поєднати власні інструменти з контейнерами
1:58:23 Історія PHP-проєкту: коли локальне середовище розходиться з продом
2:02:56 Конфігурація чи інсталяційний скрипт: де межа стандартизації?
2:16:46 Баг у Go/Huma: конфлікт структур і неправильна валідація
2:24:24 Go в Docker: SQLite, системні залежності та Air
2:28:04 Дебаг у Neovim і Zed — та як AI змінює пошук помилок
2:30:30 Lazygit чи VS Code: перегляд diff і м’язова пам’ять
2:35:44 Клієнти БД: TablePlus, DataGrip, Compass, DBeaver та LazySQL
2:49:22 Redis: консоль чи графічний інтерфейс?
2:50:28 Мінімалізм робочого простору: що допомагає зосередитися
2:54:55 AeroSpace: спроба отримати i3 на macOS2:57:15 Linux на Mac, Asahi, Hyprland і проблеми масштабування
3:02:06 Arch та EndeavourOS: оновлення пакетів і власні скрипти
3:03:22 Прибирання macOS: Homebrew, Mole та залишки програм
3:10:05 Баг перемикання мови в macOS і скріншоти з таймером
3:16:14 Історія багрепорту Apple, який роками лишається без виправлення
3:17:43 navi та Atuin: шпаргалки й історія команд у терміналі
3:20:02 Yazi: файловий менеджер, прев’ю та плагіни
3:26:00 OrbStack замість Docker Desktop: досвід переходу на macOS
3:32:28 Завершення випуску
У цьому випуску порівнюємо Claude Code і Codex, програмуємо з iPhone через SSH та розбираємося з VPS, swap, Docker і Dokploy. Обговорюємо passkeys, подорожчання оперативної пам’яті, локальні AI-моделі та вплив дата-центрів на енергетику й довкілля. У другій половині сперечаємося про цифрову власність, підписки на ігри, принтери й автомобілі, GitHub та self-hosted Git. А наприкінці з’ясовуємо, чи вбиває AI інтерес до програмування і як правильно працювати з кодинг-агентами.
00:00 Вступ і «безпрограмерський» тиждень00:44 Cursor, Claude Code і Codex: хто краще пише та перевіряє код07:08 Програмування з iPhone через Claude, SSH, VPN і tmux12:00 Повністю термінальна розробка та робоче середовище на VPS20:17 Лайфхак від AI: swap на дешевому дроплеті25:31 Kubernetes, Docker Swarm, Docker Stack, Dokploy і керування пам’яттю32:10 DigitalOcean, Hetzner та AWS: порівнюємо ціни на VPS36:56 Видалений Proton Mail, втрачений OTP і пастка двофакторної авторизації45:40 Passkeys: як вони працюють, де зберігаються і чому іноді ламаються55:00 Omarchy, Dell XPS, Panther Lake та обіцяні 42 години автономності1:03:48 Чому Safari економніший за Chrome і навіщо Apple усім нав’язувала WebKit1:10:01 M5 Ultra, 256 ГБ RAM і шалене подорожчання пам’яті1:18:22 Протести проти AI-датацентрів: електрика, шум, вода й тепло1:37:10 Ефективність AI, заклики пригальмувати розвиток і китайський open source1:48:05 Локальні LLM для кодингу: Ollama, агенти, GPU-дроплети та майнінгові ферми1:58:13 ChatGPT на телефоні, Siri та Apple Intelligence2:00:33 Регіональні ціни в App Store і зміна країни акаунта2:01:19 PlayStation без дисків, GTA VI і кому насправді належить цифрова гра2:07:04 Google Stadia, GeForce NOW і техніка за підпискою2:12:56 Заплановане старіння, «вічні» мікрохвильовки та двигуни-мільйонники2:19:18 Екрани в автомобілях, цифрова свобода, GOG, Steam і Proton2:33:13 Як записується шоу, генеруються субтитри та проєктуються інтерфейси2:40:13 GitHub Stacked PRs: навіщо створювати pull request поверх pull request2:47:11 Падіння GitHub, self-hosted GitLab і власний Git-сервер2:54:47 Чи безпечно віддавати AI код, секрети й ключі доступу2:57:51 AI вбиває інтерес до програмування? LeetCode та контент від нейромереж3:02:17 ClojureScript і ReScript як спосіб повернути задоволення від коду3:09:53 Як керувати кодинг-агентами: мікроменеджмент чи повний аутсорс3:14:36 Робочий день для чатботів і магія часових поясів3:16:31 Завершення рекордного випуску
#ранковешоуКожної суботи (не факт) з ранку, приблизно з 8 до 11 (але це не точно) обговорюємо IT і власний досвід в ньому.Всім приємного прослуховування.* Telegram → https://t.me/bajti_bagi_i_bozhevillya
Зміст:00:00 Вступ і пташина заставка02:42 Що нового в Go 1.2711:25 Чому Go розвивається так повільно17:34 Навіщо обирати Go замість Python26:31 Laravel, оновлення та стабільність проєктів29:09 Ruff і несподівані правила форматування40:57 Перехід із Black та Flake8 на Ruff43:13 Чи потрібен людям читабельний код у світі AI47:02 OpenSpec: розробка через специфікації59:33 Проєкт, повністю написаний штучним інтелектом1:04:18 Безпека AI-агентів і доступ до продакшену1:07:13 Cursor самостійно керує браузером1:20:25 Коли швидше написати код руками1:23:02 Чи відмовляться програмісти від клавіатури1:29:03 AI дорожчий за програмістів?1:34:34 Автономний AI, який сам ставить задачі1:37:04 «Термінатор» і майбутнє штучного інтелекту1:41:07 Роботи, спорт і повстання машин1:43:49 Як OpenAI переміг професійних гравців у Dota1:45:28 Codex самостійно грає в шахи1:46:45 Чи замінить AI працівників підтримки1:49:35 Битва з підтримкою за фільм у 4K1:52:48 Чому якість продуктів постійно падає1:55:13 Сучасні автомобілі стають менш надійними2:01:36 Економія на якості пасажирських літаків2:03:36 Завершення випуску
00:00 Вступ
00:48 Go-пакет для генерації форм і перший open-source досвід
05:46 Новий проєкт на Go: настільні ігри та «Морський бій»
13:04 Huma, OpenAPI та експерименти з Go
24:16 Обробка помилок і HTTP-коди в Go
26:46 Handler vs Service: як організовувати бізнес-логіку
37:51 Абстракції, дублювання коду та spaghetti code
47:58 6 фраз, які заважають працювати в команді
1:12:37 TablePlus та пошук open-source альтернатив
1:31:48 Frontend vs Backend: хто відповідає за фічу?
1:40:44 Чергування по багах і робота з підтримкою
1:47:44 «Проєкт Дімона»: коли вже можна йти в прод
1:49:21 Як правильно будувати процеси в проєкті з нуля
1:52:26 Запуск проєктів — це навичка, яку треба тренувати
1:55:10 Завершення
Обговорили розробку власного проєкту на Go, SQLC, DDD, авторизацію та безпеку, а також те, як AI змінює роботу програміста. Наприкінці поговорили про навчання, алгоритми та чому власні проєкти й практика сьогодні важливіші за просте вивчення теорії.0:00 Claude Skills: інтерактивні уроки та навчання
4:11 Go-проєкт: MVP сервісу пошуку роботи
8:40 Власні форми та валідація в Go
10:54 SQLC — типобезпечна робота з SQL
13:07 Air, Tailwind і автоматичний rebuild
20:01 Роутинг та авторизація в Go
23:57 Як просувати новий сервіс і знайти перших користувачів
29:09 Новий Go-проєкт: проєктування бази з Claude
33:40 Бізнес-логіка прямо в SQL-запитах
37:02 Динамічні фільтри та можливості SQLC
38:46 Кастомні типи в SQLC та pgx
42:53 Розробка з Claude, Codex і GPT
46:18 VS Code, Vim та GoLand — що зручніше
57:17 Спліти, навігація та новий workflow розробника
1:03:26 Сліпий друк і дивні ефекти від клавіатури без букв
1:06:15 Паролі на 100 символів і правила безпеки
1:10:05 Брутфорс, витоки паролів та захист акаунтів
1:12:04 Фішинг на OLX та шахрайство з оплатами
1:17:30 Апаратні ключі безпеки та авторизація
1:21:30 Біометрія, Bitwarden і менеджери паролів
1:26:32 Сесії замість токенів: як організувати авторизацію
1:30:01 Сесія на три роки та примусовий relogin
1:33:08 VPN, Cloudflare та проблеми з IP
1:35:05 Bash-скрипт, який перетворився на великий тул
1:39:16 Чому маленькі CLI-утиліти зручно писати на Go
1:40:02 DDD, репозиторії та робота напряму через SQL
1:43:19 SQL-тренажери та навчання за допомогою AI
1:45:23 SQL-тригери та бізнес-логіка в базі даних
1:52:05 Чи потрібно програмісту знати алгоритми в епоху AI
1:55:07 Теорія проти практики в програмуванні
1:58:25 Знання, досвід і їхня реальна цінність
2:01:57 Чому важливо робити власні проєкти
2:05:10 Як би ми сьогодні починали вивчати програмування
2:06:10 Глибоке знання мови та питання на співбесідах
2:10:00 Завершення
У цьому випуску обговорюємо розробку власного проєкту на Go: від створення атмосфери стартапу без бюджету до практичної реалізації авторизації через сесії. Поговорили про генерацію зображень за допомогою ChatGPT, натхнення серіалом «Кремнієва долина», особливості роботи із сесіями, архітектурні рішення та помилки, які помічаєш уже після реалізації. Чесна розмова про компроміси в розробці та те, чому іноді «працює» важливіше за «ідеально».00:00 Офіс стартапу без грошей, згенерований ChatGPT
09:19 Покоління Wi-Fi, нові роутери та швидкість мережі
13:30 Тестуємо 5G та порівнюємо його з домашнім інтернетом
18:08 Тарифи Lifecell, мобільний інтернет і дзвінки
24:40 Авторизація та автентифікація — у чому різниця
26:54 Вхід без пароля через email або SMS
34:45 Чи можна увійти в Google без пароля
42:07 Наскільки зручна безпарольна автентифікація
44:22 Що таке OTP і якими бувають одноразові коди
47:09 Authenticator проти SMS: який варіант безпечніший
50:25 TOTP, часові пояси та проблеми під час подорожей
54:26 Таємний проєкт на Go та дедлайн на наступний випуск
01:00:20 Навіщо створювати багато невеликих pet-проєктів
01:04:00 Один невеликий застосунок щотижня
01:06:01 Повторне використання авторизації та інших компонентів
01:07:00 Як підключати власні пакети через Go Modules і GitHub
01:11:00 Тижневий дедлайн, MVP та завершені маленькі проєкти
01:14:25 Чому одну фічу краще робити повністю одному розробнику
01:16:20 Fullstack, розподіл ролей і навчання всередині команди
01:20:20 Junior проти senior: швидкість, досвід та якість рішень
01:22:30 Чому зайві абстракції шкодять проєкту
01:25:00 Професійне зростання та стагнація розробників
01:27:34 Окремі сервіси, мікросервіси та проєкт на Go
01:30:20 Виносимо автентифікацію в окремий сервіс
01:34:02 SDK для сервісу автентифікації та робота з JWT
01:37:30 Access token, refresh token і серверний logout
01:40:06 Як реалізувати blacklist для JWT
01:48:40 Навіщо JWT, якщо все одно використовується Redis
01:50:20 JWT payload і передавання даних між сервісами
01:55:00 Як синхронізувати користувачів між різними сервісами
02:03:25 JWT проти звичайних випадкових токенів
02:08:00 Blacklist проти зберігання всіх активних сесій
02:12:02 Кілобайти проти мегабайтів: чи важливий обсяг пам’яті
02:18:03 Як вибирати JWT або серверні сесії для нового проєкту
02:21:20 Прості вебзастосунки проти складних систем на кшталт Google
02:24:20 Повертаємося до вимог безпарольної автентифікації
02:29:05 Чи є однозначний переможець у суперечці про токени
02:36:17 Готові бібліотеки та фреймворки для автентифікації
02:41:05 Cookies, middleware та зберігання сесій
02:44:12 Як працює OTP-вхід у поточному проєкті
02:46:20 Термін життя cookie та зберігання session ID
02:48:17 Помилка архітектури: активна сесія лише на одному пристрої
02:49:39 Завершення випуску
Це запис розмови двох розробників на YouTube-подкасті про сучасну розробку: обговорюють нові AI-моделі (Codex, ChatGPT, Claude, Opus, Fabel), досвід використання AI-агентів для дебагу та рефакторингу, модульну архітектуру бекенду на Go, підхід Backend for Frontend, а також велику частину часу присвячують болючій темі — конфліктам міграцій бази даних (Django), індексам у Postgres, zero-downtime міграціям, і чому погано, коли кілька застосунків ходять в одну базу даних. Наприкінці — жарти про те, чому AI пише кращий код на Go, ніж на Python, та дорогі GUI-інструменти для баз даних.
00:00 Вступ, перевірка звуку, кіт Мартін
01:54 AI-моделі: Codex стає ChatGPT, новий GPT-5.6 Sol vs Opus 8 та Fabel
06:06 Codex сам розібрався з тестами через Docker
09:03 AGENT.md — як AI-агенти читають документацію проєкту
10:04 Чи потрібні “skills” для AI-агентів
12:10 Модульна архітектура застосунку на Go
19:22 Backend for Frontend (BFF) і рендеринг на бекенді
21:16 Конфлікти міграцій у Django: історія команди
32:12 Хто винен: людський фактор, а не технології
44:00 Стаття Мартіна Фаулера про еволюцію бази даних
1:00:00 Психологія впевненості на новому проєкті
1:10:00 Чи варто довго сидіти на одному місці роботи
1:15:00 Технічний борг і авторитет “консультанта ззовні”
1:22:00 Індекси в Postgres: блокування таблиці та CONCURRENTLY
1:30:00 Zero-downtime міграції для великих проєктів
1:36:00 Чому погано, коли кілька застосунків ходять в одну базу даних
1:44:00 Версіонування API та підхід “parallel change”
1:56:00 Вебхуки замість прямого обміну даними між сервісами (кейс “Дімон і Славік”)
2:07:00 Чому AI пише кращий код на Go, ніж на Python
2:13:00 Дорогі GUI-інструменти для роботи з базами даних
2:13:25 Фінал
From the publisher's feed