Хватит кидать ошибки в JS как в 2015-м
В JavaScript давно есть нормальные инструменты для ошибок, но многие до сих пор бросают просто
А потом пытаются понять, где именно всё сломалось.
Что стоит использовать:
-
-
-
Главная идея простая: ошибка должна быть не просто текстом для лога, а нормальным объектом с контекстом.
Плохой вариант:
Лучше:
Так код становится понятнее, дебаг быстрее, а логи перестают превращаться в археологию.
В JavaScript давно есть нормальные инструменты для ошибок, но многие до сих пор бросают просто
throw new Error("something failed").А потом пытаются понять, где именно всё сломалось.
Что стоит использовать:
-
Custom Error классы - чтобы хранить statusCode, code, details и другие поля не в строке, а в структуре-
Error.cause - чтобы оборачивать ошибку и не терять исходную причину-
AggregateError - когда параллельно упало сразу несколько операцийГлавная идея простая: ошибка должна быть не просто текстом для лога, а нормальным объектом с контекстом.
Плохой вариант:
throw new Error("Could not load user")Лучше:
throw new HttpError("Could not load user", 500, { cause: err })Так код становится понятнее, дебаг быстрее, а логи перестают превращаться в археологию.
👍10❤4🤔3🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
CopilotKit - open-source стек для тех, кто хочет встраивать AI-агентов прямо в продукт, а не просто прикручивать чат-окно сбоку.
Агент должен не только отвечать текстом, но и работать внутри интерфейса - читать состояние приложения, вызывать действия, обновлять UI и показывать пользователю нормальные React-компоненты вместо простыни текста.
Что умеет CopilotKit:
- готовый Chat UI для React с потоковой генерацией, tool calls и ответами агента;
- Generative UI - агент может рендерить и обновлять компоненты интерфейса;
- Shared State - общий слой состояния между агентом и приложением;
- Backend Tool Rendering - агент вызывает backend-инструменты, а результат отображается прямо в клиенте;
- интеграция с агентными фреймворками и моделями;
- поддержка AG-UI Protocol, который уже используют крупные игроки вроде Google, LangChain, AWS и Microsoft.
По сути, это попытка собрать frontend-слой для agentic apps: не “чат с ИИ”, а интерфейс, где пользователь и агент реально работают вместе.
GitHub: github.com/CopilotKit/CopilotKit
Агент должен не только отвечать текстом, но и работать внутри интерфейса - читать состояние приложения, вызывать действия, обновлять UI и показывать пользователю нормальные React-компоненты вместо простыни текста.
Что умеет CopilotKit:
- готовый Chat UI для React с потоковой генерацией, tool calls и ответами агента;
- Generative UI - агент может рендерить и обновлять компоненты интерфейса;
- Shared State - общий слой состояния между агентом и приложением;
- Backend Tool Rendering - агент вызывает backend-инструменты, а результат отображается прямо в клиенте;
- интеграция с агентными фреймворками и моделями;
- поддержка AG-UI Protocol, который уже используют крупные игроки вроде Google, LangChain, AWS и Microsoft.
По сути, это попытка собрать frontend-слой для agentic apps: не “чат с ИИ”, а интерфейс, где пользователь и агент реально работают вместе.
GitHub: github.com/CopilotKit/CopilotKit
📝 Легкий редактор заметок с Markdown и OCR
qnote — это минималистичный десктопный редактор заметок, который поддерживает Markdown с живым предпросмотром, историю файлов и экспорт в PDF. Работает на Windows и Linux, предлагает удобный интерфейс и множество функций для эффективного редактирования.
🚀 Основные моменты:
- Поддержка Markdown и живой предпросмотр
- История версий и файлов с быстрым поиском
- Экспорт в PDF и HTML
- Встроенный OCR для извлечения текста из изображений
- Кастомизация интерфейса и тем
📌 GitHub: https://github.com/omibranch/qnote
qnote — это минималистичный десктопный редактор заметок, который поддерживает Markdown с живым предпросмотром, историю файлов и экспорт в PDF. Работает на Windows и Linux, предлагает удобный интерфейс и множество функций для эффективного редактирования.
🚀 Основные моменты:
- Поддержка Markdown и живой предпросмотр
- История версий и файлов с быстрым поиском
- Экспорт в PDF и HTML
- Встроенный OCR для извлечения текста из изображений
- Кастомизация интерфейса и тем
📌 GitHub: https://github.com/omibranch/qnote
Твой код — в сердце мощного ИИ! 💚
Команда GigaChat зовёт на One Day Offer амбициозных Java-разработчиков, которые готовы создавать AI‑продукты уровня BigTech и стать частью крупнейшего AI-комьюнити.
Если ты дружишь с Java (версии 8–25), ладишь со Spring и Hibernate, а PostgreSQL и ClickHouse для тебя — не просто слова, переходи по ссылке и занимай слот на One Day Offer.
Встречаемся 23 мая — очень ждём именно тебя!
Команда GigaChat зовёт на One Day Offer амбициозных Java-разработчиков, которые готовы создавать AI‑продукты уровня BigTech и стать частью крупнейшего AI-комьюнити.
Если ты дружишь с Java (версии 8–25), ладишь со Spring и Hibernate, а PostgreSQL и ClickHouse для тебя — не просто слова, переходи по ссылке и занимай слот на One Day Offer.
Встречаемся 23 мая — очень ждём именно тебя!
👎3👍2❤1🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
Совет по CSS 💡
Конвертируйте цветные логотипы в однотонные черно-белые изображения для темного/светлого режимов с помощью CSS-фильтров 🤩
Нет необходимости создавать отдельные изображения для этого ✨
Demo https://www.codewithshripal.com/playground/css/uniform-grayscale-logos-using-css-filters
Конвертируйте цветные логотипы в однотонные черно-белые изображения для темного/светлого режимов с помощью CSS-фильтров 🤩
Нет необходимости создавать отдельные изображения для этого ✨
Demo https://www.codewithshripal.com/playground/css/uniform-grayscale-logos-using-css-filters
👍9❤1
Интеграция YouTube API в веб-приложение с использованием JavaScript и React
Интеграция YouTube API в веб-приложение позволяет получать и отображать информацию о видео, каналах и других ресурсах YouTube. Рассмотрим, как реализовать интеграцию YouTube API в веб-приложение с использованием JavaScript и React.
1️⃣ Получение API-ключа: Начните с получения API-ключа YouTube для доступа к API. Зарегистрируйте свое приложение в Google Cloud Console и включите YouTube Data API. После этого вы получите API-ключ, который будет использоваться для аутентификации в API.
2️⃣ Настройка окружения React: Установите Node.js, создайте новый проект React и установите необходимые зависимости, включая
3️⃣ Инициализация и использование YouTube API: Создайте компонент
4️⃣ Отображение данных YouTube: В компоненте
Это всего лишь базовый пример интеграции YouTube API в веб-приложение с использованием JavaScript и React. Вы можете расширить функциональность, добавить поиск видео, пагинацию и другие возможности в зависимости от ваших потребностей.
Интеграция YouTube API в веб-приложение позволяет получать и отображать информацию о видео, каналах и других ресурсах YouTube. Рассмотрим, как реализовать интеграцию YouTube API в веб-приложение с использованием JavaScript и React.
1️⃣ Получение API-ключа: Начните с получения API-ключа YouTube для доступа к API. Зарегистрируйте свое приложение в Google Cloud Console и включите YouTube Data API. После этого вы получите API-ключ, который будет использоваться для аутентификации в API.
2️⃣ Настройка окружения React: Установите Node.js, создайте новый проект React и установите необходимые зависимости, включая
axios для выполнения HTTP-запросов к API.3️⃣ Инициализация и использование YouTube API: Создайте компонент
YouTubeIntegration и используйте YouTube API для получения информации о видео или канале. Включите функциональность, такую как поиск видео, получение информации о конкретном видео или плейлисте, получение своего списка понравившихся видео и т.д.4️⃣ Отображение данных YouTube: В компоненте
YouTubeIntegration, используйте полученные данные от YouTube API для отображения информации о видео или канале, такую как заголовок, описание и миниатюра.Это всего лишь базовый пример интеграции YouTube API в веб-приложение с использованием JavaScript и React. Вы можете расширить функциональность, добавить поиск видео, пагинацию и другие возможности в зависимости от ваших потребностей.
👍5👏2
This media is not supported in your browser
VIEW IN TELEGRAM
Infinite Cover Flow
Бесконечная галерея музыкальных постеров, которую можно прокручивать перетаскиванием, а также прокруткой колеса мыши. Реализована с помощью GSAP, ScrollTrigger и Draggable.
https://codepen.io/jh3y/pen/WNRvqJP
Бесконечная галерея музыкальных постеров, которую можно прокручивать перетаскиванием, а также прокруткой колеса мыши. Реализована с помощью GSAP, ScrollTrigger и Draggable.
https://codepen.io/jh3y/pen/WNRvqJP
👍6❤1🔥1
🚀 Упрощение разработки с GSD Redux
GSD Redux — это легковесная система для метапромптинга и управления контекстом, помогающая разработчикам эффективно работать с AI. Она решает проблему деградации качества контекста, позволяя создавать четкие спецификации и контролировать процесс разработки.
🚀 Основные моменты:
- Легкая интеграция с различными AI-платформами.
- Поддержка автоматизации разработки и управления проектами.
- Обеспечивает безопасность и прозрачность через аудит.
- Подходит для индивидуальных разработчиков и небольших команд.
📌 GitHub: https://github.com/open-gsd/get-shit-done-redux
#javascript
GSD Redux — это легковесная система для метапромптинга и управления контекстом, помогающая разработчикам эффективно работать с AI. Она решает проблему деградации качества контекста, позволяя создавать четкие спецификации и контролировать процесс разработки.
🚀 Основные моменты:
- Легкая интеграция с различными AI-платформами.
- Поддержка автоматизации разработки и управления проектами.
- Обеспечивает безопасность и прозрачность через аудит.
- Подходит для индивидуальных разработчиков и небольших команд.
📌 GitHub: https://github.com/open-gsd/get-shit-done-redux
#javascript
❤3👍3🔥1
И дело не в том, что ты плохо пишешь код. Просто большинство курсов заканчиваются ровно там, где начинается настоящий .NET.
Этот курс про то, что обычно остаётся под капотом:
- CLR
- JIT
- GC
- Span
- async state machine
- Source Generators
- lock-free подходы
- OpenTelemetry
- дампы в проде
На практике разбираем, как .NET реально работает внутри: что происходит с кодом после компиляции, как память живёт под нагрузкой, почему async иногда помогает, а иногда ломает производительность, как читать проблемы по дампам и метрикам, а не гадать по логам.
Если хочешь дойти до уровня, где система для тебя не чёрный ящик, а инструмент, который ты понимаешь до IL, - велкам.
Сейчас на stepik доступна скидка 55%: https://stepik.org/a/288694
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3❤2👎1🔥1
⚡️ Создать JavaScript за 10 дней, запустить Mozilla, а потом собрать Brave вокруг идеи приватного браузера - у Брендана Айка биография из тех, где один человек несколько раз менял интернет.
Самое сильное в этой истории - не только JavaScript. Да, язык собрали в бешеном темпе внутри Netscape, и теперь он держит огромную часть веба. Но дальше Айк не ушёл в режим «я уже всё доказал». Он продолжил воевать за то, каким должен быть браузер.
Mozilla и Firefox были ответом на эпоху закрытого и монополизированного веба. Brave стал ответом на другую проблему: интернет, где пользователь постепенно превратился в объект слежки, таргетинга и бесконечной рекламной оптимизации.
Айк всегда бил в одну точку: браузер должен работать на пользователя, а не на рекламную инфраструктуру вокруг него. Поэтому Brave блокирует трекеры, режет навязчивую рекламу и пытается строить модель, где приватность заложена в основу продукта.
Можно спорить с отдельными решениями Brave, с крипточастью, с рекламной моделью, с самим Айком. Но вклад сложно обесценить.
Он создал язык, без которого современный веб почти невозможно представить. Помог запустить один из главных открытых браузерных проектов. Потом снова пошёл против доминирующей модели интернета, где сбор данных стал нормой.
Брендан Айк - редкий пример инженера, который не просто написал важный код, а десятилетиями спорит с тем, во что превратился веб.
Самое сильное в этой истории - не только JavaScript. Да, язык собрали в бешеном темпе внутри Netscape, и теперь он держит огромную часть веба. Но дальше Айк не ушёл в режим «я уже всё доказал». Он продолжил воевать за то, каким должен быть браузер.
Mozilla и Firefox были ответом на эпоху закрытого и монополизированного веба. Brave стал ответом на другую проблему: интернет, где пользователь постепенно превратился в объект слежки, таргетинга и бесконечной рекламной оптимизации.
Айк всегда бил в одну точку: браузер должен работать на пользователя, а не на рекламную инфраструктуру вокруг него. Поэтому Brave блокирует трекеры, режет навязчивую рекламу и пытается строить модель, где приватность заложена в основу продукта.
Можно спорить с отдельными решениями Brave, с крипточастью, с рекламной моделью, с самим Айком. Но вклад сложно обесценить.
Он создал язык, без которого современный веб почти невозможно представить. Помог запустить один из главных открытых браузерных проектов. Потом снова пошёл против доминирующей модели интернета, где сбор данных стал нормой.
Брендан Айк - редкий пример инженера, который не просто написал важный код, а десятилетиями спорит с тем, во что превратился веб.
❤10👍3🔥1