Привет, Хабр! На связи Александр Горьев, ведущий разработчик в Selectel. Redis — это высокопроизводительное хранилище «ключ-значение», работающее в оперативной памяти. Скорость, простота и богатый набор структур сделали Redis столь популярным. Кеширование HTTP-ответов, хранение сессий, реализация очередей задач, счетчиков, лидербордов и ограничения запросов (rate limiting) — далеко не полный перечень вариантов его применения.На старте Redis часто воспринимается как инструмент, который отлично р…
Приветствую, Хабр! Так много уже было сказано о стандарте 10BASE-T1L, но я не нашел ни одного решения (я именно про схемотехнику, которую можно применить в своем устройстве). И вот, как по заказу, потребовалась реализация передачи данных на длинные расстояния. Как альтернативы рассматривались, конечно, DSL и RS-485, но так как гнать нужно звук, я решил попробовать 10BASE-T1L. Итак, для начала, что же такое 10BASE-T1L? Это стандарт физического уровня Ethernet (IEEE 802.3cg-2019) со скоростью пе…
Все говорили о микросервисах. Гибкость. Масштабируемость. Независимые команды. Звучало как мечта. Многие компании бросились распиливать свои монолиты. Разработка действительно ускорилась. Отдельные компоненты стало проще обновлять и разворачивать.А потом сервисам понадобилось взаимодействовать. И мечта превратилась в сложную, многомерную головоломку.Простой вызов функции внутри монолита стал сетевым запросом. Надежность упала. Задержки выросли. Отладка превратилась в квест по распределенным лог…
Очень плохая реклама от одного красного магазина инструментов спровоцировала меня сделать свой ликбез по свёрлам. Предлагаю расширить кругозор в слесарном деле — разобраться во всём зоопарке свёрл, доступных и недоступных в ближайшем строительном магазине. Мы не будем углубляться в тонкости обработки материалов резанием — просто расширим кругозор, чтобы, когда жизнь заставит «проковырять дырочку», вы использовали подходящий инструмент.Перьевые (перовые) свёрла [spade drill bit]Самый простой тип…
Скажу сразу: я не поддерживаю ни одну из сторон этого конфликта в полной мере. С одной стороны, сообщество, в котором учат приукрашивать опыт и выжимать максимум при минимуме усилий. С другой — компания, где тебя могут уволить за то, что ты не туда вступил и не туда посмотрел. Прекрасный иллюстративный случай, когда обе стороны не вызывают желания встать на чью-либо защиту.Коротко про мои симпатии и антипатии в этой битвеКорпоративный гулаг VS Сообщество ОМ. Это как легендарная серия Южного пар…
В этой статье подробно разбирается создание пользовательской файловой системы с помощью FUSE и языка Go. На реальном примере мы пройдём путь от установки окружения до реализации чтения, записи, метаданных и параллельного доступа. В процессе встретятся живые комментарии, личные наблюдения и советы, которые помогут избежать распространённых подводных камней.Введение Давно хотел понять, как сделать “файловую систему в файле” или на блочном устройстве, чтобы потом подключить её к любому Linux-серве…
Node.js претерпел впечатляющее преобразование с момента своего появления. Если вы пишете на Node.js уже несколько лет, то, вероятно, сами наблюдали эту эволюцию - от эпохи колбэков и повсеместного использования CommonJS до современного, чистого и стандартизированного подхода к разработке.Изменения затронули не только внешний вид - это фундаментальный сдвиг в самом подходе к серверной разработке на JavaScript. Современный Node.js опирается на веб-стандарты, снижает зависимость от внешних библиот…
Уже 10 лет в JS-экосистеме воюют два формата модулей: CommonJS и ES Modules. Чтобы и получить плюшки ESM, и не распугать пользователей, npm-пакеты часто используют dual packaging: собирают код в оба формата. Это решает одну проблему, но создает несколько новых:Мы собираем наш код 2 раза (а хотелось бы вообще не собирать).Настроить двойную сборку не супер сложно, но все таки сложнее, чем вообще не настраивать.Мы публикуем в 2 раза больше кода (и потом жалуемся на жирые node_modules)dual package …
Если вы когда-либо запускали SSR в Angular, вы наверняка сталкивались с этим парадоксом: страница вроде бы загружается молниеносно, но ощущается медленной. Контент есть, кнопки на месте — а кликаешь по ним, и в ответ тишина. Почему? Потому что браузер всё ещё оживляет интерфейс — запускает JavaScript, подключает обработчики, восстанавливает состояние. Это и есть гидратация, и в классическом исполнении она не так уж и быстра.Angular давно умеет рендерить страницы на сервере, но только с недавних…