Forwarded from Веб-стандарты (Vadim Makeev)
Представляем Vite+ — единую экосистему инструментов для JavaScript. Эван Ю анонсировал на ViteConf новую надстройку над Vite, объединяющий создание, сборку, тестирование, линтинг и форматирование кода, а также сборку библиотек и визуальные инструменты в одной среде. Вся цепочка написана на Rust и совместима с React, Vue, SvelteKit и другими фреймворками. Vite+ будет бесплатен для индивидуальных и опенсорсных проектов, но получит коммерческую лицензию для бизнеса. #vite #js
https://voidzero.dev/posts/announcing-vite-plus
https://voidzero.dev/posts/announcing-vite-plus
Forwarded from CodeCamp
Девопсы, держите находку: мощный open source-мониторинг, который ставится за пару минут и сразу начинает следить за всем, что может упасть.
— HTTP, HTTPS, TCP, DNS, SQL, Docker, даже Steam-сервера;
— Уведомления в Telegram, Discord, Slack, Email и ещё в 90+ сервисов;
— Проверки каждые 20 секунд и красивые дашборды;
— Следит за SSL-сертификатами, портами, доменами и контейнерами;
— Есть мультистраничные статус-пейджи и поддержка 2FA.
Работает быстро, выглядит приятно, не требует облака.
Идеален, как и вы💗
— HTTP, HTTPS, TCP, DNS, SQL, Docker, даже Steam-сервера;
— Уведомления в Telegram, Discord, Slack, Email и ещё в 90+ сервисов;
— Проверки каждые 20 секунд и красивые дашборды;
— Следит за SSL-сертификатами, портами, доменами и контейнерами;
— Есть мультистраничные статус-пейджи и поддержка 2FA.
Работает быстро, выглядит приятно, не требует облака.
Идеален, как и вы
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Forwarded from ServerAdmin.ru
Я всегда без исключения в Linux использую swap в виде отдельного файла, а не раздела. Причина очень простая - это намного удобнее. Из глубины веков тянется шлейф убеждений, что отдельный раздел работает быстрее, чем файл. Теоретически - да, практически не понятно.
Во-первых, swap в принципе редко используется интенсивно. Во-вторых, как замерить скорость его работы на реальной нагрузке? В-третьих, разница если и будет, то незначительная. Swap в виде файла позволяет на лету менять свой размер или вовсе его отключать, если экстренно понадобится доступное место. Это весомое преимущество, которое стоит использовать.
Swap в 1 ГБ добавляю так:
Если всё ок, то добавляю в
Отдельно отмечу, что не рекомендуется создавать пустой файл с помощью truncate или fallocate:
Он создастся мгновенно, в отличие от
Если swap уже настроен в виде раздела, то трогать уже не буду, если только это не пустая виртуалка. Иногда попадаются виртуалки с lvm, где swap в виде отдельного lv раздела. Это стандартная схема установки в Debian. В этом случае его можно удалить, объединить с основным, а swap сделать в виде файла.
Все эти операции безопасны и могут быть выполнены без перезагрузки. Но как я уже сказал, на работающих серверах не рекомендую это делать, так как потом корневой раздел надо будет увеличивать. Это потенциально небезопасная операция. Но если сильно прижмёт, то сделать можно. Я так делал и не раз.
Последовательность действий тут такая. Смотрим список разделов:
Небольшая виртуалка с диском на 30 ГБ, где 1,5 отдано под swap. Уберём этот раздел и объединим с основным. Отключаем этот swap:
И сразу же проверьте файл /etc/fstab. Там нужно удалить строку с подключением этого раздела. Выглядит примерно так:
Закомментируйте её. Удаляем раздел со свапом:
Расширяем корневой раздел:
И растягиваем файловую систему на весь раздел, так как увеличение раздела не подразумевает её автоматическое увеличение. Она ничего не знает об увеличенном разделе, если ей об этом не сказать.
Проверяем, что получилось:
Раздел стал 29G против предыдущих 27.5G. Дальше можно добавлять swap в виде файла, как я показал в начале. И обязательно, когда всё закончите, перезагрузите виртуалку и убедитесь, что всё в порядке. Все эти операции не требуют перезагрузки, но если где-то ошиблись, особенно в fstab, можете получить проблемы во время загрузки. По горячим следам это легко исправить, а если reboot случится через полгода и система не загрузится, можно сразу не сообразить, из-за чего это.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
———
ServerAdmin:📱 Telegram | 🌐 Сайт | 📲 MAX
#linux #terminal #совет
Во-первых, swap в принципе редко используется интенсивно. Во-вторых, как замерить скорость его работы на реальной нагрузке? В-третьих, разница если и будет, то незначительная. Swap в виде файла позволяет на лету менять свой размер или вовсе его отключать, если экстренно понадобится доступное место. Это весомое преимущество, которое стоит использовать.
Swap в 1 ГБ добавляю так:
# dd if=/dev/zero of=/swap bs=1024 count=1000000# mkswap /swap# chmod 0600 /swap# swapon /swapЕсли всё ок, то добавляю в
/etc/fstab:/swap swap swap defaults 0 0Отдельно отмечу, что не рекомендуется создавать пустой файл с помощью truncate или fallocate:
# truncate -s 1G /swap# fallocate -l 1G /swapОн создастся мгновенно, в отличие от
dd, которая явно пишет туда нули. Не помню, в какой документации читал, но запомнил, что swap лучше нулями сразу записать, а не создавать пустым.Если swap уже настроен в виде раздела, то трогать уже не буду, если только это не пустая виртуалка. Иногда попадаются виртуалки с lvm, где swap в виде отдельного lv раздела. Это стандартная схема установки в Debian. В этом случае его можно удалить, объединить с основным, а swap сделать в виде файла.
Все эти операции безопасны и могут быть выполнены без перезагрузки. Но как я уже сказал, на работающих серверах не рекомендую это делать, так как потом корневой раздел надо будет увеличивать. Это потенциально небезопасная операция. Но если сильно прижмёт, то сделать можно. Я так делал и не раз.
Последовательность действий тут такая. Смотрим список разделов:
# lvsroot web-01-vg -wi-ao---- <27.51g
swap_1 web-01-vg -wi-ao---- <1.54gНебольшая виртуалка с диском на 30 ГБ, где 1,5 отдано под swap. Уберём этот раздел и объединим с основным. Отключаем этот swap:
# swapoff -aИ сразу же проверьте файл /etc/fstab. Там нужно удалить строку с подключением этого раздела. Выглядит примерно так:
/dev/mapper/web--01--vg-swap_1 none swap sw 0 0Закомментируйте её. Удаляем раздел со свапом:
# lvremove /dev/web-01-vg/swap_1Do you really want to remove active logical volume web-01-vg/swap_1? [y/n]: y Logical volume "swap_1" successfully removed.Расширяем корневой раздел:
# lvextend -l +100%FREE /dev/web-01-vg/root Size of logical volume web-01-vg/root changed from <27.51 GiB (7042 extents) to 29.04 GiB (7435 extents). Logical volume web-01-vg/root successfully resized.И растягиваем файловую систему на весь раздел, так как увеличение раздела не подразумевает её автоматическое увеличение. Она ничего не знает об увеличенном разделе, если ей об этом не сказать.
# resize2fs /dev/web-01-vg/rootresize2fs 1.47.2 (1-Jan-2025)Filesystem at /dev/web-01-vg/root is mounted on /; on-line resizing requiredold_desc_blocks = 4, new_desc_blocks = 4The filesystem on /dev/web-01-vg/root is now 7613440 (4k) blocks long.Проверяем, что получилось:
# df -h | grep root/dev/mapper/web--01--vg-root 29G 4.7G 23G 18% /Раздел стал 29G против предыдущих 27.5G. Дальше можно добавлять swap в виде файла, как я показал в начале. И обязательно, когда всё закончите, перезагрузите виртуалку и убедитесь, что всё в порядке. Все эти операции не требуют перезагрузки, но если где-то ошиблись, особенно в fstab, можете получить проблемы во время загрузки. По горячим следам это легко исправить, а если reboot случится через полгода и система не загрузится, можно сразу не сообразить, из-за чего это.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
———
ServerAdmin:
#linux #terminal #совет
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from opennet.ru
Статистика GitHub за 2025 год. TypeScript сместил Python и JavaScript в рейтинге GitHub https://opennet.ru/64135/
www.opennet.ru
Статистика GitHub за 2025 год. TypeScript сместил Python и JavaScript в рейтинге GitHub
GitHub опубликовал отчёт с анализом статистики за 2025 год. Основные тенденции:
OWASP Top 10 для LLM: разбор угроз
https://habr.com/p/960918/
https://habr.com/p/960918/
Habr
OWASP Top 10 для LLM: разбор угроз
LLM встраивают в продакшн-системы, но подходят к ним как к обычным библиотекам — подключил API и забыл. Проблема в том, что языковая модель выполняет инструкции из пользовательского ввода, генерирует...
Forwarded from FrontEndDev
Динамические CSS-макеты с использование :has(), container queries и clamp()
Ахмад Шадид подробно разбирает, как строить сложные и адаптивные компоненты интерфейса, используя современные возможности CSS.
https://ishadeed.com/article/modern-css-section-layout/
Ахмад Шадид подробно разбирает, как строить сложные и адаптивные компоненты интерфейса, используя современные возможности CSS.
https://ishadeed.com/article/modern-css-section-layout/
Forwarded from CodeCamp
This media is not supported in your browser
VIEW IN TELEGRAM
Ночное-полезное: редактируем Markdown в VSCode с кайфом 😊
Новое расширение превращает редактор в чистый, визуально спокойный режим без лишнего шума:
— Заголовки становятся крупнее и читаемее;
— Символы форматирования (**, *, ~~, `) скрыты;
— Цветное выделение убрано — остаётся только текст.
В итоге Markdown выглядит почти как итоговый документ — без постоянного переключения в предпросмотр.
README в радость😏
Новое расширение превращает редактор в чистый, визуально спокойный режим без лишнего шума:
— Заголовки становятся крупнее и читаемее;
— Символы форматирования (**, *, ~~, `) скрыты;
— Цветное выделение убрано — остаётся только текст.
В итоге Markdown выглядит почти как итоговый документ — без постоянного переключения в предпросмотр.
README в радость
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Веб-стандарты (Vadim Makeev)
Новинки Firefox 145 для разработчиков. Добавлена поддержка
https://developer.mozilla.org/en-US/docs/Mozilla/Firefox/Releases/145
text-autospace, универсального шрифта math и <hr> в <select> на Android. В JavaScript появился Atomics.waitAsync() для асинхронной синхронизации потоков, а в HTTP — заголовки Integrity-Policy для проверки целостности скриптов. Поддержан контейнер Matroska, новые события WebDriver BiDi и экспериментальные Anchor Positioning и Trusted Types. #browser #firefoxhttps://developer.mozilla.org/en-US/docs/Mozilla/Firefox/Releases/145
Forwarded from XOR
This media is not supported in your browser
VIEW IN TELEGRAM
Google внезапно выкатили Code Wiki — платформу, которая превращает любой репозиторий в интерактивную документацию.
Инструмент сам строит карту проекта, добавляет диаграммы и создает видео пояснение с помощью NotebookLM. А еще там можно пообщаться с Gemini, чтобы окончательно во всем разобраться. И да — это всё бесплатно.
Такое мы сохраняем🤩
@xor_journal
Инструмент сам строит карту проекта, добавляет диаграммы и создает видео пояснение с помощью NotebookLM. А еще там можно пообщаться с Gemini, чтобы окончательно во всем разобраться. И да — это всё бесплатно.
Такое мы сохраняем
@xor_journal
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Веб-стандарты (Vadim Makeev)
Полное руководство по <input type="number">. Олли Уильямс о том, как убрать стрелки через CSS, как работают атрибуты
https://olliewilliams.xyz/blog/guide-to-html-number-input
step, min, max, и как браузеры обрабатывают десятичные разделители и inputmode. Хотя этот элемент критиковали раньше, например, для полей с номером карты или индексом, многие ошибки доступности уже исправлены. #html #a11yhttps://olliewilliams.xyz/blog/guide-to-html-number-input
Forwarded from CodeCamp
Ночное-актуальное-полезное: open-source комбайн, который пытается заменить всё — Vercel, Netlify, Cloudflare, Lambda, S3, KV, очереди, CDN и даже кусочек Kubernetes, но… без боли Kubernetes 😂
Что внутри:
— Git-native инфраструктура: без API, без Terraform — всё меняется через коммиты;
— P2P облако через libp2p: авто-дискавери нод, роутинг, NAT-traversal;
— Контент-адресуемое хранилище (как в IPFS): дедупликация, параллельная загрузка, автоматическое масштабирование;
— WebAssembly-функции: портируемо и безопасно;
— Локальная копия своего облака через dream-cli (local == production, наконец-то);
— Zero boilerplate: минимальная конфигурация, авто-репликация объектов, авто-балансировка, авто-всё.
Пощупать🍆
Что внутри:
— Git-native инфраструктура: без API, без Terraform — всё меняется через коммиты;
— P2P облако через libp2p: авто-дискавери нод, роутинг, NAT-traversal;
— Контент-адресуемое хранилище (как в IPFS): дедупликация, параллельная загрузка, автоматическое масштабирование;
— WebAssembly-функции: портируемо и безопасно;
— Локальная копия своего облака через dream-cli (local == production, наконец-то);
— Zero boilerplate: минимальная конфигурация, авто-репликация объектов, авто-балансировка, авто-всё.
Пощупать
Please open Telegram to view this post
VIEW IN TELEGRAM
Структура против хаоса — практическая валидация форм с помощью Zod
https://habr.com/p/967540/
https://habr.com/p/967540/
Habr
Структура против хаоса — практическая валидация форм с помощью Zod
Всем привет, с вами Артем Леванов, Front Lead в компании WebRise. В прошлой статье мы разобрали, как навести порядок в создании форм — выделили примитивы, ячейки и типовые поля. Следующая проблема, с...
Forwarded from Веб-стандарты (Vadim Makeev)
Новые идеи для раскладок с CSS-сабгридами. Джош Комо объясняет, как сабгриды позволяют вложенным элементам делить родительскую сетку, чтобы карточки, портфолио и тарифы выравнивали изображения и текст по соседям, а не по отдельным сеткам. Подводные камни, вроде резервирования строк, нумерация линий, ограничения гибких сеток и фолбеки для старых браузеров. #css #layout
https://www.joshwcomeau.com/css/subgrid/
https://www.joshwcomeau.com/css/subgrid/
Тим Бернерс-Ли: как физик из ЦЕРН практически в одиночку написал три главных протокола, чтобы создать Интернет
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