Тим Бернерс-Ли: как физик из ЦЕРН практически в одиночку написал три главных протокола, чтобы создать Интернет
https://habr.com/p/969776/
https://habr.com/p/969776/
Habr
Тим Бернерс-Ли: как физик из ЦЕРН практически в одиночку написал три главных протокола, чтобы создать Интернет
Имя британского инженера-программиста Тима Бернерса-Ли не так на слуху, как у современных IT-гигантов, но именно благодаря его труду интернет стал тем, чем он является сегодня. Он практически в...
Forwarded from Веб-стандарты (Vadim Makeev)
Dialog и popover для слоистого UI. Дэвид Херрон рассказывает, как
https://web.dev/articles/baseline-in-action-dialog-popover
<dialog> и popover с поддержкой Baseline могут заменить самописные модальные окна, обеспечивая доступность, управление фокусом, верхний слой, а также анимированные появления с @starting-style, чтобы не изобретать велосипед. #html #baselinehttps://web.dev/articles/baseline-in-action-dialog-popover
Forwarded from XOR
План на декабрь есть: уже завтра выйдет ежегодный адвент-календарь с задачами и головоломками по программированию — Advent of Code.
Календарь в этот раз рассчитан на 12 дней, так что каждый день почти полмесяца будут выходить новые задачи. Решать их можно на любом языке программирования. А если хочется размять голову перед стартом, можно изучить прошлогодние головоломки и их решение на SQL — забираем.
Удачи🤩
@xor_journal
Календарь в этот раз рассчитан на 12 дней, так что каждый день почти полмесяца будут выходить новые задачи. Решать их можно на любом языке программирования. А если хочется размять голову перед стартом, можно изучить прошлогодние головоломки и их решение на SQL — забираем.
Удачи
@xor_journal
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from FrontEndDev
Совершенно новые макеты с CSS Subgrid
Джош Комю рассказывает как с помощью Subgrid можно выровнять глубоко вложенные элементы по основной сетке, решая проблемы семантической разметки и сложных макетов, адаптирующихся к содержимому.
[Краткий пересказ]
https://www.joshwcomeau.com/css/subgrid/
Джош Комю рассказывает как с помощью Subgrid можно выровнять глубоко вложенные элементы по основной сетке, решая проблемы семантической разметки и сложных макетов, адаптирующихся к содержимому.
[Краткий пересказ]
https://www.joshwcomeau.com/css/subgrid/
Как функциональное программирование изменило фронтенд и почему отрасль возвращается к платформе / Хабр
https://habr.com/ru/companies/alfa/articles/975256/
https://habr.com/ru/companies/alfa/articles/975256/
Хабр
Как функциональное программирование изменило фронтенд и почему отрасль возвращается к платформе
Недавно я наткнулась на статью «How Functional Programming Shaped Modern Frontend» и неожиданно поймала себя на мысли: мы уже настолько привыкли к функциональному программированию (ФП) в JavaScript,...
Бросаем Event Loop, переходим на Горутины: Go для JS-девелоперов (Часть 1)
https://habr.com/p/976312/
https://habr.com/p/976312/
Habr
Бросаем Event Loop, переходим на Горутины: Go для JS-девелоперов (Часть 1)
Если JS/TS это гибкий асинхронный клей для веба на одном потоке, то Go это строгий инструмент для облака с честным параллелизмом. Главная проблема новичка сейчас это старые...
CSS Grid Lanes: будущее masonry-раскладок в вебе
https://habr.com/p/978882/
https://habr.com/p/978882/
Habr
CSS Grid Lanes: будущее masonry-раскладок в вебе
Команда JavaScript for Devs подготовила перевод статьи о CSS Grid Lanes — новом подходе к masonry-раскладкам, который наконец-то становится нативной частью CSS. Grid Lanes используют всю мощь CSS...
🔥1
Forwarded from Веб-стандарты (Vadim Makeev)
Как свесить кнопку закрытия из диалога. Дарин Сеннеф показывает, что с помощью CSS Anchor Positioning можно легко свесить кнопку из диалога без сложных трюков с
https://www.darins.page/articles/close-button-hang-dialog
overflow и обёртками. Это решение проще, доступнее и требует лишь мелкой доработки с прокруткой. #css #dialoghttps://www.darins.page/articles/close-button-hang-dialog
Вы больше не новичок в Git. Повышаем квалификацию с помощью 7 команд
https://habr.com/p/978320/
https://habr.com/p/978320/
Habr
Вы больше не новичок в Git. Повышаем квалификацию с помощью 7 команд
Каждому разработчику когда-нибудь приходилось срочно переключаться между ветками, восстанавливать потерянный коммит или аккуратно вырезать одно исправление. Это можно делать примитивно с помощью...
Forwarded from CodeCamp
Отменяем запись на платные курсы: нарыл монументальную базу знаний для тех, кто учит программирование самостоятельно 😮
Главная фишка репозитория — он почти полностью на русском языке. Автор собрал и структурировал тонны материалов, чтобы вы не тонули в англоязычной документации на старте:
— Материалы от «Hello World» до архитектуры высоких нагрузок и System Design;
— Отдельные разделы по многопоточности, алгоритмам, сборке мусора (GC) и внутренностям .NET;
— Гайды по Git, CI/CD, тестированию и даже правильному использованию GPT в кодинге;
— Записи лекций, книги, доклады с конференций и годные YouTube-каналы.
Развивайтесь💃
Главная фишка репозитория — он почти полностью на русском языке. Автор собрал и структурировал тонны материалов, чтобы вы не тонули в англоязычной документации на старте:
— Материалы от «Hello World» до архитектуры высоких нагрузок и System Design;
— Отдельные разделы по многопоточности, алгоритмам, сборке мусора (GC) и внутренностям .NET;
— Гайды по Git, CI/CD, тестированию и даже правильному использованию GPT в кодинге;
— Записи лекций, книги, доклады с конференций и годные YouTube-каналы.
Развивайтесь
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Веб-стандарты (Vadim Makeev)
Разбираемся с Git worktrees. Марко Хабер рассказывает, как держать несколько веток в отдельных папках, быстро переключаться без stash и изолировать рискованные правки. Он также объясняет, как Cursor использует worktrees для параллельных агентов и как автоматизировать установку зависимостей и копирование env-файлов. #git #tools
https://www.marcohaber.dev/blog/git-worktrees
https://www.marcohaber.dev/blog/git-worktrees
Forwarded from Заметки разработчика
Новый выпуск Firefox — это не просто набор обновлений, а настоящий прорыв в инструментах для веб-разработки. Основные нововведения: CSS Anchor Positioning по умолчанию, мощный Navigation API и расширенные возможности View Transitions. Давайте разберем все детали.
CSS Anchor Positioning (якорное позиционирование) — это настоящая революция в CSS. Теперь можно «привязывать» один элемент (например, тултип или выпадающее меню) к другому (якорю) прямо в CSS, без JavaScript, создавая отзывчивые интерфейсы.
Что теперь можно в Firefox 147:
Включено по умолчанию! Больше никаких флагов.
anchor-center: Новое, удобное значение для свойств align-self, justify-self и других, чтобы центрировать элемент относительно его якоря.position-anchor: none: Новое значение для отвязки элемента от якоря.@position-try правила отображаются в панели CSS.Практический пример создания тултипа:
/* 1. Объявляем якорь (кнопка) */
.button {
anchor-name: --tooltip-anchor;
}
/* 2. Создаем и привязываем тултип */
.tooltip {
position: absolute;
position-anchor: --tooltip-anchor; /* Связываем с кнопкой */
bottom: anchor(top); /* Размещаем тултип над кнопкой */
left: anchor(center); /* Центрируем по горизонтали */
translate: -50% 0; /* Точная центровка */
}
Преимущество: такой тултип автоматически адаптируется к прокрутке и границам экрана.
🛠 Улучшения для SPA: Navigation API и View Transitions
Firefox 147 делает разработку одностраничных приложений (SPA) значительно удобнее.
⚡️ Navigation API — новый стандарт для управления навигацией.
Позволяет перехватывать навигационные действия, управлять историей браузера и получать информацию о записях в истории. Он призван заменить History API и
window.location, устраняя их недостатки. Подробнее об API можно узнать в полной спецификации на MDN.🎭 View Transitions (Типы переходов)
API для плавных анимаций между состояниями страницы теперь поддерживает типы переходов (
types). Это позволяет задавать разные анимации для разных обновлений контента (например, «переход вперед» и «переход назад»). Доступно свойство Document.activeViewTransition для получения активного перехода. Узнать больше можно в полном руководстве по View Transition API.Инструменты разработчика также получили улучшения для View Transitions: псевдоэлементы :
:view-transition теперь видны в DOM, а анимации — в панели анимаций.Iterator.concat() для объединения итераторов.-webkit-perspective для совместимости, новые единицы измерения (rcap, rch, rex, ric) на основе шрифта корневого элемента, свойства counter-* и quotes для ::marker.API: WebGPU теперь для всех macOS на Apple Silicon, Brotli-сжатие в CompressionStream, CSS-модули (импорт стилей как CSSStyleSheet), Service Workers как ES-модули.localhost.Firefox 147 — это не просто обновление, а серьезный шаг к более выразительной, производительной и простой в разработке веб-платформе. CSS Anchor Positioning обещает сократить объем пользовательского JavaScript для раскладки. Navigation API и View Transitions делают навигацию в SPA предсказуемой и кинематографичной. А WebGPU и другие API открывают двери для новых классов веб-приложений.
#Firefox #WebDev #CSS #JavaScript #AnchorPositioning #ViewTransitions #NavigationAPI #Frontend
Please open Telegram to view this post
VIEW IN TELEGRAM
Что такое Skills, Prompts, Projects, MCP и сабагенты? База для понимания агентной экосистемы / Хабр
https://habr.com/ru/articles/987528/
https://habr.com/ru/articles/987528/
Что спросить у тимлида в первый день на проекте?
https://habr.com/p/985974/
https://habr.com/p/985974/
Habr
Что спросить у тимлида в первый день на проекте?
QA-онбординг: 12 вопросов, которые спасут ваш испытательный срок Вы вышли на новый проект. Вокруг – незнакомые лица, десятки чатов в Slack, сотни задач в Jira и полное непонимание, за что хвататься....
Forwarded from Мишка на сервере (Mikhail Savin)
Как OpenAI крутит PostgreSQL на 800M пользователей и миллионы QPS
Привет,
Что по сути сделали OpenAI:
- Оставили один primary PostgreSQL без шардинга, но навесили почти 50 read‑реплик по регионам, чтобы разрулить гигантский read‑трафик и держать низкие задержки.
- Все, что можно шардинровать и что много пишет, уехало в Cosmos DB и другие шардированные системы — Postgres перестали использовать как универсальный молоток для любых нагрузок.
- Жёстко оптимизировали запросы: убирали монструозные joins (например, на 12 таблиц), ломали ORM‑магию, разбивали тяжелую логику по слоям, настраивали таймауты и следили за long‑running / idle‑транзакциями.
- Боролись с MVCC‑болью (bloat, dead tuples, write amplification) через снижение лишних записей, lazy writes, аккуратный backfill с rate‑limit'ами и перенос write‑heavy кейсов из PostgreSQL.
- Защитились от "шумных соседей": развели high‑priority и low‑priority трафик по разным инстансам, чтобы новая фича с кривыми запросами не ложила критичные пути.
- Везде, где можно, поставили PgBouncer (statement/transaction pooling), чтобы не умереть от connection storm при лимите в 5000 коннектов на инстанс.
- Снизили риск SEV‑0 от падения primary: HA с hot‑standby, быстрый failover, максимум критичных чтений — с реплик, чтобы при проблемах с записью сервис хотя бы читал.
- Поверх этого — rate limiting и load shedding на всех уровнях: приложение, пулер, прокси, конкретные query digests в ORM, плюс защита от retry storm'ов.
- Сильно ограничили эволюцию схемы: только лёгкие изменения, 5‑секундный timeout на DDL, без full table rewrite; новые таблицы — уже не в этом Postgres, а в шардированных системах.
В результате — миллионы QPS, p99 в низких десятках миллисекунд и около пяти девяток доступности, при этом за год только один SEV‑0 инцидент на Postgres, и тот во время дикого роста (ImageGen, +100M новых юзеров за неделю).
Что можно утащить к себе
- Не пытаться "передумать" базу: принять ограничения PostgreSQL (один writer, MVCC, bloat) и строить архитектуру вокруг этого, а не против этого.
- Относиться к read‑репликам как к основному инструменту масштабирования, а к primary — как к самому дорогому и охраняемому ресурсу.
- Ввести жёсткие правила для схемы и DDL: никакого "ALTER в прайм‑тайм прямо в прод", только безопасные паттерны миграций, троттлинг backfill’ов и чёткие SLO на операции с данными.
- Отдельно думать про защиту от кэш‑штормов: cache locking/lease, чтобы не просадить базу, когда Redis/мемкэш внезапно "забывает" ключи.
Вопросы к размышлению
1. Узнаешь ли ты свои продовые боли в описанных кейсах? Где у тебя узкое место — write‑нагрузка, длинные запросы, connection storm, кэш‑шторма?
2. Что ты сейчас используешь для изоляции "шумных соседей": отдельные БД, dedicated инстансы, resource groups, QoS на уровне запросов?
3. Есть ли у вас формальные правила для миграций схемы и кто их реально стопорит, когда хочется "просто добавить колонку"?
4. Насколько ты доверяешь read‑репликам — используешь ли их агрессивно, как OpenAI, или всё ещё боишься lag'а и читаешь почти всё с primary?
Делись в комментах кейсами и анти‑паттернами — особенно интересно, где вы сознательно не стали шардинговать Postgres, а выжали максимум из одной инстанции.
#PostgreSQL #SRE #DevOps #HighLoad #ChatGPT #Scalability #DatabaseReliability #DistributedSystems #Caching #Replication
Привет,
%username%! Статья от OpenAI — это довольно любопытный пример того, как не городить зоопарк баз, а выжать максимум из одного PostgreSQL, понимая его сильные и слабые стороны.Что по сути сделали OpenAI:
- Оставили один primary PostgreSQL без шардинга, но навесили почти 50 read‑реплик по регионам, чтобы разрулить гигантский read‑трафик и держать низкие задержки.
- Все, что можно шардинровать и что много пишет, уехало в Cosmos DB и другие шардированные системы — Postgres перестали использовать как универсальный молоток для любых нагрузок.
- Жёстко оптимизировали запросы: убирали монструозные joins (например, на 12 таблиц), ломали ORM‑магию, разбивали тяжелую логику по слоям, настраивали таймауты и следили за long‑running / idle‑транзакциями.
- Боролись с MVCC‑болью (bloat, dead tuples, write amplification) через снижение лишних записей, lazy writes, аккуратный backfill с rate‑limit'ами и перенос write‑heavy кейсов из PostgreSQL.
- Защитились от "шумных соседей": развели high‑priority и low‑priority трафик по разным инстансам, чтобы новая фича с кривыми запросами не ложила критичные пути.
- Везде, где можно, поставили PgBouncer (statement/transaction pooling), чтобы не умереть от connection storm при лимите в 5000 коннектов на инстанс.
- Снизили риск SEV‑0 от падения primary: HA с hot‑standby, быстрый failover, максимум критичных чтений — с реплик, чтобы при проблемах с записью сервис хотя бы читал.
- Поверх этого — rate limiting и load shedding на всех уровнях: приложение, пулер, прокси, конкретные query digests в ORM, плюс защита от retry storm'ов.
- Сильно ограничили эволюцию схемы: только лёгкие изменения, 5‑секундный timeout на DDL, без full table rewrite; новые таблицы — уже не в этом Postgres, а в шардированных системах.
В результате — миллионы QPS, p99 в низких десятках миллисекунд и около пяти девяток доступности, при этом за год только один SEV‑0 инцидент на Postgres, и тот во время дикого роста (ImageGen, +100M новых юзеров за неделю).
Что можно утащить к себе
- Не пытаться "передумать" базу: принять ограничения PostgreSQL (один writer, MVCC, bloat) и строить архитектуру вокруг этого, а не против этого.
- Относиться к read‑репликам как к основному инструменту масштабирования, а к primary — как к самому дорогому и охраняемому ресурсу.
- Ввести жёсткие правила для схемы и DDL: никакого "ALTER в прайм‑тайм прямо в прод", только безопасные паттерны миграций, троттлинг backfill’ов и чёткие SLO на операции с данными.
- Отдельно думать про защиту от кэш‑штормов: cache locking/lease, чтобы не просадить базу, когда Redis/мемкэш внезапно "забывает" ключи.
Вопросы к размышлению
1. Узнаешь ли ты свои продовые боли в описанных кейсах? Где у тебя узкое место — write‑нагрузка, длинные запросы, connection storm, кэш‑шторма?
2. Что ты сейчас используешь для изоляции "шумных соседей": отдельные БД, dedicated инстансы, resource groups, QoS на уровне запросов?
3. Есть ли у вас формальные правила для миграций схемы и кто их реально стопорит, когда хочется "просто добавить колонку"?
4. Насколько ты доверяешь read‑репликам — используешь ли их агрессивно, как OpenAI, или всё ещё боишься lag'а и читаешь почти всё с primary?
Делись в комментах кейсами и анти‑паттернами — особенно интересно, где вы сознательно не стали шардинговать Postgres, а выжали максимум из одной инстанции.
#PostgreSQL #SRE #DevOps #HighLoad #ChatGPT #Scalability #DatabaseReliability #DistributedSystems #Caching #Replication
OpenAI
Scaling PostgreSQL to power 800 million ChatGPT users
An inside look at how OpenAI scaled PostgreSQL to millions of queries per second using replicas, caching, rate limiting, and workload isolation.
Git-хуки, которые не дают коммитить плохой код
https://habr.com/p/993870/
https://habr.com/p/993870/
Habr
Git-хуки, которые не дают коммитить плохой код
Здравствуйте, коллеги программисты! Большинство фейлов в CI — это мелочи: забытый console.log , форматирование, линт, сломанный импорт, файл без теста. Такие ошибки не должны доезжать до сборки или...
Zod: строгая валидация и удобная типизация. Опыт перехода
https://habr.com/p/994886/
https://habr.com/p/994886/
Habr
Zod: строгая валидация и удобная типизация. Опыт перехода
Привет, Хабр! Меня зовут Сергей, я фронтенд-инженер в Банки.ру. В этой статье расскажу, как Zod помог нам перестать писать валидацию на уровне полей, подружился с React Hook Form и стал единым...
Forwarded from CodeCamp
This media is not supported in your browser
VIEW IN TELEGRAM
Реактивный npm-серфинг: новый браузер для главного реестра npm-пакетов, после которого официальный сайт хочется закрыть навсегда 😈
Чистейший UX-буст для тех, кому надоело ждать вечность ради чека зависимостей и веса бандла:
— Встроенный просмотрщик кода с подсветкой и детекция уязвимостей на лету;
— Поиск хоткеями, индикаторы ESM/CJS и статистика загрузок в одно касание;
— Бесшовная интеграция: просто добавь «x» перед названием домена в URL, чтобы сменить интерфейс на человеческий.
Наслаждайтесь😊
Чистейший UX-буст для тех, кому надоело ждать вечность ради чека зависимостей и веса бандла:
— Встроенный просмотрщик кода с подсветкой и детекция уязвимостей на лету;
— Поиск хоткеями, индикаторы ESM/CJS и статистика загрузок в одно касание;
— Бесшовная интеграция: просто добавь «x» перед названием домена в URL, чтобы сменить интерфейс на человеческий.
Наслаждайтесь
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Веб-стандарты (Vadim Makeev)
Декларативное меню на <dialog> с invoker commands. Дэвид Бушелл показывает гамбургерное меню на нативном
https://dbushell.com/2026/02/12/declarative-dialog-menu-invoker-commands/
<dialog> с новым Invoker Command API и небольшим JS-фолбэком для старых браузеров. Плюс заметки про :focus-visible в WebKit, closedby="any" и view transitions. #webdev #csshttps://dbushell.com/2026/02/12/declarative-dialog-menu-invoker-commands/
Forwarded from Frontend по-флотски 👨💻 | AI & Modern Dev
Vize — Vue.js тулчейн на Rust ⚡️
Знаешь тренд на переписывание JS-инфраструктуры на Rust? Вот тебе свежий пример — Vize. Это неофициальный тулчейн для Vue, который заменяет сразу кучу инструментов одним нативным бинарником.
Что умеет?
Компиляция. Собирает Vue SFC файлы. 15 000 компонентов (36.9 МБ) за ~500мс благодаря многопоточности через Rayon и arena allocation. Заявляют 8.3x быстрее текущих решений.
Линтинг и форматирование. vize fmt и vize lint --fix — прямо из коробки, без отдельных пакетов.
Тайп-чекинг. vize check --strict — встроенная проверка типов для Vue шаблонов.
Vite плагин. Drop-in замена
Vapor Mode. Поддержка Vue 3.6 Vapor — компиляция без виртуального DOM.
Musea. Встроенная альтернатива Storybook — компонентная галерея с playground для пропсов, дизайн-токенами и a11y аудитом.
WASM. Компилятор работает прямо в браузере — для плейграундов и документации.
MCP сервер. AI-ассистенты могут читать и понимать твои Vue компоненты через Musea. Тот самый Model Context Protocol.
Автор — ubugeeei, участник Vue.js Japan User Group и организатор Vue Fes Japan.
Проект пока в альфе (v0.0.1-alpha), но развивается активно.
Следить👇
🔗 https://vizejs.dev
🐙 https://github.com/ubugeeei/vize
Знаешь тренд на переписывание JS-инфраструктуры на Rust? Вот тебе свежий пример — Vize. Это неофициальный тулчейн для Vue, который заменяет сразу кучу инструментов одним нативным бинарником.
Что умеет?
Компиляция. Собирает Vue SFC файлы. 15 000 компонентов (36.9 МБ) за ~500мс благодаря многопоточности через Rayon и arena allocation. Заявляют 8.3x быстрее текущих решений.
Линтинг и форматирование. vize fmt и vize lint --fix — прямо из коробки, без отдельных пакетов.
Тайп-чекинг. vize check --strict — встроенная проверка типов для Vue шаблонов.
Vite плагин. Drop-in замена
@vitejs/plugin-vue — просто меняешь импорт и получаешь нативную скорость компиляции.Vapor Mode. Поддержка Vue 3.6 Vapor — компиляция без виртуального DOM.
Musea. Встроенная альтернатива Storybook — компонентная галерея с playground для пропсов, дизайн-токенами и a11y аудитом.
WASM. Компилятор работает прямо в браузере — для плейграундов и документации.
MCP сервер. AI-ассистенты могут читать и понимать твои Vue компоненты через Musea. Тот самый Model Context Protocol.
Автор — ubugeeei, участник Vue.js Japan User Group и организатор Vue Fes Japan.
Проект пока в альфе (v0.0.1-alpha), но развивается активно.
Следить
Please open Telegram to view this post
VIEW IN TELEGRAM
Как фронтенд получает данные с сервера: лучшие практики 2026 / Хабр
https://habr.com/ru/companies/otus/articles/994238/
https://habr.com/ru/companies/otus/articles/994238/
Хабр
Как фронтенд получает данные с сервера: лучшие практики 2026
Всем привет, меня зовут Сергей Прощаев, и в этой статье расскажу про то, что обычно остаётся за кадром для многих бэкенд‑разработчиков — про «вторую половину» API. Много...