Барьеры памяти в go

Проблемы гонок при выполнении конкурентного кода могут по разному себя проявлять на разных архитектурах процессора. Это связано с различными моделями памяти процессоров на этих архитектурах. В частности процессоры x86_64 и arm по

Generics in Go and built-in types

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

C# stackalloc

Решил проверить насколько в C# ускоряется программа при использовании аллокации на стеке вместо хипа. Оказалось, что примерно в 2 раза ускоряется (чуть меньше).

LRUCache

Недавно первый раз мне пригодился linked list спустя много лет разработки. Я даже сначала не поверил, перепроверил и, таки действительно, там используется двунаправленный связный список (по крайней мере в моей примитивной реализации).

Поддержка синтаксиса yaml конфигурации

Зачастую, файлы конфигураций становятся достаточно сложными и их редактирование может вызывать некоторые затруднения. Чтобы упростить это увлекательное занятие решил попробовать yaml lsp плагин для vscode.

Квадратный юзерпик на golang

Зачастую, при разработке интерфейсов появляется необходимость создать небольшую квадратную копию оригинальной загруженной картинки. Для этого ее нужно правильно "обрезать" и масштабировать. Ниже приводится код на golang, как это сделать.

Как сделать распределенную блокировку

Как часть исследования для моей книги, я встретил алгоритм Redlock на сайте Redis. Алгоритм утверждает, что он реализует отказоустойчивые распределенные блокировки (точнее сказать, аренды) основываясь на Redis. Этот алгоритм вызывает тревожный звоночек в моем разуме

Переход по директориям в bash

Чтобы быстро переходить от одной директории/проекта к другой, находящейся с точки зрения пути неблизко, я использую следующий bash скрипт, который добавлен в ~/.bashrc. Суть его в том, что в директории ~/.marks можно быстро создавать/удалять/просмотреть симлинки и переходить по ним.

20 вещей, которые я понял за 20 лет, будучи программным инженером

Перевод. Мои советы от того, кто... 1. почти всегда работал в небольших командах. 2. ценит больше работающую программу, чем какой-то инструмент. 3 .постоянно начинает новые проекты, при этом поддерживает несколько существующих. 4. ценит производительность инженеров выше, чем другие соображения.

Фильтрация данных в запросах на C#

Есть RPC сервер – несколько обработчиков запросов, которые должны возвращать данные. В один прекрасный момент появилась потребность в фильтрации данных в этих обработчиках. Фильтров много и они появляются в процессе жизни приложения и так