Приветствую, друзья. Квалифицирую себя как джуна на языке GO, с анализом данных еще не сталкивался, поэтому после изучения вопроса, решил что выйдет классная статья из полученного опыта. Плюс разложу материал для себя по полочкам. Статья будет описываться поэтапно, т.к считаю это самым удобным восприятием алгоритмов.Поступила задача выполнения кластеризации множества товаров, по их размерам. Значения распределения: ширина и высота.После изучения вопроса, было найдено несколько подходящих алгори…
Topological consensus system (TCS)Автор: Александр Коробкин и команда разработчиковВведение новой инновационной технологии распределенных систем: СТКСегодня мы рады представить вашему вниманию нашу новую инновационную технологию, основанную на протоколе Chord, но с рядом уникальных особенностей, которые увеличивают его функциональность и производительность. Мы назвали нашу технологию "СТК" (Система Топологического Консенсуса).Предназначение СТКСТК является распределенной хэш-таблицей (D…
В одной из московских компаний решили расширить функции системы на Golang, и заказчик попросил внедрить в неё SMS и прочие каналы для уведомлений клиентов. В этой статье пошагово разберём, как отправлять SMS с использованием сервиса МТС Exolve и популярного языка программирования Golang.SMS — полезный инструмент в сценариях взаимодействия с клиентами, если вы получаете их согласие на уведомления. В основном про доставку товара или о состоянии онлайн-заказа; сообщения о бонусах и акциях; автомат…
Приветствую, в прошлой статье мы разбирали определение bytes.Buffer изнутри. Теперь хочется обратить внимание на сам пакет bytes. Что за ним скрывается? Каждому разработчику приходилось использовать его будь то в production или локальной разработке. Это достаточно мощный по своим меркам пакет, который предоставляет нам функции для работы с байтами.Давайте разберем каждую функцию отдельно и поговорим какая и зачем нужна, а самое главное посмотрим на исходный код вблизи. Статья может являться нек…
Привет! Меня зовут Денис, я - разработчик ПО SEDMAX. Это промышленное ПО для сбора и визуализации данных в энергетике. Как и у всех, у нас бывают баги. Мне бы хотелось поделиться опытом в поиске таких багов, а также порассуждать на тему того, что необходимо было сделать, чтобы баг не появился. У нас серверная часть написана на go в виде некоторого множества сервисов, поэтому специфика большинства багов будет асинхронное взаимодействие, а код примеров представлен на go. В прошлой статье были сде…
ВступлениеНи для кого не секрет, что стандартный пакет context широко используется для создания ваших сервисов. В данный момент, не побоюсь этого слова, любой сервис написанный на Go использует контексты повсеместно. Мое мнение таково - если ты хочешь прогрессировать как специалист, ты должен копать все глубже и глубже. Предлагаю рассмотреть context с призмы его работы внутри.Определение СontextСуществует несколько типов context, с которыми Golang разработчику приходится сталкиваться. Давайте к…
Работая с кодом на Go, любому специалисту приходилось сталкиваться со стандартным пакетом bytes . Внутри него лежит определение Buffer . Что же это такое?Определение bytes.BufferСам по себе bytes.Buffer является структурой.type Buffer struct { buf []byte // содержимое - это байты buf[off : len(buf)] off int // читает по &buf[off], пишет по &buf[len(buf)] lastRead readOp // последняя операция чтения, чтобы Unread* могло работать корректно }Buffer — это буфер с переменным…
Приложению cara.app пришёл счет от Vercel на 96280$. Многие стартапы начинают с Vercel и Firebase, затем из нежелания платить гуглу уходят на свои сервераПоговорим с нюансами про стэк технологий, в частности выбор языка, и оценим усилия на миграцию на свои сервера. Разберём на примере моего пет-проекта без Firebase (Github). Клиент → Сервер → Мониторинг → K8SДемо с инфраструктурой:Про клиентБлагодаря Firebase rules, с базой не страшно работать на клиенте. На своём сервере мы такого себе не позв…
Привет дорогие Хабряне и случайно зашедшие добрые люди! Давно хотел написать статью о паттерне опций в функциях и почему его использование настолько шикарно. В статье будет упрощенный пример из жизни, так что не судите строго. Заранее благодарен за комментарии и указания на неточности. Задача из жизниВам необходимо обрабатывать датаматрицы или qr коды с товаров на складе. Сотрудники склада сканируют их, ваша программа эти данные получает. Далее идет ваша бизнес-логика...Я намеренно упрощу реали…