Зачастую нужно получить наибольшее/наименьшее значение того или иного упорядоченного типа. Для этого в cpp есть заголовочный файл limits, в котором на этапе компиляции вычисляются данные о типе. Хотелось бы чего-то такого и в go. Недавно нашел способ как это сделать.
Данная статья является переводом статьи Фредерико Биттенкарта (Frederico Bittencourt). Я поэкспериментировал с несколькими примерами для лучшего понимания как модель памяти в Go ведет себя в конкурентных программах. Я попробую объяснить, что я изучил по поводу порядка операций на мульти-ядерных CPU.
Тут написал правила кодирования, организации работы, взгляды на какие-то вещи – все вместе. Не знаю, как это разделить – думаю, что и не нужно это разделять.
Для того чтобы использовать cgroups вовсе необязательно использовать для этого systemd, docker или k8s. Для этого достаточно использовать набор команд, для ubuntu находящийся в пакете `cgroup-tools` и виртуальную файловую систему /sys.
В разных языках программирования это реализовано в основном через слайсы или итераторы. Особый интерес в рамках этой задачи представляет js, в котором нет в общем случае единого способа получить сдвинутый на 1 подмассив
К сожалению на android нет airdrop сервиса, а то, что есть (airdroid, nearby share) не вызывает особого доверия. Для быстрого обмена файлами между устройствами находящимися рядом бывает удобно использовать rsync.
Есть интересный трюк, который позволяет иметь информацию об обновлениях версий вашей программы. Наверняка, он широко известен, поскольку достаточно прост, но вот я до него относительно недавно дошел.
Решил, что нет лучшего времени, чтобы сделать свою жизнь чуточку лучше, чем новогодние каникулы. Ну а что может быть лучше, чем улучшения в vim редакторе! Шутка :). Далее, я сделал небольшую унификацию настроек vim и vim плагинов для idea и vscode.
Решил попробовать потестировать технологию для генерации кода OpenAI Codex. Это новый инструмент от OpenAI, который позволяет генерировать куски кода по запросу на естественном языке.
Пару дней назад, в твиттере я говорил об очень плохой реализации связных списков, написанной на Rust. Из тонны определенных реплаев я понял думают о связном списке как о шутке. Тривиальная структура данных, которая только и хороша, что для coding interview, в других случаях бесполезна.
Для того, чтобы из docker контейнера, использующего сетевой интерфейc типа bridge получить доступ к локальной сети используется параметр --add-host. Для него требуется docker версии 20 и выше.
Используя в сигнатурах клиентских методов и классов или интерфейс или тривиальный класс, который реализует данный интерфейс, вы тем самым неявно разделяете код на 2 части.
Тут описан простой прием как обновить что-то, что находится на сервере с nginx. Для этого достаточно запустить простой bash скрипт, который следит за изменением на чтение и запись определенного файла.