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. ...

<span title='2020-09-05 00:00:00 +0000 UTC'>September 5, 2020</span>

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. For install it: ...

<span title='2020-09-01 00:00:00 +0000 UTC'>September 1, 2020</span>

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: ...

<span title='2020-08-23 00:00:00 +0000 UTC'>August 23, 2020</span>

Использование 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 ...

<span title='2020-08-08 00:00:00 +0000 UTC'>August 8, 2020</span>