Watchdog for folder changes with golang

I recently wrote a Python script to log changes in the selected folder. The script has a GUI based on Tkinter, the native Python library. I decide to rewrite this script in the Golang. I only need one executable file that doesn’t require Python installation. Before that, I made an executable file using pyinstaller. But why not try Golang? Apart from Tkinter, I only know a little about the GTK. I used it for a new version of the program written in Golang with a GUI....

September 5, 2020

Windows GUI-app on Golang with GTK 3

To develop a GUI app in Windows, I chose the gotk3 package. This is a binding of the GTK lib, which provides a native interface for Windows. I didn’t deal with crosscompiling and installed all the necessary tools in the Windows 10 VM. The VM image is officially distributed by Microsoft. I used the instructions from the wiki to install gotk3. Also I used the Chocolatey to install the necessary tools....

September 1, 2020

Visualizing network topologies with Golang

This day is inspired by the article “Визуализация сетевых топологий, или зачем еще сетевому инженеру Python #2”. I wrote Golang program that analyzes the output of the cisco sh int, sh mac-address-table (for switches) or sh ip arp (for routers) commands and vizualizes network topology from mac address tables. I only used mac address information, not LLDP (CDP). NeXt Ui (Github) is used for visualization. For example, I received an output with self-made telnet client on Golang from a network of this topology:...

August 23, 2020

Использование EasyJSON в golang вместо encoding/json

Пакет Go easyjson от Mail.Ru предоставляет быстрый и простой способ маршалировать/демаршалировать структуры Go в/из JSON основанный на рефлексии. В тестах производительности easyjson превосходит стандартный encoding/json пакет в несколько раз (сравнительный benchmark в конце). Установка и использование (OS Windows) Должна быть установлена переменная окружения GOPATH. У меня: echo %GOPATH% d:\projects-go\ И должен быть установлен git. Cтавим easyjson: go get -u github.com/mailru/easyjson/... в %GOPATH%\bin появится easyjson.exe В каталоге нашего проекта создаем подкаталог, он же пакет go, отличный от main (это обязательно), например %GOPATH%\project\model...

August 8, 2020