Розробка третьої хвилі – Telegram
Розробка третьої хвилі
376 subscribers
420 photos
138 videos
425 links
Українською про веб-технології, і не тільки.

Як кав'ярня, тільки про технології.

https://www.bohdanptyts.com/
Download Telegram
🖌 Деталізована стаття про CSS Relative Colors – як вони працюють і чому варто ними користуватися (як мінімум для покращення a11y).

📊 Інтерактивні приклади + детальний опис – що ще потрібно для розуміння?

Якщо ви часом помічали oklch у CSS, ця стаття теж пояснює, що це таке і навіщо воно вам. 🎨
👍4
🔺 У компанії-трикутника знову проблеми! Цього разу – вразливість CWE-285 (Improper Authorization), пов’язана з їхнім middleware.

Тред: https://x.com/javasquip/status/1903480443158298994

💥 Vercel знали про проблему у Next.js щонайменше 5 днів, але мовчали й виправили її тихо, без попередження спільноти. Через це інші платформи, зокрема Cloudflare та Netlify, змушені були екстрено реагувати, хоча могли б підготуватися заздалегідь. Така непрозорість підриває довіру до Next.js і ставить під загрозу користувачів, які навіть не знали, що їхні додатки були вразливі.

💬 У коментарях, звісно, є відповіді від представників Vercel, але це не дуже згладжує ситуацію.

📈 Все більше людей хочуть мігрувати з Vercel на інші платформи, зокрема Cloudflare – навіть з’явилися скрипти для автоматичної міграції.

Біжіть онолювати свої проєкти!
😱5
🔥 TypeORM, Sequelize... але чи чули ви про Drizzle ORM?

Багато хто знайомий з популярними ORM для роботи з базами даних, але чи звертали ви увагу на Drizzle ORM? Це проєкт, яким можна пишатися 🇺🇦 – його розробляють українці, а визнання вже світове.

https://orm.drizzle.team/

25K зірок на GitHub, постійні згадки у Twitter і навіть жарти про те, чому варто користуватися конкурентом – Prisma. А ще 1 мільйон скачувань на день у NPM! 🚀

📈 Це визнання заслужене – Drizzle ORM пропонує:
Високу типізацію
Неінтрузивне API
Максимальну продуктивність

💡 Якщо хочете дізнатися більше, на DOU є стаття про Андрія Шермана, одного з core-розробників Drizzle. Він повернувся в Україну 🇺🇦 зі Швеції під час війни – навіть писав про це у Twitter.

👀 Спробуйте Drizzle!
👍6❤‍🔥21🥰1
This media is not supported in your browser
VIEW IN TELEGRAM
🔥 Топовий блог про CSS, який варто читати!

Кілька років тому випадково натрапив на Josh Comeau, розробника з Канади, і підсів на його технічний блог. В основному він пише про CSS, але на такому рівні якості, що важко відірватися.

🎯 Рекомендую глянути його статтю про CSS Container Query – як завжди, там купа інтерактивних прикладів, які суттєво покращують розуміння матеріалу. А ще можна одразу підглянути код на живих прикладах!

📚 Крім блогу, у Josh є безкоштовна книга та кілька платних курсів.

🇺🇦 Окремий плюс – автор публічно підтримує Україну. Щоправда, нещодавно він пішов із Twitter на Bluesky, тож слідкую трохи менше.

Вартий уваги контент – обов’язково зацініть! 🚀
7🔥3
🚀 Ще один український open-source проєкт, який варто зацінити!

Нещодавно помітив у Twitter Валерія Стрільця, українського розробника, який активно контриб’ютить в open-source. Приємно бачити, як усе більше наших співвітчизників створюють круті продукти!

💡 Сьогодні поділюся одним із його проєктів – Permix.

🔑 Permix – це менеджер прав доступу, який працює з будь-яким фреймворком, як на клієнті, так і на сервері. API виглядає зручним та очевидним, а автор обіцяє гарну типізацію.

🔥 Виглядає як чудова альтернатива купі if/else блоків у коді.

Я ще не використовував його в продакшені, але документація виглядає солідно. Тож якщо шукаєте зручний спосіб керувати правами доступу – спробуйте Permix! 💪
🔥7👍51
🚀 За AI важче встежити, ніж за новими фреймворками!

Якщо ви працюєте з розробкою, то абревіатура MCP вам точно траплялась на очі.

🧠 Що таке MCP (Model Context Protocol)?
Компанія Anthropic, яка стоїть за моделлю Claude, кілька місяців тому випустила у відкритий доступ MCP – фактичний стандарт інтеграції LLM у продукти. А зараз кількість інтеграцій набрала шалених обертів.

📌 Простими словами:
MCP дозволяє конвертувати текстові запити користувачів у конкретні дії та повертати відповідь у потрібному форматі.

🔗 Як це працює?
💡 У MCP є три основні компоненти:

MCP клієнт – вхідна та вихідна точка для користувача (як API).

MCP сервер – обробляє промпти та виконує запити.

Інструменти – ресурси, до яких сервер має доступ (наприклад, Slack, база даних тощо).

🎥 Додаю коротке відео з мінімальним прикладом. Навіть без знання англійської все зрозуміло з коду та промптів! 🚀

(зображення: Matt Pocock)
👍61
Окрім веб розробки, я ще захоплююсь мікроконтролерами.

Хоча не можу похвалитися глибокими знаннями в цій сфері, мені вдалося зробити кілька ламп із керуванням через Apple HomeKit.

Завжди використовую ESP32 – це мікроконтролер із вбудованим Bluetooth та Wi-Fi. Він швидкий, відносно простий у використанні, але має величезний потенціал. Можливо Ви вже його використовуєте в якиось зі своїх приладів, наприклад 3D принтер Bambulab.

📖 Нещодавно натрапив на велику статтю, де автор “хакнув” пристрій на базі ESP32, щоб інтегрувати його в Home Assistant.

🤯 Стаття справді вражає!
Рівень знань, необхідний для цієї роботи, колосальний, і автор чітко пояснює всі нюанси з наочними прикладами.

Без спойлерів, але рекомендую до вечірнього читання! Як мінімум, для загального розвитку.
🔥15👀2
This media is not supported in your browser
VIEW IN TELEGRAM
🔥 Гарячий пиріжок у твіттері сьогодні – Silk!

Про нього вже написав автор Tailwind, також підтримку висловили автори Parcel, React Aria та інші відомі розробники.

🤔 Що таке Silk?
Це набір компонентів для sheet-style модалок. Одразу варто зазначити – продукт комерційний (потрібно платити 💸), але безкоштовний для некомерційного використання.

Мені дуже сподобався "Speet with Depth" – ефект, схожий на iOS. Виглядає гладко, ніби не підвисає, і видно, що автор вклав багато зусиль у доведення деталей до ідеалу.
А от документація в Notion, на мою думку, не найкраща ідея.

https://silkhq.co/
🔥4👍3
This media is not supported in your browser
VIEW IN TELEGRAM
🎉 Нарешті! Стилізація Select у Chrome 135 🎉

Починаєш новий проєкт, накидуєш компоненти – все гаразд. Але коли доходить до Select, починаються проблеми. Знайома ситуація? 🤯

Є купа готових бібліотек, кожна по-своєму вирішує проблему нестилізованого селекта. Розробники вигадували справжні акробатичні трюки, щоб отримати красивий Select із нормальною підтримкою клавіатури, a11y та задоволеними користувачами.

🔥 І ось гарні новини! Команда Chrome дарує нам можливість стилізувати Select – підтримка викочується починаючи з Chrome 135.

А якщо глянути останні демо з відео, то це взагалі фантастика! 🚀

А в коментарях додам приклад ⬇️
👍7
This media is not supported in your browser
VIEW IN TELEGRAM
Побачив в твіттері прикольний анімований текст. Автор пише що згенерував код з Grok, вийшло непогано.

Код можете знайти тут, а також додаю пост автора.
👍42😐1
This media is not supported in your browser
VIEW IN TELEGRAM
О, Dan Hollick – це прям знахідка для тих, хто любить візуально зрозумілі та круто оформлені технічні статті! 🎨

Я теж випадково натрапляв на його блог, коли заглиблювався в mesh gradient, але тепер бачу, що там купа цікавих речей.

Його допис про Shaders – це справді легкий вхід у тему, навіть якщо раніше не стикався з ними в роботі. Шейдери – це те, що часто асоціюється з гейм-девом, але, чесно кажучи, вони знаходять застосування і у веб-розробці, якщо знати, як їх використати.

📖 Стаття коротка, проста, написана зрозумілою мовою. Навіть Google Translate впорається, якщо потрібно.

Якщо тобі цікаві графіка, візуальні ефекти або просто хочеш розширити кругозір – точно варто зацінити! 🚀
5🔥2👍1
This media is not supported in your browser
VIEW IN TELEGRAM
Декілька місяців тому натрапив на класну рекомендацію на YouTube — канал Core Dumped, де автор розповідає про роботу комп’ютера на рівні, близькому до апаратної частини.

Якщо ви навчалися на спеціальностях, де ці теми розглядалися, то канал допоможе пригадати матеріал. Але навіть якщо ви з цим не стикалися і почали з високорівневих мов — не біда! Усі відео автора містять вичерпні, анімовані ілюстрації 🎥.

Одне з відео, яке мені найбільше запам’яталося, — це пояснення, чому потрібні потоки, навіть якщо процесор має лише одне ядро. У ньому ви краще зрозумієте, що таке Concurrency (це загалом корисно знати 😉), як потоки ділять ресурси, хто їх переключає і контролює. А також — отримаєте прикладні ситуації, які допоможуть легше це усвідомити.

https://www.youtube.com/watch?v=M9HHWFp84f0
👍12
Розробка третьої хвилі
Окрім веб розробки, я ще захоплююсь мікроконтролерами. Хоча не можу похвалитися глибокими знаннями в цій сфері, мені вдалося зробити кілька ламп із керуванням через Apple HomeKit. Завжди використовую ESP32 – це мікроконтролер із вбудованим Bluetooth та Wi…
Попередній пост про мікроконтролери набрав у середньому більше реакцій, тож починаю підозрювати, що ця тема вам цікава 🤔.

Тому сьогодні поділюся, увага, україномовним відео (і каналом) на цю тему! Лабораторія Самостійності — відносно невеликий канал, проте його контент дуже корисний, особливо для новачків.

https://www.youtube.com/watch?v=00xUYc4L0As

Додаю відео про той самий ESP32, але на каналі ви можете знайти й інші цікаві матеріали. А ще вони проводять стріми 🎙️ — інколи слухаю на фоні й теж дізнаюся щось нове!
🔥42
This media is not supported in your browser
VIEW IN TELEGRAM
Я думав, що всі вже це знають, але практика показала зворотне.

На GitHub можна відкрити будь-який репозиторій, натиснути клавішу крапки (.) (на macOS і, напевно, на Windows теж) — і репозиторій відкриється у вбудованому VS Code!

Постійно користуюся цим, коли потрібно розібратися, як працює якась бібліотека всередині. Ультразручно 🤩.

Але є нюанс: спочатку потрібно авторизуватися, інакше нічого не відбудеться.

Знали про цю фічу? 😉
11😁32
Airbnb опублікували статтю про міграцію ~3500 тестів з Enzyme на React Testing Library за допомогою LLM. Ручна міграція зайняла б півтора року, автоматизація скоротила її до шести тижнів.

Це вражає 🤯, адже Enzyme і RTL мають різну структуру та філософію тестування.

Якщо коротко, Airbnb використали LLM у циклічному процесі:
1️⃣ Виконувалась міграція
2️⃣ Система сама себе валідувала
3️⃣ LLM виправляв знайдені помилки

Цікава ідея, і, схоже, добре спрацювала. Хоча я трохи менше довіряв би таким тестам 🤔.

З власного досвіду: ми теж інколи використовуємо LLM для рефакторингу, зокрема з jscodeshift.

Наприклад, якщо потрібно перенести імпорти, які були локальними, але код мігрував у пакет 📦. Простий пошук не допоможе, бо імпорти можуть бути розбиті між файлами. А jscodeshift усе правильно оновить.
👍5
This media is not supported in your browser
VIEW IN TELEGRAM
Користуєтесь Storybook? Я — так! 🎨📖

У нас на проєкті багато тестів безпосередньо в Storybook. Там використовується та сама React Testing Library, але тести виконуються всередині сторі з візуальним відображенням.

Ці тести ми також запускаємо в CI, щоб відловити регресії 🐛. Проте чим їх більше, тим важче запускати, бо CI використовує headless-браузер (без інтерфейсу). Навантаження накопичується, і деякі тести починають падати через нестачу ресурсів.

Рішення? Я підглянув його в Playwright, який Storybook використовує під капотом. Тести можна розбивати на шарди (shards) й запускати кілька CI-процесів для рівномірного розподілу навантаження .

У підсумку всі тести, які запускалися разом, тепер розбиваються на N шардів і виконуються паралельно.

Рішення просте й зручне, але трохи дорожче, якщо не кешувати артефакти типу node_modules 📦.
👍5
Чули про перцептрон? 🤖 Якщо цікавитесь машинним навчанням та AI, то, можливо, вже зустрічалися з цим поняттям.

У цьому відео автор детально пояснює технічні досягнення Френка Розенблата (батьки — мігранти-євреї з Хмельницької області) та їхній вплив на розвиток AI сьогодні.

Відео англійською, без авто-перекладу, але автор говорить чітко та зрозуміло, тож, сподіваюся, проблем із переглядом не буде. 🎥

https://www.youtube.com/watch?v=l-9ALe3U-Fg
👍42
Часто помічаю, як новачки встановлюють пакети для дуже дрібних задач. Напевно, найпопулярніше — це генератори для унікальних ідентифікаторів, особливо коли висока унікальність взагалі не потрібна (типу uuid).

Для таких потреб значно краще і зручніше використовувати вже наявні інструменти:


const randomId = (length = 6) => {
return Math.random()
.toString(36)
.substring(2, length+2);
};


Ось проста функція для генерації коротких, унікальних ID, цілком достатня для індентифікаторів даних (до кілька-десят тисяч, але не мільйонів) записів.

Код скопіював не з голови а взяв тут.
🔥4
Поділюсь цікавим подкастом, але спершу трохи лірики.

Для досвідчених розробників — пам’ятаєте Atom? Едітор, що передував VSCode. Саме завдяки ньому з’явився Electron, який зараз використовують Notion, Slack, VSCode, Linear та багато інших.

У цьому подкасті один із core-розробників Zed (про який я вже писав) розповідає цю історію та як вона вплинула на їхній новий, сучасний продукт.

🎧 Ідеально для вечірнього прослуховування на фоні — так я і зробив учора. 😌

https://www.youtube.com/watch?v=HJTVwNZ_fQM
👍4
Років два тому мав інтерв’ю з компанією, яка хотіла повторити, наскільки швидко й приємно працює Notion, але для іншого бізнесу.

Було кілька раундів, і на одному з них мені потрібно було підготувати прикладний та детальний підхід до організації такої системи. Завдання не з простих — Notion унікальний, і його важко не просто повторити, а й переосмислити. Але одна їхня стаття допомогла мені краще підготуватись, тож вирішив поділитися.

До речі, зайшов подивитися на їхній продукт — на жаль, нічого з того, що планували, не реалізували, але суттєво підсіли на GraphQL (що було частиною моєї рекомендації, виходячи з їхньої архітектури). 😅

https://www.notion.com/blog/data-model-behind-notion
👍5👌1
Сьогодні знову трохи відійду від веб розробки й повернусь до embedded.

Хто пробував Arduino, той, напевно, знайомий з Arduino IDE. Для мінімальних задач вистачає, але, якщо чесно, це жахливо незручно. 😅

Альтернатива? PlatformIO — популярний, безкоштовний та відкритий інструмент. І найцікавіше: це український продукт! 🇺🇦

PlatformIO інтегрується у VSCode та суттєво спрощує роботу:
Менеджер залежностей (як npm для Node.js)
Юніт-тести
Дебаггер (на реальному пристрої)
Багато іншого

З власного досвіду — після Arduino IDE це просто кайф! Постійно користуюсь і вам рекомендую. 🚀

https://platformio.org/
👍5🔥1🤨1