Приветствую всех! Раз вы попали сюда, значит, вы хотите создать собственное ядро для игры Minecraft на языке программирования Go. Эта статья — римейк статьи о создании ядра, поэтому авторство можно приписать первоначальному автору. Однако так как он перешел на Rust, я получил эстафету и продолжил написание ядра на Go. В его коде было много ошибок, так как почти всё хранилось на его GitHub, который он почистил для Rust. Я переработал систему, чтобы вся основная часть хранилась локально, кроме би…
Привет! Меня зовут Настя Бережная, я – DevOps-инженер, и в этой статье я расскажу о том, как мы пробовали использовать для решения своей задачи экспортеры Nvidia DCGM-Exporter и nvidia-gpu-exporter. Но после некоторых скитаний по документациям, форумам и попытками настроить экспортер малой кровью, было решено создать свой. Начнем с самого начала. К нашей команде пришел бизнес на первый взгляд с достаточно тривиальной задачей – реализовать отслеживание ресурсов видеопамяти в разрезе прило…
На одной из конференций я наблюдал, как наши коллеги реализовывали тернарный оператор в Go с помощью комментариев. Доклад длился всего минут 10, и, честно говоря, я не смог уловить ничего внятного, кроме того, что ребята явно хорошо повеселились. Однако это вдохновило меня разобраться, как работает компилятор Go под капотом. А лучший способ разобраться — это попробовать написать что-то своё.Самым простым и понятным для меня в этом плане показалась реализация цикла while. В этой статье я покажу,…
Привет! Я Александр Зверев, инженер архитектурных решений в компании «Флант». Сегодня поговорим про всеми любимый Kubernetes. Этот оркестратор стал таким популярным не только потому что он эффективно управляет контейнерами. Ещё его можно прокачать под себя. И для этого у него есть все необходимые инструменты. Новые возможности можно добавить с помощью контроллеров, операторов и создания новых типов ресурсов.При этом уже есть проекты, которые пошли дальше и научились управлять ресурсами за преде…
Привет, Хабр!Сегодня рассмотрим работу с системными утилитами в Go. Будем напрямую общаться с ядром, дергать системные вызовы и писать код на C, чтобы Go не чувствовал себя одиноким.Go славится своей безопасностью и простотой, но иногда нужно спуститься к системным вызовам, чтобы работать с процессами, файловыми дескрипторами и сетевыми сокетами на низком уровне.Сделаем это через два инструмента:syscall и golang.org/x/sys/unix — вызовы системных API, которые делают всякие вещи вроде fork(), exe…
Аутентификация в мобильных приложениях с помощью Telegram Login Widget обделена информацией как официальной документации, так и в интернете. Меня зовут Александр, в этой статье поделюсь примером реализации входа в iOS приложение c помощью Telegram с блекджеком и граблями. В статье приведены сниппеты кода на Typescript + React, Go и Swift.Содержание:Telegram Login Widget API.Telegram Login Widget Internals.Кастомизируем некастомизируемое.Особенности на бекендеИнтеграция в нативное приложениеНам …
Именно с такой мыслью и именно с интонацией Брэда Питта я ушел спать вчера (сегодня) в 3:40 утра. После того, как в 23:10 "споткнулся" об утверждение Коли Тузова, о том, что рантайм голенга создает треды заранее. Не верилось, настолько что я пошел перечитывать сорцы рантайма снова, тем более я туда с 1.17 не заглядывал.Кстати, если еще не смотрели видос Коли про планировщик - посмотрите. Но только после того как дочитаете эту статью🤭Коля в видосе запускал тестовую программу с дефолтным …
Привет, Хабр!Вы когда‑нибудь сталкивались с ситуацией, когда нужно собрать Go‑приложение под несколько платформ? Или выключить часть кода в проде, оставив её активной в дев‑среде? Возможно, вы просто хотите поддерживать разные версии сборки с кастомными фичами без тонны if runtime.GOOS == «windows» {}?В этом вам помогут build tags.Build tags в Go — это специальные комментарии, которые говорят компилятору: «Этот файл включаем в сборку только если выполнены вот эти условия».Вот как они выглядят:/…
Когда начинаешь новый проект, то надо какое то время потратить, чтобы подобрать подходящие библиотеки, подготовить структуру проекта, связать все воедино. Это занимает прилично времени. Целый день вполне может уйти. А экономить на этом шаге не стоит. Это ведь как фундамент. И вот, 5 лет назад я опубликовал каркас, который собрал для себя, чтобы делать с ним проекты на Go.С тех пор ко мне обращались люди и с вопросами, и с советами. Я менял компоненты, смотрел что получалось. Благо проектов было…