Projects
Most of my personal projects is open source and available on my Github and Sourcehut accounts.
- tour.golang-id.org
-
The tour.golang-id.org is translation of their original website tour.golang.org to Indonesian language, to help newcomers learning Go programming language. This is my first contribution to Go community.
- golang-id.org
-
This website is my second contribution to Go community. Its goal is not only to provide help, through translation, for Indonesian to learn more about Go but also to provide an ecosystem for Indonesian Go community, for example, vlog and blog in Indonesian language, and sharing open source works written in Go. The website is freshly launched, they are still more works to be done, though.
- rescached
-
Rescached is resolver cache daemon. It is a DNS forwarding server, serve the clients queries, but also caching all the queries and answers for later use. The idea is to minimize network traffic for outside DNS queries and to manage local zone files. The first implementation was written in C++ and then re-written using Go.
- awwan
-
Configuration management software, infrastructure as file and directory layout.
awwan
is command-line interface to execute multiple lines of command in the local or remote server using SSH. Do you have a collection of shell scripts to manage one more similar server? Do you ever want to execute only part of your script? Are you get tired with learning others syntax and tools for provisioning your own server, while you need is a handful of shell script? If yes, awwan is the right tools for you. - share
-
share
is collection of Go packages. The most outstanding packages is websocket, dns, email, smtp, memfs, and mining. - asciidoctor-go
-
The asciidoctor-go is the Go module to parse the AsciiDoc markup and convert it into HTML5.
- ciigo
-
ciigo is a program to write static web server with embedded files using asciidoc markup language. This site and golang-id.org is written with
ciigo
as framework. - karajo
-
karajo is the library and program to implement HTTP workers and manager similar to AppEngine cron. karajo has the web user interface for monitoring the jobs.
- trunks
-
trunks is a Go module that provide HTTP service with web user interface for testing HTTP endpoints (like Postman) and for load testing. For the load testing we use vegeta as the backend.
- gotp
-
Command line interface for Time-based One Time Password (TOTP).
- haminer
-
haminer is a library and program to parse and forward HAProxy logs to InfluxDB for mining HTTP requests.
- hunspell-id
-
Hunspell dictionary for Bahasa Indonesia.
- beku (deprecated in favor of Go module)
-
Beku is command line program to manage packages in user’s environment (GOPATH or vendor directory). Beku provide syntax like pacman. This program exists long before before
godep
or Go module exist and stable. - vos (unmaintained)
-
Vos is a program to process formatted data, i.e. CSV data. Vos is designed to process a large input file, a file where their size is larger than the size of memory, and can be tuned to adapt with machine environment. Vos can do sorting, formatting, filtering, and join, by reading input file and its configuration script. Its written in C.
- libvos (unmaintained)
-
libvos is a C++ library. First implementation was intended for reading and writing Delimited Separated Value (DSV) data, but then its evolved and have more capabilities. Current features included Buffer module, File module, Socket module, reading and writing INI file format, FTP (server and client) module, DNS module, and Oracle Client Interface module.
Articles
Articles on Software Engineering
Articles on Go programming language
-
Re-learning slice, March 2020
-
Go (informal) coding style, March 2017
Journal
2022
-
Finally, I use GPL. My inner thoughts on why I finally choose GPL.
-
Flag based continuous deployment. This article looks on how to manage multiple features developed, activated, and deployed in multiple environments while still maintaining linear history.