Веб-страница
24K subscribers
1.76K photos
535 videos
1 file
3.96K links
Всё по фронтенду, бэкенду и девопсу в одном месте

Разместить рекламу: @tproger_sales_bot

Правила общения: https://tprg.ru/rules

Другие каналы: @tproger_channels

Сайт: https://tprg.ru/site

Регистрация в перечне РКН: https://tprg.ru/64ai
Download Telegram
Forwarded from Типичный программист
Браузерные расширения украли переписки с ИИ более чем 8 миллионов пользователей

Под видом VPN и инструментов приватности эти расширения для Google Chrome и Microsoft Edge собирали и передавали злоумышленникам полные диалоги пользователей с ChatGPT, Gemini, Claude, Copilot, Perplexity, Grok и другими ИИ-платформами.

Главный виновник — Urban VPN. У него более 6 млн установок в Chrome, высокий рейтинг (4,7 звезды) и даже статус Google Featured, который создавал ощущение надежности. Также вредоносными оказались 1ClickVPN Proxy, Urban Browser Guard и Urban Ad Blocker. Все они распространялись через официальные магазины браузеров.

Вам рекомендуем удалить эти расширения, если они у вас были. А почитать подробности, как воровались переписки как долго, можно у нас на сайте.

#новости #vpn
🤔4
Номер квартиры 404
😁34🤣9🤯4
This media is not supported in your browser
VIEW IN TELEGRAM
Создаём портфолио в формате 2D-игры на JavaScript

Это один из креативных способом показать свои скилы и впечатлить рекрутера/тимлида/интервьюера.

Гайд по разработке: https://youtu.be/wy_fSStEgMs
Демо: https://jslegenddev.github.io/portfolio/
Исходники: https://github.com/JSLegendDev/2d-portfolio-kaboom

#javascript
10
NestJS ужасен?

Если что, это не мнение редакции. Так считает пользователь Reddit и при этом он приводит довольно резонные аргументы:

🔘 Множество переусложнённых решений — например, собственная система внедрения зависимостей, которая мешает новичкам и AI‑инструментам, хотя стандарт ES уже предлагает необходимые механизмы.
🔘 Кодовая база излишне сложна без необходимости, а ревью PR занимает больше времени, чем их написание, из-за скрытых побочных эффектов.
🔘 Много дублирующих и самодельных решений: например, NestJS использует внутренний шаблонизатор, сильно похожий на EJS, но написанный с нуля.
🔘 Проблемы с безопасностью: команда медленно реагирует на найденные уязвимости, принимая исправления спустя месяцы, несмотря на готовые PR с демонстрацией проблемы и решения.
🔘 Масса ненужных зависимостей — зачем NestJS включает webpack в продакшн-сборку?!
🔘 Плохая совместимость с экосистемой.

А вы как считаете? Согласны с этими тезисами? Пишите в комментарии, что думаете.

#обсуждение #nestjs
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15👎52
И новый фреймворк
14👍8
Кликджекинг без JavaScript — это возможно

Researcher Lyra Rebane открыла уязвимость, которая ломает классические защиты: атаку можно провести чистым CSS и SVG, обходя Content Security Policy и X-Frame-Options.

В чём суть:
🔘 SVG фильтры (feBlend, feComposite) работают как полноценные логические вентили;
🔘 можно перехватить пиксели со скрытых iframes, не используя JS;
🔘 защита от XSS есть, но от CSS-атак ещё нет.

Proof-of-concept: атака на Google Docs — украдены текст документа через фальшивую кнопку «Generate Document».

Google выплатила $3133.70 за bug report. Уязвимость всё ещё не пофиксена и затрагивает Chrome, Firefox и другие браузеры.

Полный разбор читайте по ссылке:
https://www.theregister.com/2025/12/05/css_svg_clickjacking/

#безопасность
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9
Сборник около 160 шпаргалок разработчика на любой вкус

Очередная годнота — Quick Reference. Тут собраны шпаргалки не только по стандартным программерским темам по типу регулярок, JS и Markdown, но и есть выжимки с советами по использованию различных сервисов и инструментов: ChatGPT, Vim, Homebrew, FileZilla и многое-многое другое.

Налетаем

#шпаргалка
4
Джун: «Эти книги подняли меня на новый уровень программирования!»

Новый уровень программирования:
😁28👎2🤣2
21 рекомендация по HTML

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

Подробнее в материале.

#html #веб
🔥9👍31
Как понять, ты Boy, Teen или Man в CSS на примере одного бургер-меню?

Попробуйте «тест Кнута для фронтенда» и узнайте, какой у вас уровень в CSS:

Boy: бургер как Unicode-символ — быстро, но без контроля пропорций и анимаций;
Teen: три div ‑а, flex‑контейнер и полный контроль над геометрией и анимацией;
Man: один псевдоэлемент ::after + box-shadow для трёх полосок, плюс скрытая подпись ради доступности.

В статье можете также посмотреть живые примеры каждого решения, а также как растёт «чистота» разметки и глубина владения CSS.

#css #фронтенд
9👍3🤯1
Forwarded from Zen of Python
pyreqwest — новый HTTP-клиент на Rust для Python. GIL-free, HTTP/2 из коробки, sync и async с одинаковым API. Автор — тот же разработчик, который открыл issue #3215 в httpx о 10x просадке производительности при конкурентных запросах.

Зачем переходить с httpx
httpx/httpcore имеют давние проблемы с connection pooling — при 20 конкурентных запросах httpx в 10+ раз медленнее aiohttp. Эти баги висят годами. pyreqwest решает их на уровне архитектуры, потому что connection pool реализован на Rust.

➡️ Если httpx работает — можно не трогать. Но в высоконагруженных системах он станет бутылочным горлышком.

Фичи
🔘HTTP/1.1 и HTTP/2 (у aiohttp нет HTTP/2)
🔘Автодекомпрессия: zstd, gzip, brotli, deflate
🔘TLS через rustls
🔘Connection pooling, стриминг, multipart
🔘Куки, прокси, редиректы, таймауты
🔘Полные type hints, zero Python-зависимостей
🔘Встроенный мок для тестов + подключение к ASGI напрямую

Быстрый старт:
# uv add pyreqwest

from pyreqwest.client import ClientBuilder, SyncClientBuilder

async def example_async():
async with ClientBuilder().error_for_status(True).build() as client:
response = await client.get("https://httpbun.com/get").query({"q": "val"}).build().send()
print(await response.json())

def example_sync():
with SyncClientBuilder().error_for_status(True).build() as client:
print(client.get("https://httpbun.com/get").query({"q": "val"}).build().send().json())


📎 Код на GitHub

@zen_of_python
Please open Telegram to view this post
VIEW IN TELEGRAM
🤩3👎2
Можете не открывать вишлист программиста — мы уже знаем, что там

Cобрали большую и удобную подборку из 65 новогодних подарков для айтишников, разбитую по категориям и бюджету.

Внутри есть идеи для всех: джунов, мидлов, сеньоров и даже тимлидов.

От подставок, мышей и ламп до дронов, консолей, трекеров сна и умного дома.

А ещё — отдельный бонус-раздел с неудачными подарками, чтобы точно не промахнуться и не прослыть тем самым человеком из офиса.
5👍3
Снимайте треники — Новый год вы отмечаете в ОТПадном луке! 

OTP Tech принес вам timeless образ того самого квотербека, который скоро станет королем школы. 

+2026 очков к удаче в грядущем году, если отправите этот скин трём друзьям и с первого раза поймаете его в нашей виртуальной примерочной!

Реклама
3👍1🤩1
Что такое WebRTC — как работает, преимущества и примеры использования

Web Real-Time Communications — относительно новая технология, которая вывела онлайн-коммуникации на принципиально новый уровень. Она имеет открытый исходный код и отвечает за потоковую передачу данных с использованием API JavaScript для связи между браузерами и приложениями в формате peers-to-peers (точка-точка).

WebRTC применяется в таких секторах как образование, управление персоналом и HR, банкинг, страхование, здравоохранение и многих других.

Подробнее о технологии и её особенностях, рассказали в статье.

#webrtc #веб
👍63
Поддерживаю 😏

#кек
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🤣25😁5👍21
В CSS появилась функция if() — наконец-то условная логика прямо в значениях свойств

До этого приходилось использовать Sass, @media, @supports или раскидывать стили по разным селекторам. Теперь можно писать инлайн:

color: if(style(--theme: dark): white; else: black);


Как это работает, где поддерживается и когда использовать — в статье.

#css #фронтенд
🔥20💩6🤔2👍1🤯1
Let's Encrypt теперь выдаёт SSL-сертификаты на голые IP-адреса — домен не нужен

Фича официально запущена и открыта для всех. Раньше для HTTPS на IP приходилось либо платить (от $40/год), либо мириться с self-signed и предупреждениями браузера.​

Нюансы и ограничения
🔘Сертификат живёт только ~6 дней — политика безопасности, IP могут менять владельцев​
🔘Нужен ACME-клиент с поддержкой shortlived profile (Certbot, acme.sh, Caddy — уже умеют)​
🔘DNS-challenge не работает — только HTTP-01 или TLS-ALPN-01​
🔘Автопродление обязательно — иначе протухнет за неделю

Кому пригодится
Хоумлабы, NAS, IoT-девайсы, камеры — всё, что торчит наружу по IP без домена. Тестовые и staging-окружения, эфемерные облачные сервисы. Для продакшена с нормальным доменом смысла мало — 90-дневные сертификаты удобнее.​

➡️ Также важно, что Let's Encrypt переходит на новую иерархию корневых сертификатов «Generation Y» и начнёт сокращать срок действия всех сертификатов: 64 дня в 2027-м, 45 дней в 2028-м.​

@prog_tools
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7
Самые просматриваемые доклады по React, Next.js, Vue, Nuxt и Vite в 2025 году

Когда вы пересмотрите все новогодние фильмы, советуем обратить внимание на доклады по фронтенду и фулстеку, которые стали самыми просматриваемыми в 2025 году. Вы найдёте их по ссылке.

Версия короткого must-watch списка для ленивых:

🔘 Modern React Patterns: Concurrent Rendering, Actions & What’s Next
🔘React Query Exposed by Its Maintainer
🔘TanStack is Your New Favorite Framework
🔘 Hands On: How To Migrate To Next.js 16 and “Use Cache”
🔘 Vite Beyond a Build Tool
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2
Полезная библиотека для понимания работы JS

js2flowchart — библиотека визуализации для преобразования любого кода JavaScript в красивую блок-схему SVG. Вы можете изучать чужой код, делать рефакторинг или писать документацию, не путаясь в функциональности. А начинающим — неплохая шпаргалка по foo, while, if:

https://github.com/Bogdan-Lyashenko/js-code-to-svg-flowchart

@tproger_web #javascript #инструменты
👍5🤔5