Алексей Соин · zencod.ru
19 subscribers
165 photos
16 videos
4 files
1K links
Статьи по разработке

- frontend
- backend
- server

zencod.ru
Download Telegram
DeepSeek на железе за 45к / Хабр
https://habr.com/ru/articles/885056/
ESLint теперь официально поддерживает линтинг CSS: несколько готовых правил, поддержка кастомного синтаксиса и другие подробности → https://eslint.org/blog/2025/02/eslint-css-support/
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). Уязвимость была в функции 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
Керниган — один из создателей Unix, создатель awk и автор авторитетнейших книг о программировании, Unix, C и сейчас уже Go.

А ещё он придумал hello world, реализовав впервые эту программу на языке B в 1972м. Теперь это первая программа, которую пишут в любом языке программирования.

Оказывается, у него ещё такая книга вышла. От Кернигана грех не почитать!
Forwarded from mefody.dev
Режим «от края до края» в Chrome на Android

В нативных приложениях для 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
🔥1
Преждевременная оптимизация

Есть такая тема: когда ты создаешь что-то новое, видишь кучу точек для оптимизации и начинаешь в них проваливаться, тратя уйму времени:
- О, у нас тут в перспективе появится большая нагрузка, давай я заморочусь с кешем и репликацией!
- Смотри, этот кусок кода явно станет bottleneck’ом через три года, давай перепишем его на Go/Rust/C!
- Надо заложить возможность оптимизировать процесс работы до уровня low-code, давай потратим все усилия, спроектируем и закодим сложнейший редактор!

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

Двигатель на фото — один и тот же, с разницей в пять лет.
Менеджер закладок на своём сервере / Хабр
https://habr.com/ru/companies/ruvds/articles/896082/
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/
Мокаем сложные API запросы с Mirage JS

Туториал по работе с Mirage JS — как создать фейковые серверы, модели данных и маршруты, чтобы упростить разработку и тестирование. Примеры настройки сложных сценариев.

https://blog.logrocket.com/mocking-complex-apis-mirage-js/
Forwarded from XOR
Git вчера отпраздновал 20 лет!

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: это когда мы просим модель сформулировать рамки вопроса прежде чем отвечать. Например

❌Какие преимущества электромобилей?
✅Прежде чем ответить, какие преимущества имеют электромобили, сформулируй, какие критерии мы должны учитывать при оценке любого вида транспорта. Затем на их основе проанализируй электромобили.


— Старая-добрая цепочка мыслей;

— Еще много чего.
👩‍💻 Быстрая сортировка строк с `Intl.Collator`

Улучшите сортировку строк с учётом локали, заменив повторяющиеся вызовы `String.localeCompare` одним экземпляром `Intl.Collator` для более быстрого и эффективного сравнения.

Сортировка строк может создавать неожиданные проблемы с производительностью, особенно при работе с большими наборами данных, нуждающимися в соответствующей локализации. Многие разработчики полагаются на String.localeCompare для сортировки по алфавиту, но есть и более эффективный подход, заслуживающий внимания.

🖥 Читать статью

📱 @dev_notes_ru

#JavaScript
Please open Telegram to view this post
VIEW IN TELEGRAM
Вcё ещё трекаете? Почему контроль часов мешает работе команды (и что с этим делать) / Хабр
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` можно изменить локацию этого файлика
👍1