Forwarded from Чёрный Треугольник
This media is not supported in your browser
VIEW IN TELEGRAM
☝🏻OpenAI запустила бесплатный переводчик ChatGPT Translate — прямой конкурент Google Translate
Интерфейс визуально напоминает Google Translate: два текстовых поля, автоопределение языка и поддержка более 50 языков в обе стороны.
Можно вводить текст, надиктовывать голосом или даже загружать изображения с текстом. 🎤
Главная фишка — сервис не просто переводит слово в слово, а понимает контекст, тон и идиомы.
После получения перевода можно нажать одну кнопку и мгновенно адаптировать текст: сделать его более естественным, переписать в деловом стиле, упростить для ребёнка или оформить для академической аудитории. 📝
При выборе любой из этих опций пользователя перенаправляет в основной интерфейс ChatGPT с готовым промптом — и можно продолжать корректировать перевод с помощью ИИ.
Сервис полностью бесплатный и не требует подписки. Мобильное приложение ChatGPT эту функцию тоже не поддерживает. 📱
☝🏻Есть и ограничения: пока не работает загрузка документов, рукописный ввод и перевод веб-страниц.
================
💎 мMм | 👁 Soft | 👁 Gear | 🌐 Links
Интерфейс визуально напоминает Google Translate: два текстовых поля, автоопределение языка и поддержка более 50 языков в обе стороны.
Можно вводить текст, надиктовывать голосом или даже загружать изображения с текстом. 🎤
Главная фишка — сервис не просто переводит слово в слово, а понимает контекст, тон и идиомы.
После получения перевода можно нажать одну кнопку и мгновенно адаптировать текст: сделать его более естественным, переписать в деловом стиле, упростить для ребёнка или оформить для академической аудитории. 📝
При выборе любой из этих опций пользователя перенаправляет в основной интерфейс ChatGPT с готовым промптом — и можно продолжать корректировать перевод с помощью ИИ.
Сервис полностью бесплатный и не требует подписки. Мобильное приложение ChatGPT эту функцию тоже не поддерживает. 📱
☝🏻Есть и ограничения: пока не работает загрузка документов, рукописный ввод и перевод веб-страниц.
================
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥 React2Shell — если пропустили
Да, поздновато пишу, но тут выяснилось, что там не одна проблема была.
Основная CVE-2025-55182 (RCE с CVSS 10.0) — с ней более-менее разобрались, патчи вышли. Но после неё нашли ещё две уязвимости: CVE-2025-55184 и CVE-2025-67779.
Фишка в том, что вторая — это неполный фикс первой. Обе позволяют положить сервер через DoS (бесконечный цикл при обработке запроса).
🚨 Что важно:
• Если обновились до 19.0.2, 19.1.3 или 19.2.2 — вы всё ещё уязвимы
• Нужны версии 19.0.3, 19.1.4 или 19.2.3
• Next.js 13.x–16.x с App Router тоже затронуты
Короче, проверьте версии и обновитесь, если ещё не.
Особенно, если юзаете Neext.js
🔗 Подробности от React
Да, поздновато пишу, но тут выяснилось, что там не одна проблема была.
Основная CVE-2025-55182 (RCE с CVSS 10.0) — с ней более-менее разобрались, патчи вышли. Но после неё нашли ещё две уязвимости: CVE-2025-55184 и CVE-2025-67779.
Фишка в том, что вторая — это неполный фикс первой. Обе позволяют положить сервер через DoS (бесконечный цикл при обработке запроса).
🚨 Что важно:
• Если обновились до 19.0.2, 19.1.3 или 19.2.2 — вы всё ещё уязвимы
• Нужны версии 19.0.3, 19.1.4 или 19.2.3
• Next.js 13.x–16.x с App Router тоже затронуты
Короче, проверьте версии и обновитесь, если ещё не.
Особенно, если юзаете Neext.js
🔗 Подробности от React
react.dev
Denial of Service and Source Code Exposure in React Server Components – React
The library for web and native user interfaces
🔍 Наткнулся тут на 1Code — open-source клиент для Claude Code от ребят из 21st.dev (бэкнуты Y Combinator).
Суть в чём: когда работаешь с несколькими агентами параллельно, терминал начинает душить. Куча окон, диффы разбросаны, непонятно где что.
1Code решает это:
• Параллельные агенты в одном UI
• Клавиатурные хоткеи для всего
• PR workflow прямо в интерфейсе — смотришь диффы, мержишь без переключения на GitHub
• Live preview в веб-версии
🧠 Фишка в том, что весь функционал Claude Code остаётся — Plan Mode, Skills, редактирование промптов.
Можно собрать самому (open-source), либо взять готовую сборку по подписке.
Полезен ли? Если гоняешь 3-4 агента одновременно — скорее да. Для одиночного использования смысла меньше.
🔗 1code.dev
Суть в чём: когда работаешь с несколькими агентами параллельно, терминал начинает душить. Куча окон, диффы разбросаны, непонятно где что.
1Code решает это:
• Параллельные агенты в одном UI
• Клавиатурные хоткеи для всего
• PR workflow прямо в интерфейсе — смотришь диффы, мержишь без переключения на GitHub
• Live preview в веб-версии
🧠 Фишка в том, что весь функционал Claude Code остаётся — Plan Mode, Skills, редактирование промптов.
Можно собрать самому (open-source), либо взять готовую сборку по подписке.
Полезен ли? Если гоняешь 3-4 агента одновременно — скорее да. Для одиночного использования смысла меньше.
🔗 1code.dev
GitHub
GitHub - 21st-dev/1code: Orchestration layer for coding agents (Claude Code, Codex)
Orchestration layer for coding agents (Claude Code, Codex) - 21st-dev/1code
🤩2
🔍 Наткнулся на интересный тул — webctl
Это CLI для управления браузером, заточенный под работу с AI-агентами.
Главная фишка: ты сам контролируешь, что попадает в контекст LLM. В обычных MCP-тулах сервер решает, что отправить — и контекст быстро забивается мусором. Тут наоборот — фильтруешь вывод флагами типа
🧠 Ещё плюсы:
• Семантические запросы по ARIA вместо хрупких CSS-селекторов
• Персистентные сессии с куками
• Автогенерация системных промптов для Claude и Gemini
По сути stateless CLI + демон на Playwright. Всё на Python.
webctl на GitHub
Это CLI для управления браузером, заточенный под работу с AI-агентами.
Главная фишка: ты сам контролируешь, что попадает в контекст LLM. В обычных MCP-тулах сервер решает, что отправить — и контекст быстро забивается мусором. Тут наоборот — фильтруешь вывод флагами типа
--interactive-only или пайпишь через grep.🧠 Ещё плюсы:
• Семантические запросы по ARIA вместо хрупких CSS-селекторов
• Персистентные сессии с куками
• Автогенерация системных промптов для Claude и Gemini
По сути stateless CLI + демон на Playwright. Всё на Python.
webctl на GitHub
GitHub
GitHub - cosinusalpha/webctl: Browser automation via CLI — for humans and agents
Browser automation via CLI — for humans and agents - cosinusalpha/webctl
🔥2
🔍 Думал что Kling - это очередная нейронка для видео, а оказалось - self-hosted альтернатива Klaviyo.
Для тех кто не в теме: Klaviyo - это популярный email-маркетинг для e-commerce, который стоит от $720/мес за 50к контактов. Плюс они уже третий раз за 4 года поднимают цены.
Kling решает это просто - разворачиваешь у себя и платишь только за инфру.
Что умеет:
• Email и SMS кампании
• Визуальный редактор писем
• Сегментация по поведению и истории покупок
• Автоматизации (брошенные корзины, welcome-серии)
• Аналитика в реальном времени
🚀 Деплой за 10 минут на AWS/GCP/DO. Open source, код на GitHub.
Фишка в том, что данные клиентов остаются у тебя - никакого vendor lock-in.
kling.to
Для тех кто не в теме: Klaviyo - это популярный email-маркетинг для e-commerce, который стоит от $720/мес за 50к контактов. Плюс они уже третий раз за 4 года поднимают цены.
Kling решает это просто - разворачиваешь у себя и платишь только за инфру.
Что умеет:
• Email и SMS кампании
• Визуальный редактор писем
• Сегментация по поведению и истории покупок
• Автоматизации (брошенные корзины, welcome-серии)
• Аналитика в реальном времени
🚀 Деплой за 10 минут на AWS/GCP/DO. Open source, код на GitHub.
Фишка в том, что данные клиентов остаются у тебя - никакого vendor lock-in.
kling.to
kling.to
Kling - Self-hosted Marketing Automation for E-commerce
Stop paying $720/month for 50k contacts. Deploy Kling on your infrastructure in 10 minutes and send unlimited emails. Full GDPR compliance. Zero vendor lock-in.
🔥2
🚀 Нашел тут Pipenet — опенсорсная альтернатива localtunnel.
Написан на TypeScript, работает через один порт — идеально для Docker и Kubernetes.
Что умеет:
• HTTP/HTTPS, WebSocket, SSE
• Кастомные домены
• Можно поднять свой сервер
pipenet.dev
Написан на TypeScript, работает через один порт — идеально для Docker и Kubernetes.
Что умеет:
• HTTP/HTTPS, WebSocket, SSE
• Кастомные домены
• Можно поднять свой сервер
pipenet.dev
👍1🤩1
Решил я тут попробовать перейти на другой редактор. В основном пишу в Курсоре, но использую его как обычный IDE + Claude code. 🖥️
Решил перейти на Zув IDE — новый редактор, вроде как даже на Расте написан, супер быстрый и так далее. 🚀 Я видел много роликов на Ютубе, где народ прям доволен. 😃 В итоге попробовал перейти, но он все же надел. 😔
Да, там появились расширения, которые упрощают некоторые вещи, но он для моих кейсов не особо работает. Например, там нет нормального просмотра CSV-файлов, когда тебе нужно с фильтрами, заголовками, сортировкой это все посмотреть. 📊
Плюс они вроде как добавили поддержку GitHub, но в очень упрощенном формате. 🤷♂️ И самое стремное, что там нет сайта, и сайт просмотра я посмотрел — есть пулл-реквесты, но ребята так и не сделали. Так что пока переход на Zed у меня откладывается. ⏳
Решил перейти на Zув IDE — новый редактор, вроде как даже на Расте написан, супер быстрый и так далее. 🚀 Я видел много роликов на Ютубе, где народ прям доволен. 😃 В итоге попробовал перейти, но он все же надел. 😔
Да, там появились расширения, которые упрощают некоторые вещи, но он для моих кейсов не особо работает. Например, там нет нормального просмотра CSV-файлов, когда тебе нужно с фильтрами, заголовками, сортировкой это все посмотреть. 📊
Плюс они вроде как добавили поддержку GitHub, но в очень упрощенном формате. 🤷♂️ И самое стремное, что там нет сайта, и сайт просмотра я посмотрел — есть пулл-реквесты, но ребята так и не сделали. Так что пока переход на Zed у меня откладывается. ⏳
🎵 Недолго музыка играла. Я так и решил вернуться обратно на курсор.
💻 Ибо там хотя бы есть плагины, и многие моменты, которые мне нужны и важны, уже работают из коробки. Не нужно извращаться или ждать, когда pull-request'ы будут добавлены в основной код.
🎵 Но, как оказалось, в курсоре так и не смог настроить свою хотелку, чтобы у меня при открытии любого проекта всегда был зафиксированный layout, когда слева список файлов, а справа уже открытый код в терминале
💻 Ибо там хотя бы есть плагины, и многие моменты, которые мне нужны и важны, уже работают из коробки. Не нужно извращаться или ждать, когда pull-request'ы будут добавлены в основной код.
Please open Telegram to view this post
VIEW IN TELEGRAM
💻 Я тут всё-таки заиспользовал тот подход, который был в расхайпленных советах от создателя Claude Code.
👌 Оказалось, да, довольно-таки удобно, частые команды перевести в слэш-команды и не вводить их каждый раз заново.
🔒 А ещё помогла заранее простановка разрешений заранее. Меньше нужно подтверждений, что да, эту команду можно выполнить. Особенно если это просто просмотр файлов или выполнение команды cat или grep
👌 Оказалось, да, довольно-таки удобно, частые команды перевести в слэш-команды и не вводить их каждый раз заново.
🔒 А ещё помогла заранее простановка разрешений заранее. Меньше нужно подтверждений, что да, эту команду можно выполнить. Особенно если это просто просмотр файлов или выполнение команды cat или grep
🌐 Наткнулся тут на BrowserOS — open-source браузер с AI-агентами прямо из коробки.
Что внутри:
• Форк ungoogled-chromium (приватность по дефолту)
• Поддержка OpenAI, Claude, Gemini и локальных моделей через Ollama
• Встроенные MCP-серверы для Gmail, Calendar, Notion
🔍 По сути это open-source альтернатива ChatGPT Atlas и Perplexity Comet. Код открыт под AGPL-3.0, работает на macOS, Windows, Linux.
Для тех, кто хочет автоматизацию без vendor lock-in.
🔗 GitHub
Что внутри:
• Форк ungoogled-chromium (приватность по дефолту)
• Поддержка OpenAI, Claude, Gemini и локальных моделей через Ollama
• Встроенные MCP-серверы для Gmail, Calendar, Notion
🔍 По сути это open-source альтернатива ChatGPT Atlas и Perplexity Comet. Код открыт под AGPL-3.0, работает на macOS, Windows, Linux.
Для тех, кто хочет автоматизацию без vendor lock-in.
🔗 GitHub
GitHub
GitHub - browseros-ai/BrowserOS: 🌐 The open-source Agentic browser; alternative to ChatGPT Atlas, Perplexity Comet, Dia.
🌐 The open-source Agentic browser; alternative to ChatGPT Atlas, Perplexity Comet, Dia. - browseros-ai/BrowserOS
🔥3
🚀 Наткнулся тут на Pencil.dev — это буквально дизайн-режим для Cursor.
Что умеет:
• Работает как MCP-плагин для Cursor, Claude code, Codex и т.д.
• Импортирует фреймы и стили из Figma без потерь (сам не пробовал пока)
• Дизайн-файлы живут прямо в репозитории под Git
По сути это тул для vibe design — когда ты задаёшь направление, а AI генерит код. Только теперь не через чат, а через UI canvas.
🧠 Для кого: фронтендеры, которые устали прыгать между Figma и редактором.
Или дизайнеры, которые хотят сразу видеть результат в коде. (хз откуда такие)
Pencil.dev
Что умеет:
• Работает как MCP-плагин для Cursor, Claude code, Codex и т.д.
• Импортирует фреймы и стили из Figma без потерь (сам не пробовал пока)
• Дизайн-файлы живут прямо в репозитории под Git
По сути это тул для vibe design — когда ты задаёшь направление, а AI генерит код. Только теперь не через чат, а через UI canvas.
🧠 Для кого: фронтендеры, которые устали прыгать между Figma и редактором.
Или дизайнеры, которые хотят сразу видеть результат в коде. (хз откуда такие)
Pencil.dev
pen.dev
An agentic canvas for bold software projects.
🔥1
🦞 Узнал про Clawdbot — open-source AI-ассистент с кучей интеграций.
Главная фишка — это хаб для всего. 14 чат-платформ (WhatsApp, Telegram, Slack, Discord, Signal, iMessage...), 11 AI-провайдеров (Claude, GPT, Gemini, локальные через Ollama), плюс 50+ интеграций: браузер, GitHub, Spotify, умный дом, заметки.
🔐 Интересный подход к security:
• Gateway крутится на отдельном устройстве (VPS, Raspberry Pi, Mac Mini)
• Можно запускать полностью на локальных моделях — данные не уходят наружу
• Docker-песочница для изоляции агентов
По сути — ставишь Gateway на какой-нибудь always-on девайс, а сам общаешься через любой мессенджер.
AI получает доступ только к тому, что ты явно разрешил.
Ща на хайпе
Сам пока не пробовал но взял в бэклоге на потестить
clawd.bot
Главная фишка — это хаб для всего. 14 чат-платформ (WhatsApp, Telegram, Slack, Discord, Signal, iMessage...), 11 AI-провайдеров (Claude, GPT, Gemini, локальные через Ollama), плюс 50+ интеграций: браузер, GitHub, Spotify, умный дом, заметки.
🔐 Интересный подход к security:
• Gateway крутится на отдельном устройстве (VPS, Raspberry Pi, Mac Mini)
• Можно запускать полностью на локальных моделях — данные не уходят наружу
• Docker-песочница для изоляции агентов
По сути — ставишь Gateway на какой-нибудь always-on девайс, а сам общаешься через любой мессенджер.
AI получает доступ только к тому, что ты явно разрешил.
Ща на хайпе
Сам пока не пробовал но взял в бэклоге на потестить
clawd.bot
OpenClaw
OpenClaw — Open-Source AI Assistant
OpenClaw is the open-source AI assistant that runs on your machine and works from WhatsApp, Telegram, or any chat app: inbox, email, calendar, flights.
🔥1
🚀 Тул, который реально конвертит Figma-дизайн в готовые React-компоненты.
VibeFigma — опенсорсный конвертер.
Фишка в том, что он работает напрямую через официальный Figma API и сразу генерит TypeScript + Tailwind CSS.
Как юзать:
• Самый простой вариант —
• Или прямой запуск с URL фрейма и токеном
🔍 Что умеет:
• Кастомные пути для компонентов и ассетов
• Можно отключить Tailwind и получить обычный CSS
Есть и REST API для деплоя через Docker.
135 звёзд, активная разработка, ноль открытых issues. Пока что :)
🔗 GitHub
VibeFigma — опенсорсный конвертер.
Фишка в том, что он работает напрямую через официальный Figma API и сразу генерит TypeScript + Tailwind CSS.
Как юзать:
• Самый простой вариант —
npx vibefigma --interactive• Или прямой запуск с URL фрейма и токеном
🔍 Что умеет:
• Кастомные пути для компонентов и ассетов
• Можно отключить Tailwind и получить обычный CSS
Есть и REST API для деплоя через Docker.
135 звёзд, активная разработка, ноль открытых issues. Пока что :)
🔗 GitHub
GitHub
GitHub - vibeflowing-inc/vibe_figma: Figma to React Converter
Figma to React Converter. Contribute to vibeflowing-inc/vibe_figma development by creating an account on GitHub.
https://resend.com/docs/dashboard/receiving/introduction
✉️ Я пользуюсь Resend для отправки мейлов.
ℹ️ Но не так давно узнал, что у него оказывается есть функционал на получение мейлов. То есть, когда нужно протестировать какой-нибудь ящик, можно отправлять сообщение на тот, что есть в личном кабинете у Resend.
🖥️ Ранее поднимал свой SMTP сервер и прикручивал API для него, но оказалось, что все это есть уже в Resend
✉️ Я пользуюсь Resend для отправки мейлов.
ℹ️ Но не так давно узнал, что у него оказывается есть функционал на получение мейлов. То есть, когда нужно протестировать какой-нибудь ящик, можно отправлять сообщение на тот, что есть в личном кабинете у Resend.
🖥️ Ранее поднимал свой SMTP сервер и прикручивал API для него, но оказалось, что все это есть уже в Resend
Resend
Receiving Emails - Resend
An introduction to receiving emails with Resend.
🔥2
https://habr.com/ru/news/990844/
Судя по всему, хайп пошел еще дальше.
Помимо того, что поменяли названия, теперь появился еще а-ля свой Reddit, и запустилась крипта.
Судя по всему, хайп пошел еще дальше.
Помимо того, что поменяли названия, теперь появился еще а-ля свой Reddit, и запустилась крипта.
😁2
💻 https://openclaw.ai/ - cнова поменяли название)
🤔 Попробовал таки поставить OpenClaw, но в блокере локально. В итоге, с учетом того, что они еще поменяли название, и эта штука пока еще нестабильна, завести получилось только UI.
🧐 С агентом отдельным я пока не разобрался, поэтому отложил это. Мне кажется, через какое-то время это устаканится, и получится нормальный DX, который можно будет использовать. Если нет, возможно, хай пройдет.
😲 Но я буду очень удивлен, если эта штука продолжит хайпиться, а нормальный DX они так и не сделают
🤔 Попробовал таки поставить OpenClaw, но в блокере локально. В итоге, с учетом того, что они еще поменяли название, и эта штука пока еще нестабильна, завести получилось только UI.
🧐 С агентом отдельным я пока не разобрался, поэтому отложил это. Мне кажется, через какое-то время это устаканится, и получится нормальный DX, который можно будет использовать. Если нет, возможно, хай пройдет.
😲 Но я буду очень удивлен, если эта штука продолжит хайпиться, а нормальный DX они так и не сделают
OpenClaw
OpenClaw — Open-Source AI Assistant
OpenClaw is the open-source AI assistant that runs on your machine and works from WhatsApp, Telegram, or any chat app: inbox, email, calendar, flights.
😁2
💬 Буквально на днях спорили с одним чуваком по поводу, зачем нужен moltbook.com для агентов.
🧪 Собственно, как эксперимент посмотреть, что там будет происходить, да, но мне тут сказали еще пару мыслей. Довольно-таки интересно, что с ними может быть.
📈 Первое — это выравнивание скиллов между агентами, чтобы у каждого были самые топовые. Соответственно, в соцсети агенты делятся, какие скиллы у них вообще отлично залетели и какие не очень. И таким образом другие следят за этими новостями и, соответственно, копируют те скиллы, которые хорошо залетели. Но тут надо смотреть, как это пойдет. Не получится ли так, что все будут с плохими скиллами? Или все средние?
💰 А второй момент, который он упомянул, что если добавить к социальной сети еще и оплату, например, ту же крипту, которую запустили, тогда фактически эту социальную сеть можно превратить в некий аналог маркетплейса, где агенты продают друг другу скиллы и таким образом сами зарабатывают деньги.
🧪 Собственно, как эксперимент посмотреть, что там будет происходить, да, но мне тут сказали еще пару мыслей. Довольно-таки интересно, что с ними может быть.
📈 Первое — это выравнивание скиллов между агентами, чтобы у каждого были самые топовые. Соответственно, в соцсети агенты делятся, какие скиллы у них вообще отлично залетели и какие не очень. И таким образом другие следят за этими новостями и, соответственно, копируют те скиллы, которые хорошо залетели. Но тут надо смотреть, как это пойдет. Не получится ли так, что все будут с плохими скиллами? Или все средние?
💰 А второй момент, который он упомянул, что если добавить к социальной сети еще и оплату, например, ту же крипту, которую запустили, тогда фактически эту социальную сеть можно превратить в некий аналог маркетплейса, где агенты продают друг другу скиллы и таким образом сами зарабатывают деньги.
🤔2
https://github.com/HKUDS/nanobot
🌟 Вот и уже урезанный OpenClaw появился.
😞 С сожалением, все основные фишки пока еще недоступны. Судя по их роадмэпу, долговременная память, само-улучшения и, я так понимаю, еще и скиллы там не реализованы.
🤔 Но посмотреть, как на основное ядро, вполне себе можно.
🌟 Вот и уже урезанный OpenClaw появился.
😞 С сожалением, все основные фишки пока еще недоступны. Судя по их роадмэпу, долговременная память, само-улучшения и, я так понимаю, еще и скиллы там не реализованы.
🤔 Но посмотреть, как на основное ядро, вполне себе можно.
GitHub
GitHub - HKUDS/nanobot: Ultra-lightweight, open-source, self-hosted personal AI agent framework in Python with WebUI, tools, memory…
Ultra-lightweight, open-source, self-hosted personal AI agent framework in Python with WebUI, tools, memory, MCP, multi-agent workflows, automation, and chat apps - HKUDS/nanobot
> !ls
CLAUDE.md
README.md
app
auth.ts
components
docs
Как-то я пропустил, но недавно наткнулся. Я раньше просто копировал команды, и агенты выполняли, но оказывается, есть вариант проще.
В Claude code просто ставим восклицательный знак и вводим команду, и, соответственно, сразу выполняется. В принципе, примерно также, как в "jupyter notebook" или "ipython".
💯1
🚀 Наткнулся на skills.sh — открытый маркетплейс скиллов от Vercel для AI-агентов.
Что там есть:
• 37к+ готовых скиллов
• Лидерборд по популярности
• Скиллы от Vercel Labs, Anthropic и комьюнити
🧠 По сути это npm для AI-агентов.
Хочешь фронтенд-дизайн, код-ревью или SEO-аудит — просто ставишь нужный скилл и агент знает как это делать.
Бесплатно и open-source.
skills.sh
Что там есть:
• 37к+ готовых скиллов
• Лидерборд по популярности
• Скиллы от Vercel Labs, Anthropic и комьюнити
🧠 По сути это npm для AI-агентов.
Хочешь фронтенд-дизайн, код-ревью или SEO-аудит — просто ставишь нужный скилл и агент знает как это делать.
Бесплатно и open-source.
skills.sh
Skills
The Agent Skills Directory
Discover and install skills for AI agents.
👍2