Category : golang

golang
#1.2 Самописное ядро для Minecraft — ULE на Go lang

Приветствую всех! Раз вы попали сюда, значит, вы хотите создать собственное ядро для игры Minecraft на языке программирования Go. Эта статья — римейк статьи о создании ядра, поэтому авторство можно приписать первоначальному автору. Однако так как он перешел на Rust, я получил эстафету и продолжил написание ядра на Go. В его коде было много ошибок, так как почти всё хранилось на его GitHub, который он почистил для Rust. Я переработал систему, чтобы вся основная часть хранилась локально, кроме би…

  • суббота, 8 марта 2025 г. в 00:00:12
golang
Настроить GPU-экспортеры? Легче создать свой или «как подружить экспортер Nvidia-smi-exporter с Pod…

Привет! Меня зовут Настя Бережная, я – DevOps-инженер, и в этой статье я расскажу о том, как мы пробовали использовать для решения своей задачи экспортеры Nvidia DCGM-Exporter и nvidia-gpu-exporter. Но после некоторых скитаний по документациям, форумам и попытками настроить экспортер малой кровью, было решено создать свой. Начнем с самого начала. К нашей команде пришел бизнес на первый взгляд с достаточно тривиальной задачей – реализовать отслеживание ресурсов видеопамяти в разрезе прило…

  • суббота, 8 марта 2025 г. в 00:00:11
golang
Компилятор GO. Добавляем цикл WHILE

На одной из конференций я наблюдал, как наши коллеги реализовывали тернарный оператор в Go с помощью комментариев. Доклад длился всего минут 10, и, честно говоря, я не смог уловить ничего внятного, кроме того, что ребята явно хорошо повеселились. Однако это вдохновило меня разобраться, как работает компилятор Go под капотом. А лучший способ разобраться — это попробовать написать что-то своё.Самым простым и понятным для меня в этом плане показалась реализация цикла while. В этой статье я покажу,…

  • суббота, 8 марта 2025 г. в 00:00:10
golang
Выходим за рамки: создание оператора для наблюдения за внешними ресурсами в Kubernetes

Привет! Я Александр Зверев, инженер архитектурных решений в компании «Флант». Сегодня поговорим про всеми любимый Kubernetes. Этот оркестратор стал таким популярным не только потому что он эффективно управляет контейнерами. Ещё его можно прокачать под себя. И для этого у него есть все необходимые инструменты. Новые возможности можно добавить с помощью контроллеров, операторов и создания новых типов ресурсов.При этом уже есть проекты, которые пошли дальше и научились управлять ресурсами за преде…

  • пятница, 7 марта 2025 г. в 00:00:14
golang
Syscall и cgo в Go

Привет, Хабр!Сегодня рассмотрим работу с системными утилитами в Go. Будем напрямую общаться с ядром, дергать системные вызовы и писать код на C, чтобы Go не чувствовал себя одиноким.Go славится своей безопасностью и простотой, но иногда нужно спуститься к системным вызовам, чтобы работать с процессами, файловыми дескрипторами и сетевыми сокетами на низком уровне.Сделаем это через два инструмента:syscall и golang.org/x/sys/unix — вызовы системных API, которые делают всякие вещи вроде fork(), exe…

  • пятница, 7 марта 2025 г. в 00:00:12
golang
Туториал: вход в мобильном приложении с Telegram

Аутентификация в мобильных приложениях с помощью Telegram Login Widget обделена информацией как официальной документации, так и в интернете. Меня зовут Александр, в этой статье поделюсь примером реализации входа в iOS приложение c помощью Telegram с блекджеком и граблями. В статье приведены сниппеты кода на Typescript + React, Go и Swift.Содержание:Telegram Login Widget API.Telegram Login Widget Internals.Кастомизируем некастомизируемое.Особенности на бекендеИнтеграция в нативное приложениеНам …

  • пятница, 7 марта 2025 г. в 00:00:09
golang
What's in the box!? Исследуем минимальное количество тредов golang-программы

Именно с такой мыслью и именно с интонацией Брэда Питта я ушел спать вчера (сегодня) в 3:40 утра. После того, как в 23:10 "споткнулся" об утверждение Коли Тузова, о том, что рантайм голенга создает треды заранее. Не верилось, настолько что я пошел перечитывать сорцы рантайма снова, тем более я туда с 1.17 не заглядывал.Кстати, если еще не смотрели видос Коли про планировщик - посмотрите. Но только после того как дочитаете эту статью🤭Коля в видосе запускал тестовую программу с дефолтным …

  • пятница, 7 марта 2025 г. в 00:00:08
golang
Как управлять сборками в Go с помощью build tags

Привет, Хабр!Вы когда‑нибудь сталкивались с ситуацией, когда нужно собрать Go‑приложение под несколько платформ? Или выключить часть кода в проде, оставив её активной в дев‑среде? Возможно, вы просто хотите поддерживать разные версии сборки с кастомными фичами без тонны if runtime.GOOS == «windows» {}?В этом вам помогут build tags.Build tags в Go — это специальные комментарии, которые говорят компилятору: «Этот файл включаем в сборку только если выполнены вот эти условия».Вот как они выглядят:/…

  • четверг, 6 марта 2025 г. в 00:00:13
golang
Запилил 100 проектов на Go и вот что скажу

Когда начинаешь новый проект, то надо какое то время потратить, чтобы подобрать подходящие библиотеки, подготовить структуру проекта, связать все воедино. Это занимает прилично времени. Целый день вполне может уйти. А экономить на этом шаге не стоит. Это ведь как фундамент. И вот, 5 лет назад я опубликовал каркас, который собрал для себя, чтобы делать с ним проекты на Go.С тех пор ко мне обращались люди и с вопросами, и с советами. Я менял компоненты, смотрел что получалось. Благо проектов было…

  • четверг, 6 марта 2025 г. в 00:00:12