Хранение данных — это всегда боль, у которой может быть больше 50 оттенков: железо, кэш, гарантии, производительность, скорость восстановления при проблемах, удобство и прочее. Как решить большинство из них, при этом получив что-то легко обслуживаемое, да ещё бесплатно? Сегодня поговорим про файловые системы на примере не совсем дефолтной OpenZFS. Меня зовут Георгий Меликов, я работаю в VK Cloud, являюсь руководителем направления IaaS разработки. Мы занимаемся не только хранилищами, но и пр…
Давным-давно, еще во времена, когда интернет не был обыденной вещью, одной из возможностей познакомиться с новыми хитами для меня был поход в игровой клуб. В моём районе существовало два таких заведения. Один располагался в довольно сыром, тёмном и насквозь прокуренном подвале. Там постоянно собиралось много народу, от чего всегда было шумно. Вдобавок пускали туда не только тех, кто готов заплатить за игру, но и тех, кто пришел просто посмотреть. Поэтому это было излюбленное место школоты, а…
ВведениеИногда, и чаще всего спонтанно, у меня появляется дикое желание реализовывать что-либо на языке ассемблера, а потом прикручивать это "что-либо" на уровни выше. Так например, ранее из-за такого желания я написал сначала стековую виртуальную машину, которая могла принимать в себя байт-код и непосредственно его исполнять, далее написал ассемблер, который мог бы транслировать язык ассемблера в этот самый байт-код, а после и написал высокоуровневый LISP-подобный язык, который компил…
Мы привыкли к различным единицам измерения, всяким метрам в секунду и киловатт-часам. В формулы пролезают многочисленные константы - c (скорость света), h (постоянная Планка), G (гравитационная постоянная), k (постоянная Больцмана). Однако оказывается, что для фундаментальной физики куда удобнее принять одну из 'естественных' единиц. Таких систем несколько - но лучше по англ.Естественные системы единиц неудобны для практического применения (слишком большие или маленькие там значения ве…
Изящное завершение работы (Graceful Shutdown) важно для любого длительного процесса, особенно для того, который обрабатывает состояние. Например, что если вы хотите завершить работу базы данных, поддерживающей ваше приложение, а процесс db не сбрасывает текущее состояние на диск, или что если вы хотите завершить работу веб-сервера с тысячами соединений, но не дожидаетесь окончания запросов. Изящное завершение работы не только положительно сказывается на пользовательском опыте, но и облегчает в…
Привет! Меня зовут Павел Агалецкий, я ведущий инженер в Авито. В нашей компании многие специалисты используют ноутбуки MacBook для локальной разработки, а большинство сервисов запускаются внутри Docker контейнеров. Долгое время мы обходились версиями Docker образов для архитектуры процессоров amd64. С появлением новых процессоров Apple Silicon (M1, M2) мы стали запускать контейнеры в режиме эмуляции процессора, что приводило к низкой скорости их работы. Так возникла задача поддержать внутренню…
Думаю, ни для кого не секрет, что каждый уважающий себя разработчик программного обеспечения должен иметь в своем портфолио хотя бы один пет-проект, а лучше полноценный продукт, дающий дополнительный постоянный заработок. Предметных областей и тематик приложений великое множество, но среди них есть одна, которая заслуживает отдельного внимания — разработка своей собственной игры.Преимущества разработки игрПрежде всего, следует понимать, что разработка игр достаточно трудоемкий процесс. Как пра…
В данной статье приведены несколько вариантов переиспользования кода в Redux-toolkit при создании слайсов, позволяющие сделать работу с ним более гибкой и удобной.Для адептов других стейт менеджеровДанная статья, еще один шанс для Вас показать насколько другой стейт-менеджер лучше чем redux, поэтому поделитесь, пожалуйста, кодом, решающим аналогичную задачу на другом стейт-менеджере. И, возможно, ваш пример убедит других разработчиков сделать правильное решение. Вариант 1 - Полное дублирование…
Представьте, что вы планируете начать новый проект или использовать в существующем более современный подход. А, может, вас просто не устраивает используемый фреймворк, и вы подумываете об альтернативах. В любом случае вам нужно что-то выбрать. Существует множество «современных» фреймворков. И даже если сейчас перед вами этот выбор не стоит, вы можете задуматься, освоением какого лучше заняться, чтобы повысить свои профессиональные качества и продуктивность в будущем. С момента выхода Remix…