1 Dec 2024

Gemini-Telegram Chat: Multi-Modal AI Assistant with Intelligent Routing

Building a Telegram bot powered by Google’s Gemini AI that can handle text conversations, web searches, YouTube videos, image generation, voice input, and voice output. We’ll explore an intelligent routing architecture that efficiently directs requests to specialized models.

Read More → Go Telegram Gemini Ai Chatbot Routing Multimodal
1 Jul 2020

Remote debugging with Delve

Previously we discussed local debugging with GoLand IDE. Now we’ll discuss how to remotely debug a program running inside a Docker container using Visual Studio Code and GoLand IDE.

Read More → Docker Debugger Delve Vscode Goland
1 Jul 2020

Deploy docker swarm from Gitlab CI

Docker container deployment has many advantages over binary deployment. Let’s dive into advantages and see how we can implement docker container deployment from Gitlab CI. Let’s talk standard docker can help us. Any docker orchestration tools (Kubernetes, for example) will be observed in future articles.

Deploy docker swarm from Gitlab CI
Read More → Docker Deploy Gitlab Ci/Cd
30 Jun 2020

net-wait-go utility / library

Both utility and Go package to wait for ports to open (TCP, UDP).

net-wait-go utility / library
Read More → Tcp Udp Docker
29 Jun 2020

Building Minimal Docker Images for Go Applications

Let’s discuss how to build a minimal Docker image for a Go program.

Building Minimal Docker Images for Go Applications
Read More → Docker Compilation Upx Ldflags
8 May 2020

Compilation and deploy via SSH in Gitlab CI

Let’s take a look at how Go compilation works and how to use GitLab CI for that.

Compilation and deploy via SSH in Gitlab CI
Read More → Gitlab Compilation Deploy Ssh Modules Vendor Ci/Cd
2 May 2020

HTTP

All examples from the article are located in the github repository.

Let’s take a look at HTTP tools in GO.

Read More → Http Client Server Middleware
2 May 2020

sync.Map

Let’s take a look at sync.Map usage and its source code.

sync.Map
Read More → Sync.map Map Concurrency
23 Apr 2020

Profiling Go: Basics and Practice

Go has rich profiling tools from the very beginning — the pprof package and go tool pprof. Let’s discuss why profiling is useful, how to work with it, and what’s new in this area.

Profiling Go: Basics and Practice
Read More → Profiling Pprof Benchmark Ab Cpu Allocation Remote
21 Apr 2020

Dependency injection in GO

Let’s talk about dependency injection pattern and dependency management in large programs.

Dependency injection in GO
Read More → Dependency Injection Container Singleton Multiton
9 Apr 2020

GO Templates: Principles and Usage

Packages text/template and html/template are part of the Go standard library. Go templates are used in many Go-programmed software — Docker, Kubernetes, Helm. Many third-party libraries are integrated with Go templates, for example Echo. Knowing Go template syntax is very useful.

This article consists of text/template package documentation and a couple of author’s solutions. After describing Go template syntax, we’ll dive into text/template and html/template sources.

GO Templates: Principles and Usage
Read More → Templates Html Text Sources
7 Apr 2020

Filtering by a list of values with GORM

When you need to filter data by a list of values (for example, IDs: 1, 2, 3), you should use the ANY operator combined with pq.Array from the PostgreSQL driver.

Read More → Gorm Sql Postgresql
4 Apr 2020

Principles of slice type in GO

The Go blog describes how to use slices. Let’s take a look at slice internals.

Principles of slice type in GO
Read More → Slice Allocation Sources
2 Apr 2020

Data handling in concurrent programs

In Go, we have goroutines functionality out of the box. We can run code in parallel. However, in our parallel running code we can work with shared variables, and it is not clear how exactly Go handles such situations.

Data handling in concurrent programs
Read More → Map Sources
2 Apr 2020

Principles of map type in GO

The map programming interface in Go is described in the Go blog. We just need to recall that a map is a key-value storage and it should retrieve values by key as fast as possible.

Principles of map type in GO
Read More → Map Sources
30 Mar 2020

Coding a Simple TCP Chat in Go

An example of a simple TCP chat in Go with logic explanation.

Read More → Tcp Server Chat
30 Mar 2020

Golang regexp: matching newline

Why regular expressions with dot (".") work differently in Go compared to PHP and JavaScript.

Golang regexp: matching newline
Read More → Regular Expressions Sources
30 Mar 2020

GORM: filter entity by linked entity

This task is not that simple, especially with GORM.

Read More → Gorm Sql Postgresql
24 Mar 2020

Why and how to use a debugger with Go

A debugger is a very helpful and powerful tool. It can help you understand exactly what is happening in your code, explore new projects, and avoid unnecessary debug code changes.

Read More → Debugger Goland
2 Mar 2020

About

Hello, visitor!

I'm Anton Elmanov, the author of this website. I am currently a Go developer.

If you want to contact me for any reason, you can use the following:

Read More →