\u003C/p>\u003Cp>Ведущие: Коля Шабалин, Игорь Антонов и Лёша Симоненко.\u003C/p>\u003Cp>\u003Cbr />\u003C/p>\u003Cp>Ссылки и таймкоды:\u003C/p>\u003Cul>\u003Cli>00:00:25 \u003Ca href=\"https://tml.io/podcast_kod_surka\">Код сурка\u003C/a>\u003Cbr />\u003C/li>\u003Cli>00:01:06 \u003Ca href=\"https://eslint.org/blog/2023/10/deprecating-formatting-rules/\">ESLint 8.53 без правил форматирования\u003C/a>\u003C/li>\u003Cli>00:18:25 \u003Ca href=\"https://gomakethings.com/dont-disable-buttons/\">Не отключайте кнопку\u003C/a>\u003C/li>\u003Cli>00:30:06 \u003Ca href=\"https://daily.dev/blog/moving-back-to-react\">Возвращаемся на React\u003C/a>\u003C/li>\u003Cli>00:42:50 \u003Ca href=\"https://css-irl.info/css-nesting-is-here/\">CSS-вложенность уже здесь или пора отказываться от препроцессоров\u003C/a>\u003C/li>\u003Cli>00:54:28 \u003Ca href=\"https://www.epicweb.dev/why-you-should-probably-be-using-sqlite\">Почему мы должны использовать SQLite\u003C/a>\u003C/li>\u003C/ul>\u003Cp>\u003Cbr />\u003C/p>\u003Cp>Учитесь с нами в .html academy → \u003Ca href=\"https://htmlacademy.ru\">https://htmlacademy.ru\u003C/a>\u003C/p>\u003Cp>Узнавайте новое в журнале «Доктайп» → \u003Ca href=\"https://t.me/html_blog\">https://t.me/html_blog\u003C/a>\u003C/p>\u003Cp>А все вопросы о подкасте пишите на почту → podcast@htmlacademy.pro\u003C/p>","full","storage/podcasts/710d33d0-89c4-48d6-ba5a-da04d64b88e9/episodes/886719cf-6af3-4f3e-b346-8c183b9c5283.mp3",4300,"2023-12-26T08:55:57.834Z",1174,{"image_80":12,"image_180":13,"image_240":14,"image_600":15,"image_1280":16},{"id":73,"number":74,"season":21,"title":75,"description":76,"type":66,"image":10,"audio":77,"duration":78,"is_explicit":19,"code":74,"publish_date":79,"listenings":80,"is_private":19,"plans":44,"video":44,"images":81},"7c3a42a9-743c-446b-8139-13ba60baf763",27,"027. Быстрый Firefox, state of React и отладка в Node.js","\u003Cp>Обсудили зачем участвовать в опросе State of React 2023. Подсветили важность процедуры отладки приложений на Node.js и какими инструментами её производить. Разобрали стартовый шаблон для нового приложения на Node.js: зависимости, фреймворк Ts.ED, сценарии и так далее. Посмотрели что там с производительностью Firefox и много всякого другого.\u003C/p>\u003Cp>\u003Cbr />\u003C/p>\u003Cp>Ведущие: Коля Шабалин и Игорь Антонов.\u003C/p>\u003Cp>\u003Cbr />\u003C/p>\u003Cp>Ссылки и таймкоды:\u003C/p>\u003Cul>\u003Cli>00:00:40 \u003Ca href=\"https://survey.devographics.com/ru-RU/survey/state-of-react/2023\">State of React 2023\u003C/a>\u003Cbr />\u003C/li>\u003Cli>00:09:46 \u003Ca href=\"https://developers.google.com/search/blog/2023/10/mobile-first-is-here\">Приоритет индексации мобильных устройств в Google завершён\u003C/a>\u003C/li>\u003Cli>00:17:24 \u003Ca href=\"https://github.com/borjapazr/express-typescript-skeleton\">Шаблон для Node.js с TypeScript\u003C/a>\u003C/li>\u003Cli>00:28:00 \u003Ca href=\"https://hacks.mozilla.org/2023/10/down-and-to-the-right-firefox-got-faster-for-real-users-in-2023/\">Firefox стал быстрее\u003C/a>\u003C/li>\u003Cli>00:35:04 \u003Ca href=\"https://blog.openreplay.com/an-introduction-to-debugging-in-nodejs/\">Отладка в Node.js\u003C/a>\u003C/li>\u003Cli>00:45:48 \u003Ca href=\"https://github.com/sindresorhus/crypto-hash\">crypto-hash\u003C/a>\u003C/li>\u003Cli>00:48:12 \u003Ca href=\"https://github.com/express-rate-limit/express-slow-down\">express-slow-down для Express\u003C/a>\u003C/li>\u003C/ul>\u003Cp>\u003Cbr />\u003C/p>\u003Cp>Учитесь с нами в .html academy → \u003Ca href=\"https://htmlacademy.ru\">https://htmlacademy.ru\u003C/a>\u003C/p>\u003Cp>Узнавайте новое в журнале «Доктайп» → \u003Ca href=\"https://t.me/html_blog\">https://t.me/html_blog\u003C/a>\u003C/p>\u003Cp>А все вопросы о подкасте пишите на почту → podcast@htmlacademy.pro\u003C/p>","storage/podcasts/710d33d0-89c4-48d6-ba5a-da04d64b88e9/episodes/7c3a42a9-743c-446b-8139-13ba60baf763.mp3",3046,"2023-11-09T08:20:33.452Z",386,{"image_80":12,"image_180":13,"image_240":14,"image_600":15,"image_1280":16},{"id":83,"number":84,"season":21,"title":85,"description":86,"type":66,"image":10,"audio":87,"duration":88,"is_explicit":19,"code":84,"publish_date":89,"listenings":90,"is_private":19,"plans":44,"video":44,"images":91},"a33f4598-1dd3-4030-aed7-e8b605910f22",26,"026. Привет content-visibility и text-wrap, но прощай Buffer и Next.js","\u003Cp>Node.js 20 стала LTS релизом, а в следующий релиз завезли новый полезный флаг для автоматического определения модульной системы. Обсудили новые значения для свойства text-wrap: pretty, balanced и как они помогают улучшить выравнивание абзацев. Поговорили про чек-лист для начинающего React-разработчика и узнали почему пора переезжать с Buffer на Uint8Array. А в конце немного про Next.js.\u003C/p>\u003Cp>\u003Cbr />\u003C/p>\u003Cp>Ведущие: Коля Шабалин, Игорь Антонов и Лёша Симоненко.\u003C/p>\u003Cp>\u003Cbr />\u003C/p>\u003Cp>Ссылки и таймкоды:\u003C/p>\u003Cul>\u003Cli>00:00:51 \u003Ca href=\"https://webkit.org/blog/14721/release-notes-for-safari-technology-preview-181/\">content-visibility в следующем Safari?\u003C/a>\u003Cbr />\u003C/li>\u003Cli>00:11:48 \u003Ca href=\"https://github.com/nodejs/node/blob/main/doc/changelogs/CHANGELOG_V21.md#automatically-detect-and-run-esm-syntax\">Автоматическое определение CommonJS и ESM в Node.js\u003C/a>\u003C/li>\u003Cli>00:19:27 \u003Ca href=\"https://developer.chrome.com/blog/css-text-wrap-pretty/\">text-wrap: pretty\u003C/a>\u003C/li>\u003Cli>00:27:39 \u003Ca href=\"https://sindresorhus.com/blog/goodbye-nodejs-buffer\">Прощай, Node.js Buffer\u003C/a>\u003C/li>\u003Cli>00:35:34 \u003Ca href=\"https://developer.chrome.com/en/blog/hr-in-select/\">Select element: теперь с разделителями\u003C/a>\u003C/li>\u003Cli>00:40:40 \u003Ca href=\"https://alexkondov.com/tao-of-react/#use-a-data-fetching-library\">Tao of React — всё самое важное для настоящих разработчиков\u003C/a>\u003C/li>\u003Cli>00:57:02 \u003Ca href=\"https://www.epicweb.dev/why-i-wont-use-nextjs\">Why I Won't Use Next.js\u003C/a>\u003C/li>\u003C/ul>\u003Cp>\u003Cbr />\u003C/p>\u003Cp>Учитесь с нами в .html academy → \u003Ca href=\"https://htmlacademy.ru\">https://htmlacademy.ru\u003C/a>\u003C/p>\u003Cp>Узнавайте новое в журнале «Доктайп» → \u003Ca href=\"https://t.me/html_blog\">https://t.me/html_blog\u003C/a>\u003C/p>\u003Cp>А все вопросы о подкасте пишите на почту → podcast@htmlacademy.pro\u003C/p>","storage/podcasts/710d33d0-89c4-48d6-ba5a-da04d64b88e9/episodes/a33f4598-1dd3-4030-aed7-e8b605910f22.mp3",3912,"2023-11-01T08:00:46.993Z",300,{"image_80":12,"image_180":13,"image_240":14,"image_600":15,"image_1280":16},{"id":93,"number":94,"season":21,"title":95,"description":96,"type":66,"image":10,"audio":97,"duration":98,"is_explicit":19,"code":94,"publish_date":99,"listenings":100,"is_private":19,"plans":44,"video":44,"images":101},"971a91bf-8348-4738-86a1-f28992760bbb",25,"025. Потрясения Node.js 21, что скрывает CCC и вечная проблема с именованием","\u003Cp>Обсудили свежий релиз Node.js. А там стабильные fetch и Web Streams API, экспериментальный WebSocket клиент, важный флаг experimental-default-type и небольшие, но приятные обновления встроенного модуля тестирования. А ещё разобрали базовые принципы оптимизации, напомнили зачем нужен package-lock.json и снова думали как назвать переменные, на этот раз в CSS.\u003C/p>\u003Cp>\u003Cbr />\u003C/p>\u003Cp>Ведущие: Коля Шабалин, Игорь Антонов и Лёша Симоненко.\u003C/p>\u003Cp>\u003Cbr />\u003C/p>\u003Cp>Ссылки и таймкоды:\u003C/p>\u003Cul>\u003Cli>00:00:26 \u003Ca href=\"https://nodejs.org/en/blog/announcements/v21-release-announce\">Node.js 21\u003C/a>\u003Cbr />\u003C/li>\u003Cli>00:26:25 \u003Ca href=\"https://csswizardry.com/2023/10/the-three-c-concatenate-compress-cache/\">The Three C: Concatenate, Compress, Cache\u003C/a>\u003C/li>\u003Cli>00:48:43 \u003Ca href=\"https://medium.com/@robert.maiersilldorff/stop-using-npm-install-in-your-ci-cd-pipeline-ba0378bbebfb\">Stop using npm install in your CI/CD pipeline\u003C/a>\u003C/li>\u003Cli>00:57:04 \u003Ca href=\"https://jwdallas.com/posts/namingcssvariables/\">Именование переменных в CSS\u003C/a>\u003C/li>\u003C/ul>\u003Cp>\u003Cbr />\u003C/p>\u003Cp>Учитесь с нами в .html academy → \u003Ca href=\"https://htmlacademy.ru\">https://htmlacademy.ru\u003C/a>\u003C/p>\u003Cp>Узнавайте новое в журнале «Доктайп» → \u003Ca href=\"https://t.me/html_blog\">https://t.me/html_blog\u003C/a>\u003C/p>\u003Cp>А все вопросы о подкасте пишите на почту → podcast@htmlacademy.pro\u003C/p>","storage/podcasts/710d33d0-89c4-48d6-ba5a-da04d64b88e9/episodes/971a91bf-8348-4738-86a1-f28992760bbb.mp3",4083,"2023-10-23T12:28:37.945Z",308,{"image_80":12,"image_180":13,"image_240":14,"image_600":15,"image_1280":16},{"id":103,"number":104,"season":21,"title":105,"description":106,"type":66,"image":10,"audio":107,"duration":108,"is_explicit":19,"code":104,"publish_date":109,"listenings":110,"is_private":19,"plans":44,"video":44,"images":111},"01e43f94-409a-4ad1-ab3b-fb7ff5d03f3a",24,"024. Смотрим в будущее: Interop 2024, бета версия TypeScript 5.3, анти-паттерны конфигурирования в Node.js","\u003Cp>Interop 2024: что это такое, почему важно и как участвовать в голосовании. Разберём улучшения в бета-версии TypeScript 5.3: import attributes, type narrow для switch, оптимизация производительности, более тщательная проверка Symbol.hasInstance и другие полезные новинки. Про Photoshop в браузере и как это поможет разработчикам. В очередной раз обсудим селекторы и разберёмся как :not объединяет несколько селекторов. И это ещё не всё.\u003C/p>\u003Cp>\u003Cbr />\u003C/p>\u003Cp>Ведущие: Коля Шабалин и Игорь Антонов.\u003C/p>\u003Cp>\u003Cbr />\u003C/p>\u003Cp>Ссылки и таймкоды:\u003C/p>\u003Cul>\u003Cli>00:00:52 \u003Ca href=\"https://webkit.org/blog/14633/get-ready-for-interop-2024/\">Будьте готовы к Interop 2024\u003C/a>\u003Cbr />\u003C/li>\u003Cli>00:13:21 \u003Ca href=\"https://devblogs.microsoft.com/typescript/announcing-typescript-5-3-beta/\">Бета-версия TypeScript 5.3, улучшений много\u003C/a>\u003C/li>\u003Cli>00:40:33 \u003Ca href=\"https://developer.mozilla.org/en-US/blog/css-not-pseudo-multiple-selectors/\">Как :not() объединяет несколько селекторов\u003C/a>\u003C/li>\u003Cli>00:48:08 \u003Ca href=\"https://lirantal.com/blog/environment-variables-configuration-anti-patterns-node-js-applications\">Переменные окружения и анти-паттерны работы с конфигурацией\u003C/a>\u003C/li>\u003Cli>00:57:02 \u003Ca href=\"https://medium.com/@addyosmani/photoshop-is-now-on-the-web-38d70954365a\">Как Photoshop использует браузерные технологии на пределе возможностей\u003C/a>\u003C/li>\u003Cli>01:11:00 \u003Ca href=\"https://github.com/nodejs/TSC/issues/1445\">Должны ли ESM модули быть по умолчанию?\u003C/a>\u003C/li>\u003C/ul>\u003Cp>\u003Cbr />\u003C/p>\u003Cp>Учитесь с нами в .html academy → \u003Ca href=\"https://htmlacademy.ru\">https://htmlacademy.ru\u003C/a>\u003C/p>\u003Cp>Узнавайте новое в журнале «Доктайп» → \u003Ca href=\"https://t.me/html_blog\">https://t.me/html_blog\u003C/a>\u003C/p>\u003Cp>А все вопросы о подкасте пишите на почту → podcast@htmlacademy.pro\u003C/p>","storage/podcasts/710d33d0-89c4-48d6-ba5a-da04d64b88e9/episodes/01e43f94-409a-4ad1-ab3b-fb7ff5d03f3a.mp3",4589,"2023-10-16T10:48:03.987Z",296,{"image_80":12,"image_180":13,"image_240":14,"image_600":15,"image_1280":16},{"id":113,"number":114,"season":21,"title":115,"description":116,"type":66,"image":10,"audio":117,"duration":118,"is_explicit":19,"code":114,"publish_date":119,"listenings":120,"is_private":19,"plans":44,"video":44,"images":121},"75cb8a86-39e4-4682-b4c4-fd88c921782d",23,"023. Новинки Node.js 20.6, масштабирование адаптивных шрифтов, хайп вокруг Bun","\u003Cp>Node.js 20 научилась работать с .env-файлами из коробки, dotenv больше не нужен? К каким проблемам может привести не знание о NODE_ENV, обсуждаем явное и неявное. CSS и адаптивные шрифты: много математики и новые функции. Знакомство с убийцей (нет) Node.js. Обсуждаем первую версию Bun.\u003C/p>\u003Cp>\u003Cbr />\u003C/p>\u003Cp>Ведущие: Коля Шабалин и Игорь Антонов.\u003C/p>\u003Cp>\u003Cbr />\u003C/p>\u003Cp>Ссылки и таймкоды:\u003C/p>\u003Cul>\u003Cli>00:00:58 \u003Ca href=\"https://netbasal.com/node-js-v20-6-0-introducing-built-in-env-file-support-fb1b1de4f1fa\">Встроенная поддержка .env в Node.js 20.6\u003C/a>\u003Cbr />\u003C/li>\u003Cli>00:13:35 \u003Ca href=\"https://cjihrig.com/node_env_considered_harmful\">Ах этот вредный NODE_ENV или нет?\u003C/a>\u003C/li>\u003Cli>00:24:20 \u003Ca href=\"https://tobiasahlin.com/blog/responsive-fluid-css-type-scales/\">Адаптивный шрифт масштабируется с помощью компонуемых утилит CSS\u003C/a>\u003C/li>\u003Cli>00:40:55 \u003Ca href=\"https://bstefanski.com/blog/can-svg-symbols-affect-web-performance\">Могут ли символы SVG влиять на производительность в интернете?\u003C/a>\u003C/li>\u003Cli>00:58:42 \u003Ca href=\"https://dev.to/thejaredwilcurt/bun-hype-how-we-learned-nothing-from-yarn-2n3j\">Bun на хайпе\u003C/a>\u003C/li>\u003C/ul>\u003Cp>\u003Cbr />\u003C/p>\u003Cp>Учитесь с нами в .html academy → \u003Ca href=\"https://htmlacademy.ru\">https://htmlacademy.ru\u003C/a>\u003C/p>\u003Cp>Узнавайте новое в журнале «Доктайп» → \u003Ca href=\"https://t.me/html_blog\">https://t.me/html_blog\u003C/a>\u003C/p>\u003Cp>А все вопросы о подкасте пишите на почту → podcast@htmlacademy.pro\u003C/p>","storage/podcasts/710d33d0-89c4-48d6-ba5a-da04d64b88e9/episodes/75cb8a86-39e4-4682-b4c4-fd88c921782d.mp3",5136,"2023-10-09T11:16:55.664Z",272,{"image_80":12,"image_180":13,"image_240":14,"image_600":15,"image_1280":16},{"id":123,"number":124,"season":21,"title":125,"description":126,"type":66,"image":10,"audio":127,"duration":128,"is_explicit":19,"code":124,"publish_date":129,"listenings":110,"is_private":19,"plans":44,"video":44,"images":130},"66c2cf8b-cad5-4c55-9bb6-babfe7dba36d",22,"022. Я выкинул из проекта WOFF и вот что случилось, а также узнал как работает every и groupBy","\u003Cp>На этой неделе мы узнали, что WOFF больше не нужен. Вспомнили как использовать нативный lazy-loading и познакомились с типизацией кастомных свойств. В мире JS удивились от работы every() по спецификации, а также познакомились с новым методом groupBy().\u003C/p>\u003Cp>\u003Cbr />\u003C/p>\u003Cp>Ведущие: Коля Шабалин и Лёша Симоненко.\u003C/p>\u003Cp>\u003Cbr />\u003C/p>\u003Cp>Ссылки и таймкоды:\u003C/p>\u003Cul>\u003Cli>00:00:40 \u003Ca href=\"https://matthiasott.com/notes/woff-has-left-the-building\">WOFF покинул здание\u003C/a>\u003Cbr />\u003C/li>\u003Cli>00:09:58 \u003Ca href=\"https://cloudfour.com/thinks/stop-lazy-loading-product-and-hero-images/\">Прекратите ленивую загрузку продуктов и главных изображений\u003C/a>\u003C/li>\u003Cli>00:24:30 \u003Ca href=\"https://nerdy.dev/cant-break-this-design-system\">Системы безопасного проектирования CSS с помощью @property\u003C/a>\u003C/li>\u003Cli>00:34:23 \u003Ca href=\"https://humanwhocodes.com/blog/2023/09/javascript-wtf-why-does-every-return-true-for-empty-array/\">Почему every() возвращает true для пустых массивов?\u003C/a>\u003C/li>\u003Cli>00:43:56 \u003Ca href=\"https://philna.sh/blog/2023/09/14/javascript-array-grouping-methods/\">Object.groupBy() теперь в JavaScript\u003C/a>\u003C/li>\u003C/ul>\u003Cp>\u003Cbr />\u003C/p>\u003Cp>Учитесь с нами в .html academy → \u003Ca href=\"https://htmlacademy.ru\">https://htmlacademy.ru\u003C/a>\u003C/p>\u003Cp>Узнавайте новое в журнале «Доктайп» → \u003Ca href=\"https://t.me/html_blog\">https://t.me/html_blog\u003C/a>\u003C/p>\u003Cp>А все вопросы о подкасте пишите на почту → podcast@htmlacademy.pro\u003C/p>","storage/podcasts/710d33d0-89c4-48d6-ba5a-da04d64b88e9/episodes/66c2cf8b-cad5-4c55-9bb6-babfe7dba36d.mp3",3234,"2023-09-20T17:41:43.014Z",{"image_80":12,"image_180":13,"image_240":14,"image_600":15,"image_1280":16},{"id":132,"number":133,"season":21,"title":134,"description":135,"type":66,"image":10,"audio":136,"duration":137,"is_explicit":19,"code":133,"publish_date":138,"listenings":139,"is_private":19,"plans":44,"video":44,"images":140},"72224ab9-0517-46f5-a1a8-ebe8cfa5e351",21,"021. Алгоритмы сортировки и большая О, зачем нужен @scope и прощай nodemon","\u003Cp>В этот раз мы углубимся в разнообразные аспекты программирования. Узнаем, как эффективно сортировать данные, программировать с использованием CSS, и даже познакомимся с альтернативами хорошо известных инструментов. Также расскажем, как использовать JSX вне мира React, поделимся важностью альтернативного текста для изображений и дадим краткий обзор пересмотра библиотеки Lodash.\u003C/p>\u003Cp>\u003Cbr />\u003C/p>\u003Cp>Ведущие: Коля Шабалин и Игорь Антонов.\u003C/p>\u003Cp>\u003Cbr />\u003C/p>\u003Cp>Ссылки и таймкоды:\u003C/p>\u003Cul>\u003Cli>00:01:10 \u003Ca href=\"https://www.kirupa.com/sorts/quicksort.htm\">Алгоритмы сортировки\u003C/a>\u003Cbr />\u003C/li>\u003Cli>00:17:13 \u003Ca href=\"https://www.bram.us/2023/08/22/a-quick-introduction-to-css-scope/\">Краткое введение в CSS @scope\u003C/a>\u003C/li>\u003Cli>00:31:54 \u003Ca href=\"https://javascript.plainenglish.io/goodbye-nodemon-3c0a77a9f74c\">Прощай, nodemon или нет?\u003C/a>\u003C/li>\u003Cli>00:42:21 \u003Ca href=\"https://cloudfour.com/thinks/progressively-enhanced-form-validation-part-2-layering-in-javascript/\">Прогрессивно улучшенная проверка формы, часть 2: многоуровневое представление в JavaScript\u003C/a>\u003C/li>\u003Cli>00:59:08 \u003Ca href=\"https://chriscoyier.net/2023/08/07/jsx-without-react/\">JSX без React\u003C/a>\u003C/li>\u003Cli>01:06:04 \u003Ca href=\"https://alttexthalloffame.org/\">Зал славы альтернативного текста: чествование хорошо написанных описаний изображений\u003C/a>\u003C/li>\u003Cli>01:10:19 \u003Ca href=\"https://github.com/you-dont-need/You-Dont-Need-Lodash-Underscore#readme\">Вам не нужен Lodash\u003C/a>\u003C/li>\u003C/ul>\u003Cp>\u003Cbr />\u003C/p>\u003Cp>Учитесь с нами в .html academy → \u003Ca href=\"https://htmlacademy.ru\">https://htmlacademy.ru\u003C/a>\u003C/p>\u003Cp>Узнавайте новое в журнале «Доктайп» → \u003Ca href=\"https://t.me/html_blog\">https://t.me/html_blog\u003C/a>\u003C/p>\u003Cp>А все вопросы о подкасте пишите на почту → podcast@htmlacademy.pro\u003C/p>","storage/podcasts/710d33d0-89c4-48d6-ba5a-da04d64b88e9/episodes/72224ab9-0517-46f5-a1a8-ebe8cfa5e351.mp3",4495,"2023-09-11T09:34:17.947Z",303,{"image_80":12,"image_180":13,"image_240":14,"image_600":15,"image_1280":16},{"id":142,"number":143,"season":21,"title":144,"description":145,"type":66,"image":10,"audio":146,"duration":147,"is_explicit":19,"code":143,"publish_date":148,"listenings":149,"is_private":19,"plans":44,"video":44,"images":150},"21fd5eee-1a80-43d1-8c06-ceebe3a23da1",20,"020. TypeScript + React в документации, что есть в DevTools и как отменить подписку на событие","\u003Cp>Узнали как выбирать npm-пакеты с помощью Node.js Toolbox в контексте решаемой задачи. Обсудили возможности DevTools в разных браузерах. Узнали как применять API виртуальной клавиатуры в мобильных браузерах. Разобрали несколько способов как отметить подписку на события в DOM. Порадовались обновлённой документации по React (в неё добавили TypeScript). Подискутировали про Type Alias и Interface в TypeScript. А также узнали как улучшить проверку форм.\u003C/p>\u003Cp>\u003Cbr />\u003C/p>\u003Cp>Ведущие: Коля Шабалин и Игорь Антонов.\u003C/p>\u003Cp>\u003Cbr />\u003C/p>\u003Cp>Ссылки и таймкоды:\u003C/p>\u003Cul>\u003Cli>00:01:02 \u003Ca href=\"https://nodejstoolbox.com/\">Node.js Toolbox\u003C/a>\u003Cbr />\u003C/li>\u003Cli>00:17:23 \u003Ca href=\"https://www.canidev.tools/\">Могу ли я использовать DevTools\u003C/a>\u003C/li>\u003Cli>00:31:02 \u003Ca href=\"https://ishadeed.com/article/virtual-keyboard-api/\">API виртуальной клавиатуры\u003C/a>\u003C/li>\u003Cli>00:40:33 \u003Ca href=\"https://www.macarthur.me/posts/options-for-removing-event-listeners\">You’ve Got Options for Removing Event Listeners\u003C/a>\u003C/li>\u003Cli>00:58:56 \u003Ca href=\"https://react.dev/learn/typescript\">React + TypeScript. Обновлена официальная документация по React\u003C/a>\u003C/li>\u003Cli>01:04:21 \u003Ca href=\"https://www.totaltypescript.com/type-vs-interface-which-should-you-use\">Type vs Interface: Which Should You Use In 2023?\u003C/a>\u003C/li>\u003Cli>01:14:15 \u003Ca href=\"https://cloudfour.com/thinks/progressively-enhanced-form-validation-part-1-html-and-css/\">Постепенно улучшенная проверка формы, часть 1: HTML и CSS\u003C/a>\u003C/li>\u003C/ul>\u003Cp>\u003Cbr />\u003C/p>\u003Cp>Учитесь с нами в .html academy → \u003Ca href=\"https://htmlacademy.ru\">https://htmlacademy.ru\u003C/a>\u003C/p>\u003Cp>Узнавайте новое в журнале «Доктайп» → \u003Ca href=\"https://t.me/html_blog\">https://t.me/html_blog\u003C/a>\u003C/p>\u003Cp>А все вопросы о подкасте пишите на почту → podcast@htmlacademy.pro\u003C/p>","storage/podcasts/710d33d0-89c4-48d6-ba5a-da04d64b88e9/episodes/21fd5eee-1a80-43d1-8c06-ceebe3a23da1.mp3",4906,"2023-09-05T14:11:39.451Z",298,{"image_80":12,"image_180":13,"image_240":14,"image_600":15,"image_1280":16},{"id":152,"number":153,"season":21,"title":154,"description":155,"type":66,"image":10,"audio":156,"duration":157,"is_explicit":19,"code":153,"publish_date":158,"listenings":159,"is_private":19,"plans":44,"video":44,"images":160},"01837df8-de22-490d-bd34-58a80da390ce",19,"019. Форматеры объектов, новая Призма и repeat() в гридах","\u003Cp>Обсудили форматеры в FF 116: зачем они нужны и кто ими пользуется. Вспомнили VanJS — микрофреймворк, который дорос до версии 1.0. Подробно разобрали функцию repeat() для использования в гридах. Устроили ликбез по ORM и разобрали нововведения в Prisma. Поговорили про новую спеку анимаций основанных на прокрутке и это ещё не всё…\u003C/p>\u003Cp>\u003Cbr />\u003C/p>\u003Cp>Ведущие: Коля Шабалин и Игорь Антонов.\u003C/p>\u003Cp>\u003Cbr />\u003C/p>\u003Cp>Ссылки и таймкоды:\u003C/p>\u003Cul>\u003Cli>00:00:25 \u003Ca href=\"https://fxdx.dev/firefox-devtools-custom-object-formatters/\">Пользовательские форматеры объектов в DevTools теперь и в Firefox\u003C/a>\u003Cbr />\u003C/li>\u003Cli>00:08:51 \u003Ca href=\"https://vanjs.org/\">VanJS дорос до версии 1.0\u003C/a>\u003C/li>\u003Cli>00:13:50 \u003Ca href=\"https://www.sitepoint.com/css-grid-repeat-function/\">Как использовать функцию repeat() гридов\u003C/a>\u003C/li>\u003Cli>00:34:09 \u003Ca href=\"https://github.com/prisma/prisma/releases/tag/5.1.0\">Вышла Prisma версии 5.1\u003C/a>\u003C/li>\u003Cli>00:52:26 \u003Ca href=\"https://tsup.egoist.dev/\">tsup\u003C/a>\u003C/li>\u003Cli>00:58:24 \u003Ca href=\"https://developer.mozilla.org/en-US/blog/scroll-progress-animations-in-css/\">Анимация прокрутки в CSS\u003C/a>\u003C/li>\u003Cli>01:07:06 \u003Ca href=\"https://github.com/RicardoValdovinos/vite-react-boilerplate\">Бойлерплейты: Hackathon Starter для Node.js, Vite React Boilerplate\u003C/a>\u003C/li>\u003C/ul>\u003Cp>\u003Cbr />\u003C/p>\u003Cp>Учитесь с нами в .html academy → \u003Ca href=\"https://htmlacademy.ru\">https://htmlacademy.ru\u003C/a>\u003C/p>\u003Cp>Узнавайте новое в журнале «Доктайп» → \u003Ca href=\"https://t.me/html_blog\">https://t.me/html_blog\u003C/a>\u003C/p>\u003Cp>А все вопросы о подкасте пишите на почту → podcast@htmlacademy.pro\u003C/p>","storage/podcasts/710d33d0-89c4-48d6-ba5a-da04d64b88e9/episodes/01837df8-de22-490d-bd34-58a80da390ce.mp3",4896,"2023-08-08T15:03:00.000Z",371,{"image_80":12,"image_180":13,"image_240":14,"image_600":15,"image_1280":16},{"id":162,"number":163,"season":21,"title":164,"description":165,"type":66,"image":10,"audio":166,"duration":167,"is_explicit":19,"code":163,"publish_date":168,"listenings":169,"is_private":19,"plans":44,"video":44,"images":170},"afa9974d-3962-4918-94b7-d584812a9033",18,"018. Дэн Абрамов ушёл из React, ужасы TypeScript и плохие нейроальты","\u003Cp>Обсудили уход Дэна Абрамова из React, книжку по TypeScript с 200+ главами, aspect-ratio нормального разработчика и поспорили насчёт генерации альт-текстов нейросетями.\u003C/p>\u003Cp>\u003Cbr />\u003C/p>\u003Cp>Ведущие: Коля Шабалин, Игорь Антонов и Женя Шкляр.\u003C/p>\u003Cp>\u003Cbr />\u003C/p>\u003Cp>Ссылки и таймкоды:\u003C/p>\u003Cul>\u003Cli>00:00:38 \u003Ca href=\"https://twitter.com/dan_abramov/status/1682029195843739649\">Дэн Абрамов перестаёт заниматься React и меняет место работы\u003C/a>\u003Cbr />\u003C/li>\u003Cli>00:03:41 \u003Ca href=\"https://www.w3.org/TR/png-3/\">Третье издание спецификации PNG было опубликовано как рабочий проект W3C\u003C/a>\u003C/li>\u003Cli>00:14:13 \u003Ca href=\"https://github.com/gibbok/typescript-book\">Краткая книга TypeScript\u003C/a>\u003C/li>\u003Cli>00:19:35 \u003Ca href=\"https://oida.dev/5-truths-about-typescript/\">5 неудобных истин о TypeScript\u003C/a>\u003C/li>\u003Cli>00:34:26 \u003Ca href=\"https://www.sitepoint.com/css-aspect-ratio/\">Как использовать aspect-ratio\u003C/a>\u003C/li>\u003Cli>00:43:45 \u003Ca href=\"https://dnikub.dev/blog/2023/the-problem-with-auto-generated-alternative-texts-for-images/\">Проблема с автоматически сгенерированными альтернативными текстами для изображений\u003C/a>\u003C/li>\u003C/ul>\u003Cp>\u003Cbr />\u003C/p>\u003Cp>Учитесь с нами в .html academy → \u003Ca href=\"https://htmlacademy.ru\">https://htmlacademy.ru\u003C/a>\u003C/p>\u003Cp>Узнавайте новое в журнале «Доктайп» → \u003Ca href=\"https://t.me/html_blog\">https://t.me/html_blog\u003C/a>\u003C/p>\u003Cp>А все вопросы о подкасте пишите на почту → podcast@htmlacademy.pro\u003C/p>","storage/podcasts/710d33d0-89c4-48d6-ba5a-da04d64b88e9/episodes/afa9974d-3962-4918-94b7-d584812a9033.mp3",3735,"2023-08-04T07:57:48.199Z",337,{"image_80":12,"image_180":13,"image_240":14,"image_600":15,"image_1280":16},{"id":172,"number":173,"season":21,"title":174,"description":175,"type":66,"image":10,"audio":176,"duration":177,"is_explicit":19,"code":173,"publish_date":178,"listenings":179,"is_private":19,"plans":44,"video":44,"images":180},"f5a8038d-4f0c-42ee-9a6c-7cb78c7afd7a",17,"017. Проблемы с тегами, новая версия Node.js и обновление @font-face","\u003Cp>Самый исторический выпуск за всё время — обсудили историю TypeScript, HTML, XHTML и немного Node.js. А кроме этого обсудили немного новостей о свежих возможностях веба и поговорили о будущем спецификаций.\u003C/p>\u003Cp>\u003Cbr />\u003C/p>\u003Cp>Ведущие: Коля Шабалин, Игорь Антонов и Женя Шкляр.\u003C/p>\u003Cp>\u003Cbr />\u003C/p>\u003Cp>Ссылки и таймкоды:\u003C/p>\u003Cul>\u003Cli>00:00:30 \u003Ca href=\"https://www.matuzo.at/blog/2023/zero-width-height-skip/\">Визуально скрытые элементы единичной ширины\u003C/a>\u003Cbr />\u003C/li>\u003Cli>00:05:03 \u003Ca href=\"https://nodejs.org/en/blog/release/v18.17.0\">Node 18.17 LTS\u003C/a>\u003C/li>\u003Cli>00:07:08 \u003Ca href=\"https://github.com/tc39/proposal-promise-with-resolvers\">Promise.withResolvers\u003C/a>\u003C/li>\u003Cli>00:17:03 \u003Ca href=\"https://fullystacked.net/posts/new-font-face-syntax/\">Новый синтаксис @font-face\u003C/a>\u003C/li>\u003Cli>00:27:27 \u003Ca href=\"https://github.com/readme/featured/typescript-gradual-types\">История TypeScript\u003C/a>\u003C/li>\u003Cli>00:48:50 \u003Ca href=\"https://jakearchibald.com/2023/against-self-closing-tags-in-html/\">Дело против самозакрывющихся тегов\u003C/a>\u003C/li>\u003C/ul>\u003Cp>\u003Cbr />\u003C/p>\u003Cp>Учитесь с нами в .html academy → \u003Ca href=\"https://htmlacademy.ru\">https://htmlacademy.ru\u003C/a>\u003C/p>\u003Cp>Узнавайте новое в журнале «Доктайп» → \u003Ca href=\"https://t.me/html_blog\">https://t.me/html_blog\u003C/a>\u003C/p>\u003Cp>А все вопросы о подкасте пишите на почту → podcast@htmlacademy.pro\u003C/p>","storage/podcasts/710d33d0-89c4-48d6-ba5a-da04d64b88e9/episodes/f5a8038d-4f0c-42ee-9a6c-7cb78c7afd7a.mp3",3994,"2023-07-27T12:45:17.365Z",324,{"image_80":12,"image_180":13,"image_240":14,"image_600":15,"image_1280":16},{"id":182,"number":183,"season":21,"title":184,"description":185,"type":66,"image":10,"audio":186,"duration":187,"is_explicit":19,"code":183,"publish_date":188,"listenings":189,"is_private":19,"plans":44,"video":44,"images":190},"be6d5b79-e06f-45da-8fd9-6856b3ea45e6",16,"016. Обновки для Prettier и Vite, что принёс WCAG 2.2 и как выбрать фреймворк","\u003Cp>В этом выпуске обсудим состояние пакетов в NPM. Поворчим о работе с DOM. Узнаем про новые единицы измерения в CSS. Поговорим о новинках Pretier и Vite. Обсудим нововведения WCAG 2.2. Сравним примеры кода различных фреймворках и поговорим про Firefox 115.\u003C/p>\u003Cp>\u003Cbr />\u003C/p>\u003Cp>Ведущие: Коля Шабалин и Игорь Антонов.\u003C/p>\u003Cp>\u003Cbr />\u003C/p>\u003Cp>Ссылки и таймкоды:\u003C/p>\u003Cul>\u003Cli>00:01:00 \u003Ca href=\"https://blog.sandworm.dev/state-of-npm-2023-the-overview\">State Of npm 2023\u003C/a>\u003Cbr />\u003C/li>\u003Cli>00:10:30 \u003Ca href=\"https://www.crockford.com/domjs.html\">Plain Old JavaScript and the DOM\u003C/a>\u003C/li>\u003Cli>00:19:13 \u003Ca href=\"https://ishadeed.com/article/new-viewport-units/\">Новые единицы измерения области просмотра\u003C/a>\u003C/li>\u003Cli>00:29:43 \u003Ca href=\"https://prettier.io/blog/2023/07/05/3.0.0.html\">Prettier 3.0. Hello, ECMAScript Modules\u003C/a>\u003C/li>\u003Cli>00:41:00 \u003Ca href=\"https://github.com/vitejs/vite/blob/v4.4.0/packages/vite/CHANGELOG.md\">Vite 4.4\u003C/a>\u003C/li>\u003Cli>00:51:40 \u003Ca href=\"https://medium.com/design-ibm/wcag-2-2-quick-and-simplified-73c3ff66b065\">WCAG 2.2: Быстрый и упрощенный\u003C/a>\u003C/li>\u003Cli>01:03:20 \u003Ca href=\"https://component-party.dev/\">Component Party Dev\u003C/a>\u003C/li>\u003Cli>01:08:56 \u003Ca href=\"https://www.mozilla.org/en-US/firefox/115.0/releasenotes/#:~:text=toolbox%20(bug).-,Web%20Platform,-The%20builtin%20editor\">ECMAScript 2023 и Firefox 115\u003C/a>\u003C/li>\u003C/ul>\u003Cp>\u003Cbr />\u003C/p>\u003Cp>Учитесь с нами в .html academy → \u003Ca href=\"https://htmlacademy.ru\">https://htmlacademy.ru\u003C/a>\u003C/p>\u003Cp>Узнавайте новое в журнале «Доктайп» → \u003Ca href=\"https://t.me/html_blog\">https://t.me/html_blog\u003C/a>\u003C/p>\u003Cp>А все вопросы о подкасте пишите на почту → podcast@htmlacademy.pro\u003C/p>","storage/podcasts/710d33d0-89c4-48d6-ba5a-da04d64b88e9/episodes/be6d5b79-e06f-45da-8fd9-6856b3ea45e6.mp3",4248,"2023-07-24T15:52:14.069Z",269,{"image_80":12,"image_180":13,"image_240":14,"image_600":15,"image_1280":16},{"id":192,"number":193,"season":21,"title":194,"description":195,"type":66,"image":10,"audio":196,"duration":197,"is_explicit":19,"code":193,"publish_date":198,"listenings":199,"is_private":19,"plans":44,"video":44,"images":200},"08a275cc-8edf-4dae-8420-4f4a7163d2c7",15,"015. CommonJS мешает, using уже в Node.js, а атрибут decoding ничего не даёт","\u003Cp>Теперь и в Node.js добавляют поддержку ключевого слова using и другие новинки версии 20.4. А также обсудим чем так вреден CommonJS и почему мы до сих пор не можем перейти на ECMAScript Modules. Попытаемся разобраться что делает атрибут decoding, обсудим новую документацию React.js, посмотрим на инструмент для подбора шрифтов, а закончим всё встроенным в Node.js модулем для тестирования. Поехали!\u003C/p>\u003Cp>\u003Cbr />\u003C/p>\u003Cp>Ведущие: Коля Шабалин, Игорь Антонов и Лёша Симоненко.\u003C/p>\u003Cp>\u003Cbr />\u003C/p>\u003Cp>Ссылки и таймкоды:\u003C/p>\u003Cul>\u003Cli>00:00:28 \u003Ca href=\"https://nodejs.org/en/blog/release/v20.4.0\">Релиз Node.js 20.4.0 с новым using для TypeScript\u003C/a>\u003Cbr />\u003C/li>\u003Cli>00:13:23 \u003Ca href=\"https://deno.com/blog/commonjs-is-hurting-javascript\">CommonJS вредит JavaScript\u003C/a>\u003C/li>\u003Cli>00:33:07 \u003Ca href=\"https://www.tunetheweb.com/blog/what-does-the-image-decoding-attribute-actually-do/\">Что делает атрибут decoding с изображениями?\u003C/a>\u003C/li>\u003Cli>00:48:04 \u003Ca href=\"https://github.com/reactjs/react.dev/pull/6120\">В документации React.js рекомендации по использованию TypeScript\u003C/a>\u003C/li>\u003Cli>01:00:00 \u003Ca href=\"https://www.industrialempathy.com/perfect-ish-font-fallback/?font=Metal%20Mania\">Как проверить кумулятивный сдвиг шрифтов\u003C/a>\u003C/li>\u003Cli>01:06:35 \u003Ca href=\"https://cjihrig.com/test_runner_expectations\">Что ждать и чего не ждать от встроенного в Node.js Test Runner\u003C/a>\u003C/li>\u003C/ul>\u003Cp>\u003Cbr />\u003C/p>\u003Cp>Учитесь с нами в .html academy → \u003Ca href=\"https://htmlacademy.ru\">https://htmlacademy.ru\u003C/a>\u003C/p>\u003Cp>Узнавайте новое в журнале «Доктайп» → \u003Ca href=\"https://t.me/html_blog\">https://t.me/html_blog\u003C/a>\u003C/p>\u003Cp>А все вопросы о подкасте пишите на почту → podcast@htmlacademy.pro\u003C/p>","storage/podcasts/710d33d0-89c4-48d6-ba5a-da04d64b88e9/episodes/08a275cc-8edf-4dae-8420-4f4a7163d2c7.mp3",4348,"2023-07-21T09:49:43.903Z",246,{"image_80":12,"image_180":13,"image_240":14,"image_600":15,"image_1280":16},{"id":202,"number":24,"season":21,"title":203,"description":204,"type":66,"image":10,"audio":205,"duration":206,"is_explicit":19,"code":24,"publish_date":207,"listenings":208,"is_private":19,"plans":44,"video":44,"images":209},"62e7cd97-9145-4aaa-b5b1-453b8e64f1e6","014. Юбилейный NestJS, using в TypeScript и классный color-mix()","\u003Cp>В этом выпуске обсудим юбилейный релиз NestJS, разберёмся кому он нужен и в каких случаях не хватает Express.js. Разберёмся с новым ключевым словом using, который сначала заезжает в TypeScript, а потом и в спецификацию JavaScript. Попробуем понять как и где можно использовать функцию color-mix(). А в конце попробуем понять зачем команда React.js пыталась пропатчить Fetch API и чем всё закончилось. Начинаем!\u003C/p>\u003Cp>\u003Cbr />\u003C/p>\u003Cp>Ведущие: Коля Шабалин, Игорь Антонов и Лёша Симоненко.\u003C/p>\u003Cp>\u003Cbr />\u003C/p>\u003Cp>Ссылки и таймкоды:\u003C/p>\u003Cul>\u003Cli>00:01:00 \u003Ca href=\"https://trilon.io/blog/nestjs-10-is-now-available\">Юбилейный NestJS\u003C/a>\u003Cbr />\u003C/li>\u003Cli>00:23:38 \u003Ca href=\"https://www.totaltypescript.com/typescript-5-2-new-keyword-using\">Ключевое слово using в TypeScript 5.2\u003C/a>\u003C/li>\u003Cli>00:43:11 \u003Ca href=\"https://ryantrimble.com/blog/mixing-colors-with-css/\">Смешиваем цвета в CSS с помощью color-mix()\u003C/a>\u003C/li>\u003Cli>00:53:42 \u003Ca href=\"https://una.im/color-mix-opacity/\">color-mix() и непрозрачность\u003C/a>\u003C/li>\u003Cli>00:54:45 \u003Ca href=\"https://developer.mozilla.org/en-US/blog/learn-css-hues-colors-hsl/\">Как использовать оттенки цветов с помощью HSL\u003C/a>\u003C/li>\u003Cli>01:02:13 \u003Ca href=\"https://github.com/facebook/react/issues/25573\">Зачем патчить Fetch API внутри React.js\u003C/a>\u003C/li>\u003C/ul>\u003Cp>\u003Cbr />\u003C/p>\u003Cp>Учитесь с нами в .html academy → \u003Ca href=\"https://htmlacademy.ru\">https://htmlacademy.ru\u003C/a>\u003C/p>\u003Cp>Узнавайте новое в журнале «Доктайп» → \u003Ca href=\"https://t.me/html_blog\">https://t.me/html_blog\u003C/a>\u003C/p>\u003Cp>А все вопросы о подкасте пишите на почту → podcast@htmlacademy.pro\u003C/p>","storage/podcasts/710d33d0-89c4-48d6-ba5a-da04d64b88e9/episodes/62e7cd97-9145-4aaa-b5b1-453b8e64f1e6.mp3",4105,"2023-07-04T08:20:05.576Z",267,{"image_80":12,"image_180":13,"image_240":14,"image_600":15,"image_1280":16},{"id":211,"number":212,"season":21,"title":213,"description":214,"type":66,"image":10,"audio":215,"duration":216,"is_explicit":19,"code":212,"publish_date":217,"listenings":218,"is_private":19,"plans":44,"video":44,"images":219},"512b579d-8bb1-4937-944b-90e36c84b610",13,"013. Гифки всё, Sass всё, поля всё. Или нет?","\u003Cp>CSS, CSS, CSS, CSS, CSS и гифки.\u003C/p>\u003Cp>\u003Cbr />\u003C/p>\u003Cp>Ведущие: Коля Шабалин, Лёша Симоненко и Женя Шкляр.\u003C/p>\u003Cp>\u003Cbr />\u003C/p>\u003Cp>Ссылки и таймкоды:\u003C/p>\u003Cul>\u003Cli>00:01:12 \u003Ca href=\"https://survey.devographics.com/en-US/survey/state-of-css/2023\">Стартовал State of CSS\u003C/a>\u003Cbr />\u003C/li>\u003Cli>00:06:12 \u003Ca href=\"https://cloudfour.com/thinks/animated-gif-alternative/\">Альтернатива анимированному GIF\u003C/a>\u003C/li>\u003Cli>00:24:01 \u003Ca href=\"https://chriscoyier.net/2023/06/12/margin-trim-as-a-best-practice/\">Обрезка полей и лучшие практики\u003C/a>\u003C/li>\u003Cli>00:39:57 \u003Ca href=\"https://dev.to/robole/do-not-drop-sass-for-css-1ofm\">Не отказывайтесь от Sass ради CSS\u003C/a>\u003C/li>\u003C/ul>\u003Cp>\u003Cbr />\u003C/p>\u003Cp>Учитесь с нами в .html academy → \u003Ca href=\"https://htmlacademy.ru\">https://htmlacademy.ru\u003C/a>\u003C/p>\u003Cp>Узнавайте новое в журнале «Доктайп» → \u003Ca href=\"https://t.me/html_blog\">https://t.me/html_blog\u003C/a>\u003C/p>\u003Cp>А все вопросы о подкасте пишите на почту → podcast@htmlacademy.pro\u003C/p>","storage/podcasts/710d33d0-89c4-48d6-ba5a-da04d64b88e9/episodes/512b579d-8bb1-4937-944b-90e36c84b610.mp3",3204,"2023-06-27T10:45:35.742Z",264,{"image_80":12,"image_180":13,"image_240":14,"image_600":15,"image_1280":16},{"id":221,"number":222,"season":21,"title":223,"description":224,"type":66,"image":10,"audio":225,"duration":226,"is_explicit":19,"code":222,"publish_date":227,"listenings":228,"is_private":19,"plans":44,"video":44,"images":229},"8a7c3143-d328-47d8-97e2-5c6d738115e4",12,"012. Тупой автофокус, умные контейнейры, ещё один Chrome и опрос StackOverflow 2023","\u003Cp>В этом выпуске всё, как вы любите — удивляемся нелогичности фронтенда, радуемся логичности фронтенда, до лёгкой хрипотцы спорим про старые редакторы кода (привет, TextMate) и стараемся прогнозировать будущее на основе опроса StackOverflow. А Марк, который монтирует подкаст, сказал «Выпуск вышел замечательный, кстати. Очень забавный.». Пора проверять.\u003C/p>\u003Cp>\u003Cbr />\u003C/p>\u003Cp>Ведущие: Коля Шабалин, Лёша Симоненко и Женя Шкляр.\u003C/p>\u003Cp>\u003Cbr />\u003C/p>\u003Cp>Ссылки и таймкоды:\u003C/p>\u003Cul>\u003Cli>00:00:39 \u003Ca href=\"https://adamsilver.io/blog/the-problem-with-automatically-focusing-the-first-input-and-what-to-do-instead/\">Проблема с автофокусом и что делать с этим делать\u003C/a>\u003Cbr />\u003C/li>\u003Cli>00:16:11 \u003Ca href=\"https://developer.chrome.com/blog/chrome-for-testing/\">Отдельный Chrome для тестирования\u003C/a>\u003C/li>\u003Cli>00:26:26 \u003Ca href=\"https://zellwk.com/blog/container-queries-best-practice/\">Лучшие практики для контейнерных запросов\u003C/a>\u003C/li>\u003Cli>00:43:20 \u003Ca href=\"https://survey.stackoverflow.co/2023/\">Результаты опроса разработчиков Stack Overflow за 2023 год\u003C/a>\u003C/li>\u003C/ul>\u003Cp>\u003C/p>\u003Cp>\u003C/p>\u003Cp>\u003Cbr />\u003C/p>\u003Cp>\u003Cbr />\u003C/p>\u003Cp>Учитесь с нами в .html academy → \u003Ca href=\"https://htmlacademy.ru\">https://htmlacademy.ru\u003C/a>\u003C/p>\u003Cp>Узнавайте новое в журнале «Доктайп» → \u003Ca href=\"https://t.me/html_blog\">https://t.me/html_blog\u003C/a>\u003C/p>\u003Cp>А все вопросы о подкасте пишите на почту → podcast@htmlacademy.pro\u003C/p>","storage/podcasts/710d33d0-89c4-48d6-ba5a-da04d64b88e9/episodes/8a7c3143-d328-47d8-97e2-5c6d738115e4.mp3",4110,"2023-06-19T09:54:00.000Z",291,{"image_80":12,"image_180":13,"image_240":14,"image_600":15,"image_1280":16},{"id":231,"number":232,"season":21,"title":233,"description":234,"type":66,"image":10,"audio":235,"duration":236,"is_explicit":19,"code":232,"publish_date":237,"listenings":238,"is_private":19,"plans":44,"video":44,"images":239},"6afc0a45-2072-4645-8702-1e5f405c2870",11,"011. 20 лет вникуда, ужасы ch и TS 5.1","\u003Cp>Формулируем «правило технического подкаста» — любой технический подкаст однажды начнёт обсуждать высшее образование для программистов. Мы не стали исключением и обсудили важность высшего образования, устаревшие технологии (которые раньше были хорошими), важность @scope (к которому есть вопросики) и большие вопросики к единицам измерения ch. В общем, всё как всегда.\u003C/p>\u003Cp>\u003Cbr />\u003C/p>\u003Cp>Ведущие: Коля Шабалин, Игорь Антонов, Лёша Симоненко и Женя Шкляр.\u003C/p>\u003Cp>\u003Cbr />\u003C/p>\u003Cp>Ссылки и таймкоды:\u003C/p>\u003Cul>\u003Cli>00:01:22 \u003Ca href=\"https://habr.com/ru/companies/ruvds/articles/738316/\">Итоги двадцати лет работы — технический долг и неподдерживаемый код\u003C/a>\u003Cbr />\u003C/li>\u003Cli>00:16:59 \u003Ca href=\"https://fullystacked.net/posts/scope-in-css/\">Введение в @scope в CSS\u003C/a>\u003C/li>\u003Cli>00:34:41 \u003Ca href=\"https://devblogs.microsoft.com/typescript/announcing-typescript-5-1/\">TypeScript 5.1\u003C/a>\u003C/li>\u003Cli>00:45:05 \u003Ca href=\"https://cloudfour.com/thinks/watch-out-for-layout-shifts-with-ch-units/\">Остерегайтесь сдвига макета с помощью единиц измерения ch\u003C/a>\u003C/li>\u003Cli>00:56:59 \u003Ca href=\"https://github.com/reactwg/server-components/discussions/5\">React Server Components своими руками\u003C/a>\u003C/li>\u003C/ul>\u003Cp>\u003C/p>\u003Cp>\u003C/p>\u003Cp>\u003Cbr />\u003C/p>\u003Cp>\u003Cbr />\u003C/p>\u003Cp>Учитесь с нами в .html academy → \u003Ca href=\"https://htmlacademy.ru\">https://htmlacademy.ru\u003C/a>\u003C/p>\u003Cp>Узнавайте новое в журнале «Доктайп» → \u003Ca href=\"https://t.me/html_blog\">https://t.me/html_blog\u003C/a>\u003C/p>\u003Cp>А все вопросы о подкасте пишите на почту → podcast@htmlacademy.pro\u003C/p>","storage/podcasts/710d33d0-89c4-48d6-ba5a-da04d64b88e9/episodes/6afc0a45-2072-4645-8702-1e5f405c2870.mp3",4000,"2023-06-13T13:06:46.069Z",266,{"image_80":12,"image_180":13,"image_240":14,"image_600":15,"image_1280":16},{"id":241,"number":242,"season":21,"title":243,"description":244,"type":66,"image":10,"audio":245,"duration":246,"is_explicit":19,"code":242,"publish_date":247,"listenings":248,"is_private":19,"plans":44,"video":44,"images":249},"e0c08586-3a58-4a6c-b4ba-0b834f45701d",10,"010. Случайности не случайны, а цвета не цвета","\u003Cp>В этом выпуске мы во всём сомневались — случайны ли случайности в JavaScript, достаточно ли цветны привычные нам цвета в CSS и считаются ли комментарии комментариями, если в них всего одна строка.\u003C/p>\u003Cp>\u003Cbr />\u003C/p>\u003Cp>Но все сомнения, конечно, разрешились. Слушайте, чтобы узнать, к чему мы пришли.\u003C/p>\u003Cp>\u003Cbr />\u003C/p>\u003Cp>Ведущие: Коля Шабалин, Игорь Антонов, Лёша Симоненко и Женя Шкляр.\u003C/p>\u003Cp>\u003Cbr />\u003C/p>\u003Cp>Ссылки и таймкоды:\u003C/p>\u003Cul>\u003Cli>00:00:30 \u003Ca href=\"https://github.com/ChrisCavs/aimless.js\">Отсутствующая библиотека случайностей JavaScript\u003C/a>\u003C/li>\u003Cli>00:06:07 \u003Ca href=\"https://chriscoyier.net/2023/05/25/two-things-that-are-not-great-about-oklch/\">Две вещи, которые не очень хороши в OKLCH\u003C/a>\u003C/li>\u003Cli>00:17:15 \u003Ca href=\"https://2ality.com/2022/05/processing-arrays-non-destructively.html\">Какой метод для работы с массивами лучше\u003C/a>\u003C/li>\u003Cli>00:28:43 \u003Ca href=\"https://habr.com/ru/articles/739016/\">Изменения, которые ухудшают производительность и что с этим делать\u003C/a>\u003C/li>\u003Cli>00:41:00 \u003Ca href=\"https://blog.jim-nielsen.com/2023/single-line-comments-in-css/\">Почему в CSS нет однострочных комментариев?\u003C/a>\u003C/li>\u003Cli>00:52:00 \u003Ca href=\"https://qwik.builder.io/\">Замена для React.js\u003C/a>\u003C/li>\u003C/ul>\u003Cp>\u003C/p>\u003Cp>\u003C/p>\u003Cp>\u003Cbr />\u003C/p>\u003Cp>\u003Cbr />\u003C/p>\u003Cp>Учитесь с нами в .html academy → \u003Ca href=\"https://htmlacademy.ru\">https://htmlacademy.ru\u003C/a>\u003C/p>\u003Cp>Узнавайте новое в журнале «Доктайп» → \u003Ca href=\"https://t.me/html_blog\">https://t.me/html_blog\u003C/a>\u003C/p>\u003Cp>А все вопросы о подкасте пишите на почту → podcast@htmlacademy.pro\u003C/p>","storage/podcasts/710d33d0-89c4-48d6-ba5a-da04d64b88e9/episodes/e0c08586-3a58-4a6c-b4ba-0b834f45701d.mp3",3905,"2023-06-07T12:09:10.169Z",281,{"image_80":12,"image_180":13,"image_240":14,"image_600":15,"image_1280":16},{"id":251,"number":252,"season":21,"title":253,"description":254,"type":66,"image":10,"audio":255,"duration":256,"is_explicit":19,"code":252,"publish_date":257,"listenings":258,"is_private":19,"plans":44,"video":44,"images":259},"1a46c626-27a6-4f55-8e0b-d31c0531bc10",9,"009. Быстрый Node.js, адаптация без медиавыражений, вертикальный ритм и практики отличных форм","Смотрим графики и рефлексируем о производительности Node.js. Разбираемся с лучшими практиками создания хороших форм. Делаем адаптацию без медиавыражений, а вертикальный ритм с помощью новых единиц измерений. В очередной раз убеждаемся: сначала изучаем JavaScript, потом React.\u003Cbr />\u003Cp>\u003Cbr />\u003C/p>\u003Cp>Ведущие: Коля Шабалин, Игорь Антонов и Лёша Симоненко.\u003C/p>\u003Cp>\u003Cbr />\u003C/p>\u003Cp>Ссылки и таймкоды:\u003C/p>\u003Cp>\u003C/p>\u003Cul>\u003Cli>00:00:47 \u003Ca href=\"https://blog.rafaelgss.dev/state-of-nodejs-performance-2023\">State of Node.js Performance 2023\u003C/a>\u003Cbr />\u003C/li>\u003Cli>00:17:46 \u003Ca href=\"https://evilmartians.com/chronicles/html-best-practices-for-login-and-signup-forms\">Одиннадцать лучших практик HTML для форм входа и регистрации\u003C/a>\u003C/li>\u003Cli>00:35:12 \u003Ca href=\"https://developer.chrome.com/blog/introducing-popover-api/\">Введение в popover API\u003C/a>\u003C/li>\u003Cli>00:51:33 \u003Ca href=\"https://www.sitepoint.com/responsive-css-layout-grids-without-media-queries/\">Адаптивные сетки CSS без медиавыражений\u003C/a>\u003C/li>\u003Cli>00:59:22 \u003Ca href=\"https://pawelgrzybek.com/vertical-rhythm-using-css-lh-and-rlh-units/\">Вертикальный ритм с использованием единиц CSS lh и rlh\u003C/a>\u003C/li>\u003Cli>01:03:01 \u003Ca href=\"https://javascript.plainenglish.io/its-2023-please-stop-using-for-conditional-rendering-in-react-b588a09ebb17\">Its 2023, Please Stop Using operator && for Conditional Rendering in React\u003C/a>\u003C/li>\u003C/ul>\u003Cp>\u003C/p>\u003Cp>\u003C/p>\u003Cp>\u003Cbr />\u003C/p>\u003Cp>\u003Cbr />\u003C/p>\u003Cp>Учитесь с нами в .html academy → \u003Ca href=\"https://htmlacademy.ru\">https://htmlacademy.ru\u003C/a>\u003C/p>\u003Cp>Узнавайте новое в журнале «Доктайп» → \u003Ca href=\"https://t.me/html_blog\">https://t.me/html_blog\u003C/a>\u003C/p>\u003Cp>А все вопросы о подкасте пишите на почту → podcast@htmlacademy.pro\u003C/p>","storage/podcasts/710d33d0-89c4-48d6-ba5a-da04d64b88e9/episodes/1a46c626-27a6-4f55-8e0b-d31c0531bc10.mp3",4165,"2023-05-29T09:24:59.463Z",276,{"image_80":12,"image_180":13,"image_240":14,"image_600":15,"image_1280":16},{"id":261,"number":262,"season":21,"title":263,"description":264,"type":66,"image":10,"audio":265,"duration":266,"is_explicit":19,"code":262,"publish_date":267,"listenings":268,"is_private":19,"plans":44,"video":44,"images":269},"88c13d6f-ece5-402d-af83-c2cc16f50043",8,"008. Возвращение jQuery, новинки Google I/O и условный CSS","Выпуск, в котором мы словно вернулись в 2009 — обсуждаем новую версию jQuery и все её прелести, новинки с конференции, где все говорили «эйай» и постепенно, но неотвратимо переходим к современности. В ней всё хорошо — условный CSS c :has() и классные интерфейсы в вебе.\u003Cbr />\u003Cp>\u003Cbr />\u003C/p>\u003Cp>Ведущие: Коля Шабалин, Игорь Антонов, Лёша Симоненко и Женя Шкляр.\u003C/p>\u003Cp>\u003Cbr />\u003C/p>\u003Cp>Ссылки и таймкоды:\u003C/p>\u003Cp>\u003C/p>\u003Cul>\u003Cli>00:00:37\u003Ca href=\"https://blog.jquery.com/2023/05/11/jquery-3-7-0-released-staying-in-order/\"> jQuery 3.7.0\u003C/a>\u003Cbr />\u003C/li>\u003Cli>00:13:48 \u003Ca href=\"https://developer.chrome.com/en/blog/whats-new-css-ui-2023/\">Что нового в CSS и пользовательском интерфейсе: Google I/O 2023 Edition\u003C/a>\u003C/li>\u003Cli>00:33:15 \u003Ca href=\"https://ishadeed.com/article/conditional-css-has-nth-last-child/\">Условный CSS с :has и :nth-last-child\u003C/a>\u003C/li>\u003Cli>00:46:07 \u003Ca href=\"https://www.pausly.app/blog/full-type-support-with-plain-javascript\">Типы в JavaScript без TypeScript\u003C/a>\u003C/li>\u003Cli>00:58:20 \u003Ca href=\"https://vanjs.org/\">Микрофреймворк VanJS\u003C/a>\u003C/li>\u003C/ul>\u003Cp>\u003C/p>\u003Cp>\u003C/p>\u003Cp>\u003Cbr />\u003C/p>\u003Cp>\u003Cbr />\u003C/p>\u003Cp>Учитесь с нами в .html academy → \u003Ca href=\"https://htmlacademy.ru\">https://htmlacademy.ru\u003C/a>\u003C/p>\u003Cp>Узнавайте новое в журнале «Доктайп» → \u003Ca href=\"https://t.me/html_blog\">https://t.me/html_blog\u003C/a>\u003C/p>\u003Cp>А все вопросы о подкасте пишите на почту → podcast@htmlacademy.pro\u003C/p>","storage/podcasts/710d33d0-89c4-48d6-ba5a-da04d64b88e9/episodes/88c13d6f-ece5-402d-af83-c2cc16f50043.mp3",3841,"2023-05-22T09:37:25.798Z",305,{"image_80":12,"image_180":13,"image_240":14,"image_600":15,"image_1280":16},{"id":271,"number":272,"season":21,"title":273,"description":274,"type":66,"image":10,"audio":275,"duration":276,"is_explicit":19,"code":272,"publish_date":277,"listenings":278,"is_private":19,"plans":44,"video":44,"images":279},"958928e1-2cd4-4d5f-a3c6-ccae7eb0fca5",7,"007. WebGPU в Chrome 113, борьба с большим DOM и канареечный React","В седьмом выпуске подробно разобрали Chrome 113, посчитали, сколько узлов в DOM у Академии, поругались на перекраску полос прокрутки и ужаснулись консольным приложениям на React. Классика!\u003Cbr />\u003Cp>\u003Cbr />\u003C/p>\u003Cp>Ведущие: Коля Шабалин, Игорь Антонов, Лёша Симоненко и Женя Шкляр.\u003C/p>\u003Cp>\u003Cbr />\u003C/p>\u003Cp>Ссылки и таймкоды:\u003C/p>\u003Cp>\u003C/p>\u003Cul>\u003Cli>00:00:26 \u003Ca href=\"https://developer.chrome.com/blog/new-in-chrome-113/\">Chrome 113 — что нового?\u003C/a>\u003C/li>\u003Cli>00:17:01 \u003Ca href=\"https://web.dev/dom-size-and-interactivity/\">Большой DOM не всегда к добру\u003C/a>\u003C/li>\u003Cli>00:35:02 \u003Ca href=\"https://react.dev/blog/2023/05/03/react-canaries\">Канареечный React\u003C/a>\u003C/li>\u003Cli>00:46:57 \u003Ca href=\"https://ericwbailey.website/published/dont-use-custom-css-scrollbars/\">Почему перекраска полос прокрутки — это плохо\u003C/a>\u003C/li>\u003Cli>00:54:39 \u003Ca href=\"https://github.com/vadimdemedes/ink\">Консольные приложения на React\u003C/a>\u003C/li>\u003C/ul>\u003Cp>\u003C/p>\u003Cp>\u003C/p>\u003Cp>\u003Cbr />\u003C/p>\u003Cp>\u003Cbr />\u003C/p>\u003Cp>Учитесь с нами в .html academy → \u003Ca href=\"https://htmlacademy.ru\">https://htmlacademy.ru\u003C/a>\u003C/p>\u003Cp>Узнавайте новое в журнале «Доктайп» → \u003Ca href=\"https://t.me/html_blog\">https://t.me/html_blog\u003C/a>\u003C/p>\u003Cp>А все вопросы о подкасте пишите на почту → podcast@htmlacademy.pro\u003C/p>","storage/podcasts/710d33d0-89c4-48d6-ba5a-da04d64b88e9/episodes/958928e1-2cd4-4d5f-a3c6-ccae7eb0fca5.mp3",3733,"2023-05-19T11:16:44.684Z",236,{"image_80":12,"image_180":13,"image_240":14,"image_600":15,"image_1280":16},{"id":281,"number":282,"season":21,"title":283,"description":284,"type":66,"image":10,"audio":285,"duration":286,"is_explicit":19,"code":282,"publish_date":287,"listenings":288,"is_private":19,"plans":44,"video":44,"images":289},"3b035417-5604-45f6-8002-71ae0d3e2d25",6,"006. Отказ от паролей, апдейт VS Code и менеджер версий Node.js","В шестом выпуске подкаста «Про код» Коля, Игорь, Лёша и Женя обсудили длинный список обновлений в VS Code, поговорили про любимые темы оформления и поругались из-за C#. Поняли, почему :root — не глобальный и зачем переключаться между версиями Node.js. Бонус-трек — история о том, как Лёша собирал проект с Node.js 0.12 в 2023.\u003Cbr />\u003Cp>\u003Cbr />\u003C/p>\u003Cp>Ведущие: Коля Шабалин, Игорь Антонов, Лёша Симоненко и Женя Шкляр.\u003C/p>\u003Cp>\u003Cbr />\u003C/p>\u003Cp>Ссылки и таймкоды:\u003C/p>\u003Cp>\u003C/p>\u003Cul>\u003Cli>00:00:35 \u003Ca href=\"https://code.visualstudio.com/updates/v1_75\">Обновки VS Code\u003C/a>\u003C/li>\u003Cli>00:21:30 \u003Ca href=\"https://habr.com/ru/news/733220/\">Passcode в Гугл-аккаунтах\u003C/a>\u003C/li>\u003Cli>00:29:35 \u003Ca href=\"https://kilianvalkhof.com/2023/css-html/root-isnt-global/\">:root не является глобальным\u003C/a>\u003C/li>\u003Cli>00:36:51 \u003Ca href=\"https://developer.chrome.com/en/blog/css-update-media-query/\">Медиавыражение update\u003C/a>\u003C/li>\u003Cli>00:43:45 \u003Ca href=\"https://stateful.com/blog/nodejs-version-managers-nvm-volta-asdf\">Менеджер версий Node.js\u003C/a>\u003C/li>\u003Cli>00:58:28 \u003Ca href=\"https://www.smashingmagazine.com/2023/04/accessible-tap-target-sizes-rage-taps-clicks/\">Памятка по доступным размерам элементов\u003C/a>\u003C/li>\u003C/ul>\u003Cp>\u003C/p>\u003Cp>\u003C/p>\u003Cp>\u003Cbr />\u003C/p>\u003Cp>\u003Cbr />\u003C/p>\u003Cp>Учитесь с нами в .html academy → \u003Ca href=\"https://htmlacademy.ru\">https://htmlacademy.ru\u003C/a>\u003C/p>\u003Cp>Узнавайте новое в журнале «Доктайп» → \u003Ca href=\"https://t.me/html_blog\">https://t.me/html_blog\u003C/a>\u003C/p>\u003Cp>А все вопросы о подкасте пишите на почту → podcast@htmlacademy.pro\u003C/p>","storage/podcasts/710d33d0-89c4-48d6-ba5a-da04d64b88e9/episodes/3b035417-5604-45f6-8002-71ae0d3e2d25.mp3",3977,"2023-05-08T08:24:18.387Z",330,{"image_80":12,"image_180":13,"image_240":14,"image_600":15,"image_1280":16},{"id":291,"number":23,"season":21,"title":292,"description":293,"type":66,"image":10,"audio":294,"duration":295,"is_explicit":19,"code":23,"publish_date":296,"listenings":297,"is_private":19,"plans":44,"video":44,"images":298},"0a4de152-78b2-4c4c-a427-ca19b2fef18e","005. В книжках о разработке всё не так, Rust заменяет Node.js и новый отладчик в Chrome DevTools","В пятом выпуске произошло страшное — мы придумали, как заменить Node.js с помощью Rust, поругались на книжки о разработке и старчески побурчали о доисторических текстовых редакторах. В перерывах между этим обсудили новости — например, Chrome 113 и Vite 4.3.\u003Cbr />\u003Cp>\u003Cbr />\u003C/p>\u003Cp>Ведущие: Игорь Антонов, Лёша Симоненко и Женя Шкляр.\u003C/p>\u003Cp>\u003Cbr />\u003C/p>\u003Cp>Ссылки и таймкоды:\u003C/p>\u003Cp>\u003C/p>\u003Cul>\u003Cli>00:00:45 \u003Ca href=\"https://developer.chrome.com/en/blog/breakpoint-ux-redesign/\">Зачем джуну новый отладчик в Chrome DevTools\u003C/a>\u003Cbr />\u003C/li>\u003Cli>00:20:42 \u003Ca href=\"https://vitejs.dev/blog/announcing-vite4-3.html\">Vite 4.3 и немного о судьбе Create React App\u003C/a>\u003Cbr />\u003C/li>\u003Cli>00:34:00 \u003Ca href=\"https://www.alxolr.com/articles/how-to-process-a-csv-file-five-times-faster-in-node-js-with-rust-and-napi-rs\">Rust быстрее Node.js обрабатывает CSV и другие невероятные открытия\u003C/a>\u003Cbr />\u003C/li>\u003Cli>00:46:31 Почему мы ничего не запоминаем из книг о разработке\u003C/li>\u003C/ul>\u003Cp>\u003C/p>\u003Cp>\u003C/p>\u003Cp>\u003Cbr />\u003C/p>\u003Cp>\u003Cbr />\u003C/p>\u003Cp>Учитесь с нами в .html academy → https://htmlacademy.ru\u003C/p>\u003Cp>Узнавайте новое в журнале «Доктайп» → https://t.me/html_blog\u003C/p>\u003Cp>А все вопросы о подкасте пишите на почту → podcast@htmlacademy.pro\u003C/p>","storage/podcasts/710d33d0-89c4-48d6-ba5a-da04d64b88e9/episodes/0a4de152-78b2-4c4c-a427-ca19b2fef18e.mp3",3671,"2023-05-03T15:10:06.546Z",263,{"image_80":12,"image_180":13,"image_240":14,"image_600":15,"image_1280":16},{"id":300,"number":301,"season":21,"title":302,"description":303,"type":66,"image":10,"audio":304,"duration":305,"is_explicit":19,"code":301,"publish_date":306,"listenings":307,"is_private":19,"plans":44,"video":44,"images":308},"d3daa151-51ba-4a02-92b4-871200a58a0c",4,"004. Наконец-то Node.js 20, новые (и старые) критерии WCAG и почти ничего интересного в TS 5.1","В четвёртом выпуске Женя, Коля и Игорь подробно обсудили 20 версию Node.js, обновление TypeScript 5.1, новые критерии доступности во WCAG 2.2 и шпаргалку по безопасности npm. И, кажется, пришли к выводу, что всё превращается в Сишарп.\u003Cp>\u003Cbr />\u003C/p>\u003Cp>Ведущие: Коля Шабалин, Игорь Антонов и Женя Шкляр.\u003C/p>\u003Cp>\u003Cbr />\u003C/p>\u003Cp>Ссылки и таймкоды:\u003C/p>\u003Cp>\u003C/p>\u003Cul>\u003Cli>00:00:43 \u003Ca href=\"https://nodejs.org/en/blog/announcements/v20-release-announce\">Долгожданная Node.js 20\u003C/a>\u003Cbr />\u003C/li>\u003Cli>00:21:25 \u003Ca href=\"https://accessibleweb.com/wcag/whats-new-in-wcag-2-2/\">Что нового во WCAG 2.2\u003C/a>\u003Cbr />\u003C/li>\u003Cli>00:42:31 \u003Ca href=\"https://devblogs.microsoft.com/typescript/announcing-typescript-5-1-beta/\">Бетка TypeScript 5.1\u003C/a>\u003Cbr />\u003C/li>\u003Cli>00:51:51 \u003Ca href=\"https://web.dev/fetch-priority/\">Чем хорош Fetch Priority API\u003C/a>\u003Cbr />\u003C/li>\u003Cli>01:00:39 \u003Ca href=\"https://cheatsheetseries.owasp.org/cheatsheets/NPM_Security_Cheat_Sheet.html\">Шпаргалка по безопасности в npm\u003C/a>\u003Cbr />\u003C/li>\u003C/ul>\u003Cp>\u003C/p>\u003Cp>\u003Cbr />\u003C/p>\u003Cp>\u003Cbr />\u003C/p>\u003Cp>Учитесь с нами в .html academy → https://htmlacademy.ru\u003C/p>\u003Cp>Узнавайте новое в журнале «Доктайп» → https://t.me/html_blog\u003C/p>\u003Cp>А все вопросы о подкасте пишите на почту → podcast@htmlacademy.pro\u003C/p>","storage/podcasts/710d33d0-89c4-48d6-ba5a-da04d64b88e9/episodes/d3daa151-51ba-4a02-92b4-871200a58a0c.mp3",4133,"2023-04-24T07:33:21.157Z",247,{"image_80":12,"image_180":13,"image_240":14,"image_600":15,"image_1280":16},{"id":310,"number":311,"season":21,"title":312,"description":313,"type":66,"image":10,"audio":314,"duration":315,"is_explicit":19,"code":311,"publish_date":316,"listenings":317,"is_private":19,"plans":44,"video":44,"images":318},"5753f723-2737-49e5-b540-c76f72700842",3,"003. Почта без таблиц, вездесущий React","Какое прекрасное время наступает — электронная почта без вёрстки таблицами, Реакт как новый Вордпресс, у длинных заголовков не свисают слова, а скринридеры хорошие и читают текст так, как на макете. Волшебно? Волшебно. В новом выпуске подкаста «Про код» разбираем, когда это случится и к чему приведёт веб-разработчиков.\u003Cp>\u003Cbr />\u003C/p>\u003Cp>Ведущие: Коля Шабалин, Игорь Антонов и Женя Шкляр.\u003C/p>\u003Cp>\u003Cbr />\u003C/p>\u003Cp>Ссылки и таймкоды:\u003C/p>\u003Cp>\u003C/p>\u003Cul>\u003Cli>00:00:45 \u003Ca href=\"https://fullystacked.net/posts/modern-html-email/\">Электронная почта без таблицы\u003C/a>\u003Cbr />\u003C/li>\u003Cli>00:09:41 \u003Ca href=\"https://www.seancdavis.com/posts/is-react-the-new-wordpress/\">Реакт — новый Вордпресс?\u003C/a>\u003Cbr />\u003C/li>\u003Cli>00:22:45 \u003Ca href=\"https://ishadeed.com/article/css-text-wrap-balance/\">Равное количество слов в строках и text-wrap:balance\u003C/a>\u003Cbr />\u003C/li>\u003Cli>00:34:00 \u003Ca href=\"https://www.sitepoint.com/shallow-vs-deep-copying-in-javascript/\">Отличия глубокого и поверхностного копирования в JS\u003C/a>\u003Cbr />\u003C/li>\u003Cli>00:45:30 \u003Ca href=\"https://developer.chrome.com/en/blog/reading-order/\">В вёрстке заголовок стоит под параграфом. В каком порядке их читать?\u003C/a>\u003Cbr />\u003C/li>\u003Cli>00:59:13 \u003Ca href=\"https://hsnice16.medium.com/why-you-should-not-use-export-default-in-javascript-5fc1534de36b\">Почему экспорт по умолчанию плохой\u003C/a>\u003Cbr />\u003C/li>\u003Cli>01:05:08 \u003Ca href=\"https://github.com/nodejs/node/pull/45038\">Релиз Node 18.16.0 (LTS)\u003C/a>\u003C/li>\u003C/ul>\u003Cp>\u003C/p>\u003Cp>\u003Cbr />\u003C/p>\u003Cp>\u003Cbr />\u003C/p>\u003Cp>Учитесь с нами в .html academy → \u003Ca href=\"https://htmlacademy.ru\">https://htmlacademy.ru\u003C/a>\u003C/p>\u003Cp>Узнавайте новое в журнале «Доктайп» → \u003Ca href=\"https://t.me/html_blog\">https://t.me/html_blog\u003C/a>\u003C/p>\u003Cp>А все вопросы о подкасте пишите на почту → \u003Ca href=\"mailto:podcast@htmlacademy.pro\">podcast@htmlacademy.pro\u003C/a>\u003C/p>","storage/podcasts/710d33d0-89c4-48d6-ba5a-da04d64b88e9/episodes/5753f723-2737-49e5-b540-c76f72700842.mp3",4316,"2023-04-17T06:33:54.582Z",240,{"image_80":12,"image_180":13,"image_240":14,"image_600":15,"image_1280":16},{"id":320,"number":321,"season":21,"title":322,"description":323,"type":66,"image":10,"audio":324,"duration":325,"is_explicit":19,"code":321,"publish_date":326,"listenings":327,"is_private":19,"plans":44,"video":44,"images":328},"92fc09ee-f6f4-42e0-9b52-b78bf7d07f09",2,"002. ES2023, React и как include исправит проблемы доступности в Figma","Комитет TC39 уже готов закрепить новинки ES2023. Пора знакомится с последними возможностями JavaScript, TypeScript и картами модулей. А ещё React задумался о переходе от роли библиотеки к фреймворку.\u003Cp>\u003Cbr />\u003C/p>\u003Cp>На всех шагах проектирования и создания сайта до сих пор большие проблемы с доступностью, но есть 5 советов и плагин include для Figma, которые помогут это исправить.\u003C/p>\u003Cp>\u003Cbr />\u003C/p>\u003Cp>Ведущие: Коля Шабалин, Игорь Антонов, Лёша Симоненко и Женя Шкляр.\u003C/p>\u003Cp>\u003Cbr />\u003C/p>\u003Cp>Ссылки и таймкоды:\u003C/p>\u003Cp>\u003C/p>\u003Cul>\u003Cli>00:01:00 \u003Ca href=\"https://tc39.es/ecma262/2023/\">Кандидат ES2023\u003C/a>\u003Cbr />\u003C/li>\u003Cli>00:16:50 \u003Ca href=\"https://betterprogramming.pub/all-javascript-and-typescript-features-of-the-last-3-years-629c57e73e42\">О важности новинок, которые можно использовать прямо сейчас\u003C/a>\u003Cbr />\u003C/li>\u003Cli>00:28:18 \u003Ca href=\"https://web.dev/import-maps-in-all-modern-browsers/\">JavaScript import maps\u003C/a>\u003Cbr />\u003C/li>\u003Cli>00:35:42 \u003Ca href=\"https://www.silvestar.codes/articles/five-pieces-of-advice-for-more-accessible-websites/\">Пять советов для более доступных веб-сайтов\u003C/a>\u003Cbr />\u003C/li>\u003Cli>00:50:01 \u003Ca href=\"https://tech.ebayinc.com/engineering/how-ebay-made-its-new-accessibility-tool-and-made-it-available-to-all/\">Как eBay создал свой новый инструмент доступности\u003C/a>\u003Cbr />\u003C/li>\u003Cli>00:53:01 \u003Ca href=\"https://www.robinwieruch.de/learning-react/\">Как учить React\u003C/a>\u003Cbr />\u003C/li>\u003C/ul>\u003Cp>\u003C/p>\u003Cp>\u003Cbr />\u003C/p>\u003Cp>Учитесь с нами в .html academy → https://htmlacademy.ru\u003C/p>\u003Cp>\u2028Узнавайте новое в журнале «Доктайп» → https://t.me/html_blog\u2028\u003C/p>\u003Cp>А все вопросы о подкасте пишите на почту → podcast@htmlacademy.pro\u003C/p>","storage/podcasts/710d33d0-89c4-48d6-ba5a-da04d64b88e9/episodes/92fc09ee-f6f4-42e0-9b52-b78bf7d07f09.mp3",3893,"2023-04-10T06:00:00.000Z",322,{"image_80":12,"image_180":13,"image_240":14,"image_600":15,"image_1280":16},{"id":330,"number":21,"season":21,"title":331,"description":332,"type":66,"image":10,"audio":333,"duration":334,"is_explicit":19,"code":21,"publish_date":335,"listenings":336,"is_private":19,"plans":44,"video":44,"images":337},"2f3c20dd-ed5b-4f32-a315-3e1d0a31263a","001. Конец фронтенда, одинаковые фреймворки и логические свойства","\u003Cp>Нейросети плотно внедряются в повседневную работу фронтенд-разработчика. Одни полны скепсиса и говорят, что нейросети захватят интернет, другие уже используют как помошников.\u003C/p>\r\n\u003Cp>Ведущие: Коля Шабалин, Игорь Антонов, Лёша Симоненко и Женя Шкляр.\u003C/p>\r\n\u003Cp>Ссылки и таймкоды:\u003C/p>\r\n\u003Cul>\r\n \u003Cli>00:01:05 \u003Ca href=\"https://www.joshwcomeau.com/blog/the-end-of-frontend-development/\">Конец фронтенда — действительно конец?\u003C/a>\u003C/li>\r\n \u003Cli>00:14:45 \u003Ca href=\"https://stackdiary.com/node-js-frameworks/\">Самые популярные фреймворки node.js на 2023 год\u003C/a>\u003C/li>\r\n \u003Cli>00:25:28 \u003Ca href=\"https://chriscoyier.net/2023/03/13/why-arent-logical-properties-taking-over-everything/\">Почему логические свойства не берут верх над всем?\u003C/a>\u003C/li>\r\n \u003Cli>00:37:57 \u003Ca href=\"https://pimpmytype.com/color-contrast/\">Как поправить цветовой контраст\u003C/a>\u003C/li>\r\n \u003Cli>00:45:58 \u003Ca href=\"https://devblogs.microsoft.com/typescript/announcing-typescript-5-0/\">Новинки TypeScript 5.0\u003C/a>\u003C/li>\r\n \u003Cli>00:58:13 \u003Ca href=\"https://bitsofco.de/when-is-focus-visible-visible/\">Как :focus-visible в четыре этапа принимает решение отображаться или нет\u003C/a>\u003C/li>\r\n\u003C/ul>\r\n\u003Cp>\u003Cbr />\u003C/p>\r\n\u003Cp>\u003Cbr />\u003C/p>\u003Cp>Учитесь с нами в .html academy → \u003Ca href=\"https://htmlacademy.ru\">https://htmlacademy.ru\u003C/a>\u003C/p>\u003Cp>Узнавайте новое в журнале «Доктайп» → \u003Ca href=\"https://t.me/html_blog\">https://t.me/html_blog\u003C/a>\u003C/p>\u003Cp>А все вопросы о подкасте пишите на почту → podcast@htmlacademy.pro\u003C/p>\u003Cp>\u003C/p>","storage/podcasts/710d33d0-89c4-48d6-ba5a-da04d64b88e9/episodes/2f3c20dd-ed5b-4f32-a315-3e1d0a31263a.mp3",3917,"2023-04-04T13:12:00.000Z",534,{"image_80":12,"image_180":13,"image_240":14,"image_600":15,"image_1280":16},["Reactive",339],{"$ssite-config":340},{"_priority":341,"env":345,"name":346,"url":347},{"name":342,"env":343,"url":344},-10,-15,-4,"production","podcast-website","https://procode.mave.digital/",["Set"],["ShallowReactive",350],{"fetchedPodcastData":-1,"fetchedEpisodesData":-1},"/",{"common":353},{"activeTab":354,"isShareActive":19,"episodes":61,"contentPosition":19,"podcast":4,"podcastSlug":355,"showPlayer":19,"activeTrack":44,"pauseTrack":19,"activeEpisode":44,"titleHeight":356,"website":357,"listenUrl":44,"isMobileShareActive":19,"isDataLoaded":34,"favicon":358,"customDomain":44,"episodesCount":20},"listen","procode",0,{"button_text":36,"button_link":37,"is_indexing":34,"ym_id":-1,"gtm_id":-1},""]