"Life is all about sharing. If we are good at something, pass it on." - Mary Berry

Resume

2019-09-30

Quan Tong Anh

quantonganh@gmail.com | github.com/quantonganh

Software Engineer / DevOps Engineer

I am an experienced and versatile software and DevOps engineer with over a decade of expertise in the industry, including exposure to Golang, gRPC, PostgreSQL and MongoDB.

As a passionate advocate for Go, I appreciate its native concurrency support, streamlined compilation process, and the power behind its simplicity and extensive standard library, enabling the development of scalable, high-performance, and robust backend systems.

Read More...


Command-line autocomplete for Go documentation

2019-09-26

Go has a great, well documented standard library. You may find yourself spending a fairly significant chunk of your Go programming time digging in stdlib docs, which is reasonable to expect at least for novice Go coders.

https://eli.thegreenplace.net/2018/command-line-autocomplete-for-go-documentation/


Auto reload your Go webserver with Gulp

2019-09-20

When you developp a webserver with Go, you must compile each time you do an update in your code. Well.. this is redundant. With Gulp you can automatize this task… Indeed, when a go file is modified, a task compile the application in the “bin” folder (“gopath/bin”) then another launch the executable (the webserver).

https://medium.com/@etiennerouzeaud/autoreload-your-go-webserver-with-gulp-ee5e231d133d

const gulp     = require('gulp'),
      util     = require('gulp-util'),
      notifier = require('node-notifier'),
      child    = require('child_process'),
      os       = require('os'),
      path     = require('path');

var server = 'null'

function build() {
    var build = child.spawn('go', ['install']);

    build.stdout.on('data', (data) => {
        console.log(`stdout: ${data}`);
    });

    build.stderr.on('data', (data) => {
        console.error(`stderr: ${data}`);
    });

    return build;
}

function spawn(done) {
    if (server && server != 'null') {
        server.kill();
    }

    var path_folder = process.cwd().split(path.sep)
    var length = path_folder.length
    var app = path_folder[length - parseInt(1)];

    if (os.platform() == 'win32') {
        server = child.spawn(app + '.exe')
    } else {
        server = child.spawn(app)
    }

    server.stdout.on('data', (data) => {
        console.log(`stdout: ${data}`);
    });

    server.stderr.on('data', (data) => {
        console.log(`stderr: ${data}`);
    });

    done();
}

const serve = gulp.series(build, spawn)
function watch(done) {
    gulp.watch(['*.go', '**/*.go'], serve);
    done();
}

exports.serve = serve
exports.watch = watch
exports.default = gulp.parallel(serve, watch)

Read More...


About

2019-09-19

Hi, I’m Quan.

I began my career as a .NET developer, but my passion for Linux and open-source software led me to pursue a career in system administration. Over the years, I gained extensive Linux experience and eventually transitioned into software engineering. In my spare time, I enjoy teaching my wife how to program to optimize her office tasks.

I am motivated by roles that make a positive impact on people’s lives or offer opportunities to help others.

Read More...


Lavender

2019-06-17

Lavender in Provence Lavender in Provence, France.

Marseille -> Provence: 150km

Xe lạ. Lái không mới nhưng sợ đi số sàn, nhất là đề-pa. Có lần dừng đèn đỏ, cứ “côn ra ga vào” là chết máy, đằng sau bóp còi inh ỏi, người toát mồ hôi. Bình tĩnh nhìn lại thì hóa ra… chưa hạ phanh tay.


Đến những nơi bạn chưa từng đến.
Làm những điều bạn chưa từng làm.
Để có được những trải nghiệm bạn chưa từng có.

Read More...


France

2019-06-15

Eiffel tower Eiffel tower, Paris, France.

Champs-Elysees Boulevard Champs-Elysees boulevard, Paris, France.

X


Hà Nội

2019-02-01

K9 Bách khoa K9 Bach khoa, Hanoi.

Long Bien bridge Long Bien bridge, Hanoi.

Fishing on the West lake West lake, Hanoi.

L’etage cafe L’etage cafe, Hanoi.

Đêm nằm mơ thấy đi tu
Sáng ra tỉnh dậy mùa thu đã về

Ô Quan Chưởng Quan Chuong gate, Hanoi.