habrahabr
Переизобретаем файловую систему: (Open)ZFS

Хранение данных — это всегда боль, у которой может быть больше 50 оттенков: железо, кэш, гарантии, производительность, скорость восстановления при проблемах, удобство и прочее. Как решить большинство из них, при этом получив что-то легко обслуживаемое, да ещё бесплатно? Сегодня поговорим про файловые системы на примере не совсем дефолтной OpenZFS. Меня зовут Георгий Меликов, я работаю в VK Cloud, являюсь руководителем направления IaaS разработки. Мы занимаемся не только хранилищами, но и пр…

  • суббота, 4 ноября 2023 г. в 00:00:22
habrahabr
Ностальгические игры: Serious Sam

Давным-давно, еще во времена, когда интернет не был обыденной вещью, одной из возможностей познакомиться с новыми хитами для меня был поход в игровой клуб. В моём районе существовало два таких заведения. Один располагался в довольно сыром, тёмном и насквозь прокуренном подвале. Там постоянно собиралось много народу, от чего всегда было шумно. Вдобавок пускали туда не только тех, кто готов заплатить за игру, но и тех, кто пришел просто посмотреть. Поэтому это было излюбленное место школоты, а…

  • суббота, 4 ноября 2023 г. в 00:00:21
habrahabr
Пишем printf на языке ассемблера FASM

ВведениеИногда, и чаще всего спонтанно, у меня появляется дикое желание реализовывать что-либо на языке ассемблера, а потом прикручивать это "что-либо" на уровни выше. Так например, ранее из-за такого желания я написал сначала стековую виртуальную машину, которая могла принимать в себя байт-код и непосредственно его исполнять, далее написал ассемблер, который мог бы транслировать язык ассемблера в этот самый байт-код, а после и написал высокоуровневый LISP-подобный язык, который компил…

  • суббота, 4 ноября 2023 г. в 00:00:21
habrahabr
О чем нам намекают естественные системы физических единиц

Мы привыкли к различным единицам измерения, всяким метрам в секунду и киловатт-часам. В формулы пролезают многочисленные константы - c (скорость света), h (постоянная Планка), G (гравитационная постоянная), k (постоянная Больцмана). Однако оказывается, что для фундаментальной физики куда удобнее принять одну из 'естественных' единиц. Таких систем несколько - но лучше по англ.Естественные системы единиц неудобны для практического применения (слишком большие или маленькие там значения ве…

  • суббота, 4 ноября 2023 г. в 00:00:20
golang
Реализация Graceful Shutdown в Go

Изящное завершение работы (Graceful Shutdown) важно для любого длительного процесса, особенно для того, который обрабатывает состояние. Например, что если вы хотите завершить работу базы данных, поддерживающей ваше приложение, а процесс db не сбрасывает текущее состояние на диск, или что если вы хотите завершить работу веб-сервера с тысячами соединений, но не дожидаетесь окончания запросов. Изящное завершение работы не только положительно сказывается на пользовательском опыте, но и облегчает в…

  • суббота, 4 ноября 2023 г. в 00:00:19
golang
Мультиплатформенные образы: что это такое и зачем они нужны

Привет! Меня зовут Павел Агалецкий, я ведущий инженер в Авито. В нашей компании многие специалисты используют ноутбуки MacBook для локальной разработки, а большинство сервисов запускаются внутри Docker контейнеров. Долгое время мы обходились версиями Docker образов для архитектуры процессоров amd64. С появлением новых процессоров Apple Silicon (M1, M2) мы стали запускать контейнеры в режиме эмуляции процессора, что приводило к низкой скорости их работы. Так возникла задача поддержать внутренню…

  • суббота, 4 ноября 2023 г. в 00:00:18
javascript
Разработка браузерных игр с использованием Phaser3, React, Typescript

Думаю, ни для кого не секрет, что каждый уважающий себя разработчик программного обеспечения должен иметь в своем портфолио хотя бы один пет-проект, а лучше полноценный продукт, дающий дополнительный постоянный заработок. Предметных областей и тематик приложений великое множество, но среди них есть одна, которая заслуживает отдельного внимания — разработка своей собственной игры.Преимущества разработки игрПрежде всего, следует понимать, что разработка игр достаточно трудоемкий процесс. Как пра…

  • суббота, 4 ноября 2023 г. в 00:00:16
javascript
Redux-toolkit и переиспользование кода

В данной статье приведены несколько вариантов переиспользования кода в Redux-toolkit при создании слайсов, позволяющие сделать работу с ним более гибкой и удобной.Для адептов других стейт менеджеровДанная статья, еще один шанс для Вас показать насколько другой стейт-менеджер лучше чем redux, поэтому поделитесь, пожалуйста, кодом, решающим аналогичную задачу на другом стейт-менеджере. И, возможно, ваш пример убедит других разработчиков сделать правильное решение. Вариант 1 - Полное дублирование…

  • суббота, 4 ноября 2023 г. в 00:00:15
javascript
Почему я не буду использовать Next.js

Представьте, что вы планируете начать новый проект или использовать в существующем более современный подход. А, может, вас просто не устраивает используемый фреймворк, и вы подумываете об альтернативах. В любом случае вам нужно что-то выбрать. Существует множество «современных» фреймворков. И даже если сейчас перед вами этот выбор не стоит, вы можете задуматься, освоением какого лучше заняться, чтобы повысить свои профессиональные качества и продуктивность в будущем. С момента выхода Remix…

  • суббота, 4 ноября 2023 г. в 00:00:15