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.
...
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. For install it:
...
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:
...
Пакет 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
...