The limits in go

Зачастую нужно получить наибольшее/наименьшее значение того или иного упорядоченного типа. Для этого в cpp есть заголовочный файл limits, в котором на этапе компиляции вычисляются данные о типе. Хотелось бы чего-то такого и в go. Недавно нашел способ как это сделать.

Конкурентность в Go: общая память

Данная статья является переводом статьи Фредерико Биттенкарта (Frederico Bittencourt). Я поэкспериментировал с несколькими примерами для лучшего понимания как модель памяти в Go ведет себя в конкурентных программах. Я попробую объяснить, что я изучил по поводу порядка операций на мульти-ядерных CPU.

Неочевидные правила кода

Тут написал правила кодирования, организации работы, взгляды на какие-то вещи – все вместе. Не знаю, как это разделить – думаю, что и не нужно это разделять.

Ограничения ресурсов с помощью cgroups

Для того чтобы использовать cgroups вовсе необязательно использовать для этого systemd, docker или k8s. Для этого достаточно использовать набор команд, для ubuntu находящийся в пакете `cgroup-tools` и виртуальную файловую систему /sys.

Сдвиг начала массива в js

В разных языках программирования это реализовано в основном через слайсы или итераторы. Особый интерес в рамках этой задачи представляет js, в котором нет в общем случае единого способа получить сдвинутый на 1 подмассив

Rsync analogue of airdrop

К сожалению на android нет airdrop сервиса, а то, что есть (airdroid, nearby share) не вызывает особого доверия. Для быстрого обмена файлами между устройствами находящимися рядом бывает удобно использовать rsync.

Трюк с файлами версий

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

Vim unified shortcuts

Решил, что нет лучшего времени, чтобы сделать свою жизнь чуточку лучше, чем новогодние каникулы. Ну а что может быть лучше, чем улучшения в vim редакторе! Шутка :). Далее, я сделал небольшую унификацию настроек vim и vim плагинов для idea и vscode.

OpenAI Codex

Решил попробовать потестировать технологию для генерации кода OpenAI Codex. Это новый инструмент от OpenAI, который позволяет генерировать куски кода по запросу на естественном языке.

В защиту связных списков

Пару дней назад, в твиттере я говорил об очень плохой реализации связных списков, написанной на Rust. Из тонны определенных реплаев я понял думают о связном списке как о шутке. Тривиальная структура данных, которая только и хороша, что для coding interview, в других случаях бесполезна.

Class/interface split

Используя в сигнатурах клиентских методов и классов или интерфейс или тривиальный класс, который реализует данный интерфейс, вы тем самым неявно разделяете код на 2 части.