Найдите ошибку в React-компоненте: Функциональное Карри
В этом выпуске «Найди ошибку» у нас есть простой React компонент-переключатель, который переключается между активным и неактивным состояниями при нажатии. Однако он не работает как ожидается. Сможете ли вы найти ошибку и исправить её?
Переходите по ссылке, чтобы проверить свои навыки, а также посмотреть на один из вариантов решения проблемы:
https://tproger.ru/articles/najdi-oshibku-v-react-komponente-funkcionalnoe-karri/
#react
В этом выпуске «Найди ошибку» у нас есть простой React компонент-переключатель, который переключается между активным и неактивным состояниями при нажатии. Однако он не работает как ожидается. Сможете ли вы найти ошибку и исправить её?
Переходите по ссылке, чтобы проверить свои навыки, а также посмотреть на один из вариантов решения проблемы:
https://tproger.ru/articles/najdi-oshibku-v-react-komponente-funkcionalnoe-karri/
#react
😁9
Web Almanac 2025: реальные данные о состоянии веба
Web Almanac 2025 — это ежегодный отчёт HTTP Archive о состоянии веба. Он сочетает сырые данные с мнениями экспертов. В издании 16 глав: контент страниц, UX, публикация и дистрибуция.
Данные собраны с 16+ млн сайтов. Идеально для тех, кто хочет понимать тренды веба.
Web Almanac 2025 — это ежегодный отчёт HTTP Archive о состоянии веба. Он сочетает сырые данные с мнениями экспертов. В издании 16 глав: контент страниц, UX, публикация и дистрибуция.
Данные собраны с 16+ млн сайтов. Идеально для тех, кто хочет понимать тренды веба.
🔥6
Forwarded from Нейроканал
Свёрточная нейросеть на чистом JavaScript с визуализацией — без TensorFlow, без библиотек, работает прямо в браузере.
Рисуешь цифру мышкой — сеть её распознаёт. Всё происходит локально в браузере, ничего никуда не отправляется. Автор говорит, что сейчас нигде не работает и написал это просто чтобы попрактиковаться.
Чтобы понять как CNN работает изнутри — отличная штука. Когда пишешь свёртки, пулинг и backprop руками — понимаешь что там происходит лучше, чем после десяти туториалов по PyTorch. Код в одном файле, можно читать последовательно.
📎 Код на GitHub, рабочая демка на сайте автора, на видео скринкаст для ленивых, чтобы не открывать сайт
@neuro_channel
Рисуешь цифру мышкой — сеть её распознаёт. Всё происходит локально в браузере, ничего никуда не отправляется. Автор говорит, что сейчас нигде не работает и написал это просто чтобы попрактиковаться.
Чтобы понять как CNN работает изнутри — отличная штука. Когда пишешь свёртки, пулинг и backprop руками — понимаешь что там происходит лучше, чем после десяти туториалов по PyTorch. Код в одном файле, можно читать последовательно.
@neuro_channel
This media is not supported in your browser
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5👍4
Наклоняем телефон, чтобы ваш UI ожил
Забудьте статичные фолбэки на мобилках. Акселерометр телефона заменяет мышь: наклонил — карточки повернулись в 3D, потряс — элементы «поплыли». Такой подход добавляет интерактивности сайту, а также открывает простор для использования нестандартных механик, созданных специально для мобильных устройств.
Инструкция по реализации в статье.
Забудьте статичные фолбэки на мобилках. Акселерометр телефона заменяет мышь: наклонил — карточки повернулись в 3D, потряс — элементы «поплыли». Такой подход добавляет интерактивности сайту, а также открывает простор для использования нестандартных механик, созданных специально для мобильных устройств.
Инструкция по реализации в статье.
👎9❤4🤔3
GRT Calculator — подбираем размер шрифта на основе золотого сечения
Да, подход не самый обычный. Однако, он позволяет выбрать шрифт, который будет лёгок для чтения и идеально вписываться в дизайн вашего сайта. Достаточно выбрать шрифт, указать его размер и ширину содержимого, а калькулятор покажет, как она будет выглядеть на сайте и подскажет, что стоит поменять, чтобы достичь идеального результата.
Подробнее:
https://grtcalculator.com/
#фронтенд #инструменты
Да, подход не самый обычный. Однако, он позволяет выбрать шрифт, который будет лёгок для чтения и идеально вписываться в дизайн вашего сайта. Достаточно выбрать шрифт, указать его размер и ширину содержимого, а калькулятор покажет, как она будет выглядеть на сайте и подскажет, что стоит поменять, чтобы достичь идеального результата.
Подробнее:
https://grtcalculator.com/
#фронтенд #инструменты
👍5❤2😁2🤔2
Сервисы для тестирования безопасности веб-приложений
Постоянно собирать DevSecOps из опенсорса и разбирать сотни алертов — дорого и долго. Эта статья разбирает несколько готовых сервисов, которые берут большую часть боли на себя и закрывают разные уровни безопасности веб‑приложений:
https://tproger.ru/articles/servisy-dlya-testirovaniya-bezopasnosti-veb-prilozhenij
Постоянно собирать DevSecOps из опенсорса и разбирать сотни алертов — дорого и долго. Эта статья разбирает несколько готовых сервисов, которые берут большую часть боли на себя и закрывают разные уровни безопасности веб‑приложений:
https://tproger.ru/articles/servisy-dlya-testirovaniya-bezopasnosti-veb-prilozhenij
❤2
Forwarded from Точка входа в программирование
Ещё один совет вообще для всех разработчиков
👍13😁6❤2🤔2🔥1🫡1
Forwarded from Сохранёнки программиста
OpenAI рассказала, как обслуживает 800 миллионов пользователей ChatGPT на обычном PostgreSQL — больше миллиона запросов в секунду, без кастомных модификаций.
Архитектура: 1 primary инстанс + ~50 read реплик на Azure-инфраструктуре. Latency на p99 — двузначные миллисекунды. Правда, есть нюанс — write-heavy workloads OpenAI вывела в Azure CosmosDB, а в PostgreSQL оставила read-heavy операции.
Что интересно — они не стали городить сложную систему. Вместо этого взяли стандартный PostgreSQL и выжали из него максимум через базовые практики: connection pooling (PgBouncer) для переиспользования соединений вместо создания новых, query optimization для профилирования и переписывания тяжёлых запросов, strategic indexing — индексы ровно там, где нужны.
Для AI-функций используют расширение
База обслуживает данные пользователей, истории разговоров и API-взаимодействия.
➡️ Главный вывод: PostgreSQL действительно масштабируется до экстремальных нагрузок, если правильно настроить. Не нужно сразу бежать за NewSQL или распределёнными системами — сначала стоит выжать всё из проверенных решений.
Инженеры OpenAI подчёркивают: успех в том, что они фокусировались на best practices, а не на переизобретении колеса. Connection pool, индексы, read реплики — это всё есть в документации PostgreSQL. Просто нужно применить грамотно.
Годный пример того, что правильное разделение нагрузки важнее выбора модной БД. PostgreSQL для чтения + CosmosDB для записи — и никакого шардинга одной базы. Простая архитектура побеждает.
📎 OpenAI Blog, Hacker News
@prog_stuff
Архитектура: 1 primary инстанс + ~50 read реплик на Azure-инфраструктуре. Latency на p99 — двузначные миллисекунды. Правда, есть нюанс — write-heavy workloads OpenAI вывела в Azure CosmosDB, а в PostgreSQL оставила read-heavy операции.
Что интересно — они не стали городить сложную систему. Вместо этого взяли стандартный PostgreSQL и выжали из него максимум через базовые практики: connection pooling (PgBouncer) для переиспользования соединений вместо создания новых, query optimization для профилирования и переписывания тяжёлых запросов, strategic indexing — индексы ровно там, где нужны.
Для AI-функций используют расширение
pgvector — хранят и ищут высокоразмерные векторы (embeddings) для семантического поиска в данных ChatGPT.База обслуживает данные пользователей, истории разговоров и API-взаимодействия.
Инженеры OpenAI подчёркивают: успех в том, что они фокусировались на best practices, а не на переизобретении колеса. Connection pool, индексы, read реплики — это всё есть в документации PostgreSQL. Просто нужно применить грамотно.
Годный пример того, что правильное разделение нагрузки важнее выбора модной БД. PostgreSQL для чтения + CosmosDB для записи — и никакого шардинга одной базы. Простая архитектура побеждает.
@prog_stuff
Please open Telegram to view this post
VIEW IN TELEGRAM
❤19👍3
🤖 Краулер Meta накрутил счёт за хостинг в 60 раз
Разработчик обнаружил, что бот Meta (
Все запросы шли на страницы с серверным рендерингом. Кэширование не помогло: краулеры заходят на уникальные URL один раз и уходят. Счёт Vercel вырос с $30 до $1 933.
Фикс — пара строк в robots.txt:
Вопрос к Vercel: почему защита от агрессивного краулинга не включена по умолчанию?
И к Meta: зачем 11 млн запросов — ради превью ссылок?
Вряд ли они мне тут ответят, конечно.
Разработчик обнаружил, что бот Meta (
meta-externalagent) отправил на его сайт 11 млн запросов за месяц, почти половину от трафика реальных пользователей. Googlebot за то же время сделал лишь 1,1 млн.Все запросы шли на страницы с серверным рендерингом. Кэширование не помогло: краулеры заходят на уникальные URL один раз и уходят. Счёт Vercel вырос с $30 до $1 933.
Фикс — пара строк в robots.txt:
User-agent: meta-externalagent
Disallow: /Вопрос к Vercel: почему защита от агрессивного краулинга не включена по умолчанию?
И к Meta: зачем 11 млн запросов — ради превью ссылок?
Вряд ли они мне тут ответят, конечно.
😁8🤯4❤2
Forwarded from Представляешь,
Зачем это всё начал, непонятно...
Прощай, вайб-кодинг: разработчик вернулся к ручному коду после 2 лет с ИИ
Разработчик под ником atmoio два года писал код в основном через нейросети, но в итоге почти полностью отказался от «вайб-кодинга». Оказалось, что на длинной дистанции ИИ-генерация создает больше проблем, чем решает.
Три главных поинта, которые он понял:
1. Писать подробные спецификации для ИИ иногда дольше, чем кодить самому. При этом нейросети плохо адаптируются к изменениям архитектуры в моменте.
2. ИИ пишет код, который логичен локально, но рушит целостность всей системы. В итоге проект превращается в набор разрозненных кусков с дублирующейся логикой.
3. Со временем даже сам ИИ начинает путаться в сгенерированной им кодовой базе. Исправление ошибок съедает всё время, сэкономленное на старте.
Автор оставил ИИ только для мелких вспомогательных задач. Теперь он работает быстрее и увереннее, потому что полностью контролирует архитектуру и логику своего продукта.
Подробности на сайте.
@your_tech
Прощай, вайб-кодинг: разработчик вернулся к ручному коду после 2 лет с ИИ
Разработчик под ником atmoio два года писал код в основном через нейросети, но в итоге почти полностью отказался от «вайб-кодинга». Оказалось, что на длинной дистанции ИИ-генерация создает больше проблем, чем решает.
Три главных поинта, которые он понял:
1. Писать подробные спецификации для ИИ иногда дольше, чем кодить самому. При этом нейросети плохо адаптируются к изменениям архитектуры в моменте.
2. ИИ пишет код, который логичен локально, но рушит целостность всей системы. В итоге проект превращается в набор разрозненных кусков с дублирующейся логикой.
3. Со временем даже сам ИИ начинает путаться в сгенерированной им кодовой базе. Исправление ошибок съедает всё время, сэкономленное на старте.
Автор оставил ИИ только для мелких вспомогательных задач. Теперь он работает быстрее и увереннее, потому что полностью контролирует архитектуру и логику своего продукта.
Подробности на сайте.
@your_tech
👍24😁13
Веб-страница
CSS counters в подходе Atomic CSS CSS Counters — отличный инструмент для работы с кастомными счётчиками. Но применение его не ограничивается только рукописным CSS — его легко и эффективно можноиспользовать в рамках Atomic CSS подхода. Давайте посмотрим,…
CSS Counters в Atomic CSS: вложенность и наследование
Вторая часть цикла про CSS‑счётчики. Здесь мы углубимся в кастомные счётчики по спекам и MDN, узнаем как работает наследование значений, области видимости и посмотрим примеры многоуровневых списков.
Вторая часть цикла про CSS‑счётчики. Здесь мы углубимся в кастомные счётчики по спекам и MDN, узнаем как работает наследование значений, области видимости и посмотрим примеры многоуровневых списков.
👍3❤1
Lodash получил первый security-релиз за несколько лет. Версия 4.17.23 закрывает CVE-2025-13465 — prototype pollution в функциях `_.unset` и `_.omit`
Благодаря этой уязвимости атакующий может удалять методы из
Обновление обратно совместимо — никаких breaking changes. Можно обновляться без опасений.
Проверьте свой проект:
Если версия <= 4.17.22 — обновляйтесь:
Lodash годами был без мейнтейнеров. Тесты не запускались, security-отчёты копились, инфраструктура деградировала. OpenJS Foundation и Sovereign Tech Agency профинансировали реанимацию проекта. Создали Technical Steering Committee, восстановили CI/CD, формализовали процессы. Теперь Lodash может отвечать на уязвимости и выпускать релизы.
В планах Lodash 5.0 — агрессивное удаление API с нативными заменами, меньший размер, отказ от legacy runtime.
Благодаря этой уязвимости атакующий может удалять методы из
Object.prototype, но не перезаписывать их. Затронуты версии 4.0.0–4.17.22 всех пакетов: lodash, lodash-es, lodash-amd. Отдельный пакет lodash.unset патча не получил.Обновление обратно совместимо — никаких breaking changes. Можно обновляться без опасений.
Проверьте свой проект:
npm ls lodash lodash-es lodash-amd
Если версия <= 4.17.22 — обновляйтесь:
npm update lodash
Lodash годами был без мейнтейнеров. Тесты не запускались, security-отчёты копились, инфраструктура деградировала. OpenJS Foundation и Sovereign Tech Agency профинансировали реанимацию проекта. Создали Technical Steering Committee, восстановили CI/CD, формализовали процессы. Теперь Lodash может отвечать на уязвимости и выпускать релизы.
В планах Lodash 5.0 — агрессивное удаление API с нативными заменами, меньший размер, отказ от legacy runtime.
OpenJS Foundation
Sovereign Tech Agency Invests in Lodash’s Next Chapter in Open Source | OpenJS Foundation
With OpenJS support, Lodash is becoming more secure, more modern, and guided by a broader community of contributors
🔥10
Когда отладил все баги в коде, избавился от ворнингов и заливаешь сайт на прод, но получаешь ошибки HTTP:
This media is not supported in your browser
VIEW IN TELEGRAM
🔥4