TGViewer
Channel Public Channel
WebDev+ | Веб-разработка

WebDev+ | Веб-разработка

@webdev_plus

Присоединяйтесь к нашему каналу и погрузитесь в мир веб-разработки

Связь: @devmangx
Subscribers
7.92K
Photos
649
Videos
287
Links
803

Showing posts older than #1609 · Back to latest

Older Posts 20 shown
Post #1606 619
Теперь Codex умеет запускать DeepSeek V4 Flash, но официальная настройка заменяет все ваши GPT-модели вместо того, чтобы просто добавить новую.

Codex Router исправляет это. Он добавляет модели в список выбора, а не подменяет их. В итоге Sol, Grok, Kimi и DeepSeek находятся в одном меню, и можно просто выбрать нужную модель под конкретную задачу.

DeepSeek V4 Flash: $0.28 за миллион выходных токенов.
Opus 4.8: $25.

Один и тот же список моделей. Разница в цене — 89 раз.

@WebDev_Plus
Post #1605 549
Привет, Laravel-разработчики 👩‍💻

При настройке любого Laravel-приложения я обычно переключаю канал логирования на daily.
Канал daily хорошо подходит для крупных приложений, но для небольших это избыточно: при низком объёме логов каждый день будет создаваться слишком много пустых файлов.

Недавно в Laravel появился новый драйвер логирования monthly. Он создаёт отдельный лог-файл на каждый месяц, благодаря чему искать логи и управлять ими становится гораздо проще.
#laravel #php

@WebDev_Plus
Post #1604 553
Chrome DevTools для агентов теперь поддерживает сторонние инструменты разработчика → (https://goo.gle/4wDny0z)

Посмотрите, как команда Angular интегрировала графы времени выполнения:

📈 визуализация графа сигналов
🔌 граф внедрения зависимостей
🎯 точная трассировка ошибок

@WebDev_Plus
Post #1603 562
satisfies можно использовать и для вложенных типов.
#TypeScript

@WebDev_Plus
Post #1602 579
Google предлагает Email Verification API, который позволит сайтам проверять адрес электронной почты прямо в браузере.

Без отправки письма и без привычного «перейдите по ссылке для подтверждения».

Если API в итоге доберётся до браузеров, одной из самых раздражающих частей регистрации может стать меньше.

@WebDev_Plus
Post #1601 548
Привет, Laravel-разработчики 👩‍💻

Если вы давно работаете с Laravel, то наверняка знаете про CSRF — подделку межсайтовых запросов.
Но есть ещё SSRF — подделка серверных запросов. Как следует из названия, атака происходит уже на стороне сервера.
Один из распространённых сценариев SSRF возникает, когда сервер использует данные, контролируемые пользователем, для исходящего запроса.

Например, клиент передаёт URL вебхука, а сервер отправляет на него запрос при наступлении какого-либо события.
Атакующий может подставить вредоносный URL, из-за чего сервер обратится к внутренним сервисам, приватным сетям или облачным metadata endpoints, которые недоступны из интернета./

Через SSRF можно получить конфиденциальные данные с сервера, а затем использовать их для дальнейших атак.
Например, утёкший API-токен может открыть доступ к другим чувствительным данным или сервисам.
Недавно я наткнулся на пакет securized/laravel-ssrf, который помогает защищаться от таких атак.
В примерах ниже показано, как пакет добавляет защиту от SSRF в HTTP-клиент Laravel, запросы через Guzzle и проверку URL, которые передаёт пользователь.

#laravel #php

@WebDev_Plus
Post #1600 531
Получайте больше информации о своих данных прямо в панели AI assistance → [https://goo.gle/4p3oIzA]

Теперь ещё девять виджетов используют данные из разных панелей, чтобы было понятнее, какую информацию Gemini берёт в работу:

- события производительности
- сетевые запросы
- содержимое ресурсов

@WebDev_Plus
Post #1599 591
Атака через десериализацию phar:// фактически умерла ещё в PHP 8.0 — и это почти никто не заметил.

До этого её могла спровоцировать практически любая функция, принимающая путь к файлу: file_exists(), filesize(), getimagesize() и другие.

Stream wrapper разбирал манифест архива и десериализовывал его metadata — даже если в вашем коде вообще не было вызова unserialize().

При этом Phar определяется не по расширению файла, а по содержимому: движок ищет токен __HALT_COMPILER();. Поэтому файл можно было загрузить даже как avatar.jpg, и он всё равно мог быть распознан и обработан как Phar.
В PHP 8.0 metadata сделали ленивой: теперь она десериализуется только при явном вызове Phar::getMetadata().

Изменение было предложено в RFC Тайсоном Андре.

@WebDev_Plus
Post #1598 596
Люблю любые инструменты, которые делают разработку HTML-писем максимально простой.

Эта open-source библиотека предлагает целый набор аккуратно сделанных компонентов для создания адаптивных HTML-писем — без возни с громоздкими таблицами и inline-стилями.

Также здесь есть готовые шаблоны, live preview и поддержка популярных email-провайдеров, поэтому разработка писем ощущается почти так же, как работа над обычным веб-приложением :)

Подписывайтесь — впереди ещё больше материалов про AI, программирование и веб-разработку

@WebDev_Plus
Post #1597 582
Представляем <terminal />

Встроенный компонент для Native SDK.
→ Настоящий shell через PTY
→ Работает на базе libghostty-vt
→ Поддержка выделения, scrollback и truecolor
→ Запись терминальных сессий и их офлайн-воспроизведение

Добавьте терминал в свою software factory или оркестратор агентов.

https://github.com/vercel-labs/native

@WebDev_Plus
Post #1595 674
Для геймдева: разработчик выложил в опенсорс свой набор skills для разработки игр на Three.js.

С их помощью можно собрать изометрическую action RPG с управлением камерой, VFX, звуком, ассетами монстров, боевой системой и другими игровыми механиками.

Всё доступно бесплатно:

Skills:
https://github.com/MengTo/Skills

Демо игры:
https://vesperfall.mengto.chatgpt.site

Каталог игровых ассетов:
https://vesperfall.mengto.chatgpt.site/asset-catalog

@WebDev_Plus
Post #1593 657
Не позволяйте своим дизайнам выглядеть как типичный AI-slop.

Этот скилл для Claude Code, Cursor и Codex находит характерные паттерны AI-сгенерированного дизайна и помогает добиваться более уникального результата.

Также ему можно передавать референсы с других сайтов:

→ [https://github.com/Nutlope/hallmark]

@WebDev_Plus
Post #1592 628
Кто-то создал слой памяти для AI-агентов, который заменяет весь стек с векторной базой данных одним файлом.

Проект называется memvid.

Один файл .mv2 хранит данные, эмбеддинги, поисковый индекс и метаданные. Без SQLite, ChromaDB и отдельного сервера. Приложение просто открывает файл, читает или записывает данные, а затем закрывает его.

Результат на LoCoMo для долговременного запоминания диалогов на 35% выше текущего SOTA. Поиск занимает меньше миллисекунды даже при масштабировании. Решение полностью работает офлайн, не привязано к конкретной модели и напрямую интегрируется с Claude Code.

Файл можно закоммитить в Git, передать через scp или отправить кому-то по почте. Вся память переносится как единый артефакт.

Полностью бесплатно и с открытым исходным кодом.

@WebDev_Plus
Post #1591 594
Чувак… это чертовски полезно 🤯

Сайт в духе швейцарского ножа для разработчиков и дизайнеров.

Внутри собрана коллекция небольших инструментов, которые работают прямо в браузере и распределены по разным категориям. Никакой регистрации, трекинга или сбора данных.

Стоит добавить в закладки, особенно если любите быстрые инструменты без лишней ерунды — просто открыл и пользуешься :)

Источник: tools.rmv.fyi


@WebDev_Plus
Post #1590 553
⚡️ TypeScript: превращаем карту объектов в discriminated union с помощью mapped types
#TypeScript

@WebDev_Plus
Post #1589 634
Оооо... это слишком круто. 🤯

Это расширение для VS Code позволяет рисовать прямо внутри редактора — буквально делать наброски мышкой или стилусом.

Идеально подходит для:

* быстрого прототипирования идей;
* планирования архитектуры всего проекта перед написанием кода;
* создания майнд-карт для сложных концепций;
* набросков UI/UX-сценариев.

И всё это без необходимости покидать редактор кода. Очень удобно, особенно во время брейнштормов или созвонов с клиентами :)

@WebDev_Plus
Post #1588 585
При работе с JSONB знали ли вы, что следующие запросы функционально эквивалентны, но используют разные индексы?
Оба проверяют, что по пути user.city находится значение "Denver", но первый использует извлечение значения по пути и оператор сравнения, а второй — оператор вхождения.

B-tree индекс по выражению, использует операторы сравнения:
data->'user'->>'city' = 'Denver'

GIN-индекс, использует операторы вхождения:
data @> '{"user": {"city": "Denver"}}'


@WebDev_Plus
Post #1587 601
WTF???... Люди реально превращают Telegram в «бесконечное» облачное хранилище. 🤯

Такое ощущение, будто об этом вообще незаконно знать… но кто-то действительно создал open-source приложение, которое позволяет использовать свой Telegram-аккаунт как персональный облачный диск.

Возможности:

→ Загрузка файлов через drag-and-drop
→ Стриминг видео и аудио
→ Встроенный просмотрщик PDF
→ Превью файлов
→ Ссылки для скачивания, которыми можно делиться
→ Поддержка Windows, macOS, Linux и Android

Самое интересное: файлы хранятся прямо в вашем Telegram-аккаунте, а приложение не зависит от сторонних серверов :)

Исходники 🔗: github.com/caamer20/Telegram-Drive

@WebDev_Plus
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →