Forwarded from For Web — фронтенд, дизайн, программирование
ESLint теперь официально поддерживает линтинг CSS: несколько готовых правил, поддержка кастомного синтаксиса и другие подробности → https://eslint.org/blog/2025/02/eslint-css-support/
Forwarded from For Web — фронтенд, дизайн, программирование
This media is not supported in your browser
VIEW IN TELEGRAM
Отказываемся от JS-библиотек для анимаций: руководство по созданию анимированного меню на View Transitions → https://www.builder.io/blog/view-transitions
Forwarded from trash.js
Ты обновил Node.js? Я волнуюсь
Поговорим об уязвимостях. Например, CVE-2023-32002, где уровень опасности критический из-за удаленного выполнения кода (RCE). Уязвимость была в функции
Вижу несколько стратегий:
- Почитывать Node.js vulnerability blog
- Подписаться на рассылку nodejs-sec
- Настроить DevSecOps-проверки вроде gemnasium
- Подтюнить SonarQube, а именно Security Hotspot
- Настроить регулярные обновления Renovate / Dependabot
- Настроить базовый образ для CI, который всегда будет брать latest LTS
- Ждать серьезных дядь из КБ которые заставят обновить ноду 😎
Расскажите, как у вас устроен процесс реагирования на CVE?🚀
Поговорим об уязвимостях. Например, CVE-2023-32002, где уровень опасности критический из-за удаленного выполнения кода (RCE). Уязвимость была в функции
Module._load(), которая отвечает за загрузку модулей что открывает большой простор для утечек, подмены данных и т.д. Версии с исправлениями Node.js: 16.20.1+, 18.17.0+ или 20.5.0+.Вижу несколько стратегий:
- Почитывать Node.js vulnerability blog
- Подписаться на рассылку nodejs-sec
- Настроить DevSecOps-проверки вроде gemnasium
- Подтюнить SonarQube, а именно Security Hotspot
- Настроить регулярные обновления Renovate / Dependabot
- Настроить базовый образ для CI, который всегда будет брать latest LTS
- Ждать серьезных дядь из КБ которые заставят обновить ноду 😎
Расскажите, как у вас устроен процесс реагирования на CVE?
Please open Telegram to view this post
VIEW IN TELEGRAM
nodejs.org
Node.js
Node.js® is a free, open-source, cross-platform JavaScript runtime environment that lets developers create servers, web apps, command line tools and scripts.
Управляем питанием компьютера кнопкой вызова от старого лифта / Хабр
https://habr.com/ru/companies/timeweb/articles/873908/
https://habr.com/ru/companies/timeweb/articles/873908/
Хабр
Управляем питанием компьютера кнопкой вызова от старого лифта
Приветствую всех! Однажды увидел я на просторах ролик, как кто-то подключил лифтовой вызывной пост вместо обычной кнопки включения компьютера. И вот как-то раз я снова вспомнил про это, отчего мне...
Forwarded from Диджитализируй!
Керниган — один из создателей Unix, создатель awk и автор авторитетнейших книг о программировании, Unix, C и сейчас уже Go.
А ещё он придумал hello world, реализовав впервые эту программу на языке B в 1972м. Теперь это первая программа, которую пишут в любом языке программирования.
Оказывается, у него ещё такая книга вышла. От Кернигана грех не почитать!
А ещё он придумал hello world, реализовав впервые эту программу на языке B в 1972м. Теперь это первая программа, которую пишут в любом языке программирования.
Оказывается, у него ещё такая книга вышла. От Кернигана грех не почитать!
Forwarded from mefody.dev
Режим «от края до края» в Chrome на Android
В нативных приложениях для Android есть фича показывать интерфейс приложения от верхнего края экрана до нижнего. Не от границ приложения, которые выделяет ОС со служебными полосками, а от физического края до другого физического края. Залезая на шторки, островки и прочие приколы современных смартфонов.
Теперь такое же можно делать и в Chrome 135+. Для этого надо добавить метатег на страницу.
Ключ
А в CSS нужно тогда, как мы уже привыкли для iOS, поработать с
В статье есть примеры кода, как работать с «новым» режимом. И видео с визуальной разницей старого и нового режимов. И инструкция, как потестировать это уже сейчас. Больше всего в инструкции мне нравится фраза «Restart Chrome twice».
Почему я режим называю «новым» в кавычках: потому что на iOS мы и так уже работали с похожим поведением, так что если у вас уже были оптимизации под островок и бровку на яблочных смартфонах, то в Android, по идее, заведётся тоже. Более того, Chrome умеет в правильные переменные
https://developer.chrome.com/docs/css-ui/edge-to-edge
В нативных приложениях для Android есть фича показывать интерфейс приложения от верхнего края экрана до нижнего. Не от границ приложения, которые выделяет ОС со служебными полосками, а от физического края до другого физического края. Залезая на шторки, островки и прочие приколы современных смартфонов.
Теперь такое же можно делать и в Chrome 135+. Для этого надо добавить метатег на страницу.
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover" />
Ключ
viewport-fit как раз и отвечает за включение этого специального режима.А в CSS нужно тогда, как мы уже привыкли для iOS, поработать с
env(safe-area-inset-bottom), чтобы всякое кликабельное у вас на сайте не попало в служебные островки, которые всё-таки будут мешать пользователю кликнуть.В статье есть примеры кода, как работать с «новым» режимом. И видео с визуальной разницей старого и нового режимов. И инструкция, как потестировать это уже сейчас. Больше всего в инструкции мне нравится фраза «Restart Chrome twice».
Почему я режим называю «новым» в кавычках: потому что на iOS мы и так уже работали с похожим поведением, так что если у вас уже были оптимизации под островок и бровку на яблочных смартфонах, то в Android, по идее, заведётся тоже. Более того, Chrome умеет в правильные переменные
env тоже очень давно, так что вся новость скорее в том, что теперь надо будет не забыть протестировать ваш красивый сайт ещё и в режиме «от края до края».https://developer.chrome.com/docs/css-ui/edge-to-edge
Chrome for Developers
Chrome on Android edge-to-edge migration guide | CSS and UI | Chrome for Developers
Build edge-to-edge web experiences
🔥1
Весна пришла — пора паять! 5 проектов на малинке, чтобы не скучать / Хабр
https://habr.com/ru/companies/selectel/articles/893268/
https://habr.com/ru/companies/selectel/articles/893268/
Хабр
Весна пришла — пора паять! 5 проектов на малинке, чтобы не скучать
Март — время, когда хочется заняться чем-то новым. У кого-то это сад, у кого-то — ремонт, а у гиков — электроника на Raspberry Pi. В сегодняшней подборке мы собрали пять свежих проектов на «малинке»:...
Крошечный веб-сервер на ESP32 / Хабр
https://habr.com/ru/companies/otus/articles/894174/
https://habr.com/ru/companies/otus/articles/894174/
Хабр
Крошечный веб-сервер на ESP32
Доступ по сети к вашему DIY‑устройству позволяет сделать его более гибким, ведь для того, чтобы внести какие‑то изменения в настройки к примеру, вашей метеостанции, вы можете...
Forwarded from Уставший техдир
Преждевременная оптимизация
Есть такая тема: когда ты создаешь что-то новое, видишь кучу точек для оптимизации и начинаешь в них проваливаться, тратя уйму времени:
- О, у нас тут в перспективе появится большая нагрузка, давай я заморочусь с кешем и репликацией!
- Смотри, этот кусок кода явно станет bottleneck’ом через три года, давай перепишем его на Go/Rust/C!
- Надо заложить возможность оптимизировать процесс работы до уровня low-code, давай потратим все усилия, спроектируем и закодим сложнейший редактор!
Все эти идеи уводят тебя от первоначальной задачи, которой ты на самом деле занимаешься. Очень важно сфокусироваться на требованиях и сделать их максимально простыми и понятными. И только после того, как у тебя есть реально рабочий прототип, который отвечает всем требованиям, можно переходить к оптимизации.
Двигатель на фото — один и тот же, с разницей в пять лет.
Есть такая тема: когда ты создаешь что-то новое, видишь кучу точек для оптимизации и начинаешь в них проваливаться, тратя уйму времени:
- О, у нас тут в перспективе появится большая нагрузка, давай я заморочусь с кешем и репликацией!
- Смотри, этот кусок кода явно станет bottleneck’ом через три года, давай перепишем его на Go/Rust/C!
- Надо заложить возможность оптимизировать процесс работы до уровня low-code, давай потратим все усилия, спроектируем и закодим сложнейший редактор!
Все эти идеи уводят тебя от первоначальной задачи, которой ты на самом деле занимаешься. Очень важно сфокусироваться на требованиях и сделать их максимально простыми и понятными. И только после того, как у тебя есть реально рабочий прототип, который отвечает всем требованиям, можно переходить к оптимизации.
Двигатель на фото — один и тот же, с разницей в пять лет.
Менеджер закладок на своём сервере / Хабр
https://habr.com/ru/companies/ruvds/articles/896082/
https://habr.com/ru/companies/ruvds/articles/896082/
GitLab CI для Docker-образов / Хабр
https://habr.com/ru/companies/otus/articles/896010/
https://habr.com/ru/companies/otus/articles/896010/
Forwarded from For Web — фронтенд, дизайн, программирование
This media is not supported in your browser
VIEW IN TELEGRAM
В Chrome 135 появилась возможность полной стилизации нативных селектов: другие браузеры пока этого не поддерживают, но такая стилизация может быть прогрессивным улучшением → https://developer.chrome.com/blog/a-customizable-select
Слайдер для сравнения изображений на JavaScript
Руководство по созданию слайдера в 6 строк кода.
https://muffinman.io/blog/image-comparison-slider/
Руководство по созданию слайдера в 6 строк кода.
https://muffinman.io/blog/image-comparison-slider/
Мокаем сложные API запросы с Mirage JS
Туториал по работе с Mirage JS — как создать фейковые серверы, модели данных и маршруты, чтобы упростить разработку и тестирование. Примеры настройки сложных сценариев.
https://blog.logrocket.com/mocking-complex-apis-mirage-js/
Туториал по работе с Mirage JS — как создать фейковые серверы, модели данных и маршруты, чтобы упростить разработку и тестирование. Примеры настройки сложных сценариев.
https://blog.logrocket.com/mocking-complex-apis-mirage-js/
Forwarded from XOR
Git вчера отпраздновал 20 лет!
7 апреля 2005 года Линус Торвальдс за пару недель написал систему управления версиями, которая должна была заменить BitKeeper при разработке ядра Linux. С тех пор без него не живёт ни один проект.
В честь годовщины собрали популярные Git-тренажёры:
Сохраняем☕️
@xor_journal
7 апреля 2005 года Линус Торвальдс за пару недель написал систему управления версиями, которая должна была заменить BitKeeper при разработке ядра Linux. С тех пор без него не живёт ни один проект.
В честь годовщины собрали популярные Git-тренажёры:
🟢 Oh My Git! — карточная игра с открытым исходным кодом, которая учит логике Git. GitHub тут.🟢 Learn Git Branching — без преувеличений лучший визуальный тренажёр для понимания веток, merge и rebase.🟢 The Git Game — квест в терминале. Всё как мы любим: клонируешь репу, читаешь README и идёшь решать загадки в консоли. Всего 10 уровней.
Сохраняем
@xor_journal
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1
Forwarded from CodeCamp
Google.pdf
6.5 MB
Тем временем Google выпустил гайд по промтингу LLM-ок аж на 68 страниц, из которого можно узнать:
— Кто такие top-K и top-P и как они влияют на ответы нейросетей;
— Что такое One Shot и сколько выстрелов нужно, чтобы нейронки нормально отвечали;
— Как заставить LLM играть какую-то роль;
— Техника Step-back prompting: это когда мы просим модель сформулировать рамки вопроса прежде чем отвечать. Например
— Старая-добрая цепочка мыслей;
— Еще много чего.
— Кто такие top-K и top-P и как они влияют на ответы нейросетей;
— Что такое One Shot и сколько выстрелов нужно, чтобы нейронки нормально отвечали;
— Как заставить LLM играть какую-то роль;
— Техника Step-back prompting: это когда мы просим модель сформулировать рамки вопроса прежде чем отвечать. Например
❌Какие преимущества электромобилей?
✅Прежде чем ответить, какие преимущества имеют электромобили, сформулируй, какие критерии мы должны учитывать при оценке любого вида транспорта. Затем на их основе проанализируй электромобили.
— Старая-добрая цепочка мыслей;
— Еще много чего.
Forwarded from Заметки разработчика
Быстрая сортировка строк с `Intl.Collator`Улучшите сортировку строк с учётом локали, заменив повторяющиеся вызовы `
String.localeCompare` одним экземпляром `Intl.Collator` для более быстрого и эффективного сравнения.Сортировка строк может создавать неожиданные проблемы с производительностью, особенно при работе с большими наборами данных, нуждающимися в соответствующей локализации. Многие разработчики полагаются на
String.localeCompare для сортировки по алфавиту, но есть и более эффективный подход, заслуживающий внимания.#JavaScript
Please open Telegram to view this post
VIEW IN TELEGRAM
Вcё ещё трекаете? Почему контроль часов мешает работе команды (и что с этим делать) / Хабр
https://habr.com/ru/articles/902390/
https://habr.com/ru/articles/902390/
🧨 ESLint - умное подавление ошибок
В 9 версии появилась такая штуковина, что мы теперь можем не бояться включать строгие правила в действующем проекте.
Ранее у нас было триллион ошибок в консоли, поэтому ты их либо все фиксишь и тратишь кучу времени, либо не добавляешь полезное правило, которое может помочь в работе
Теперь все проще. ESLint добавил систему подавления нарушений:
👉🏻 Сохраняет текущие ошибки в отдельный файл
👉🏻 Применяет правило только к новому коду
👉🏻 Позволяет устранять старые ошибки постепенно
👉🏻 Работает с --fix, --cache и поддерживает команду --prune-suppressions для очистки
🛠️ Обновляйтесь и тестируйте:
https://eslint.org/blog/2025/04/introducing-bulk-suppressions/
P.S. Файл с ошибками будет лежать в корне проекта, но флагом `--suppressions-location` можно изменить локацию этого файлика
В 9 версии появилась такая штуковина, что мы теперь можем не бояться включать строгие правила в действующем проекте.
Ранее у нас было триллион ошибок в консоли, поэтому ты их либо все фиксишь и тратишь кучу времени, либо не добавляешь полезное правило, которое может помочь в работе
Теперь все проще. ESLint добавил систему подавления нарушений:
👉🏻 Сохраняет текущие ошибки в отдельный файл
👉🏻 Применяет правило только к новому коду
👉🏻 Позволяет устранять старые ошибки постепенно
👉🏻 Работает с --fix, --cache и поддерживает команду --prune-suppressions для очистки
🛠️ Обновляйтесь и тестируйте:
https://eslint.org/blog/2025/04/introducing-bulk-suppressions/
P.S. Файл с ошибками будет лежать в корне проекта, но флагом `--suppressions-location` можно изменить локацию этого файлика
👍1
Даже не влезайте в Kubernetes без этого / Хабр
https://habr.com/ru/companies/h3llo_cloud/articles/902188/
https://habr.com/ru/companies/h3llo_cloud/articles/902188/