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

Activities to be happy

2019-12-03


Đạm Thủy (Tamsui)

2019-11-28

Tamsui Taiwan Tamsui, Taiwan.

Đáp MRT từ suối nước nóng Beitou về không kịp.

Hoàng hôn đã tắt.

Đèn đã lên.

Chỗ thuê xe đạp đã đóng cửa.

Đành lang thang chợ đêm vậy.

Phượt thủ nhí vẫn đi băng băng. Mỗi ngày bạn ấy đi bộ khoảng 5, 6 km là chuyện bình thường. Tối về hơi kêu tí thôi 😛.

Google cho biết gần đây có một quán ăn mà lúc nhỏ một ca sĩ nổi tiếng của Đài Loan hay đến ăn. Vì thế, chủ quán đã dùng tên của anh để đặt cho phần ăn này (có lẽ từ đó mà quán này cũng nổi tiếng luôn 😃).

Read More...


Giải quyết 10 vấn đề khó khăn trong cuộc sống bằng thái độ biết ơn

2019-11-27

  1. Lạc đường khi đi chơi -> sau này nhớ lại mới có chuyện để nói chứ.
  2. Tắc đường khi đi làm về -> có thời gian để nghĩ về các ý tưởng.
  3. Làm việc ở nhà -> tiết kiệm thời gian đi trên đường.
  4. -> có thời gian đón con.
  5. -> đi ăn trưa cùng bạn bè.
  6. Thất nghiệp -> có cơ hội để học thứ gì đó.
  7. Phỏng vấn tạch -> biết kiến thức của mình còn hổng ở đâu.

Read More...


Những người tốt quanh ta

2019-11-01

Sun Yat-sen University On the way go to Sun Yat-sen university.

Xuống xe buýt.

Google Maps chỉ một đường, người dân chỉ đường khác.

Đang phân vân thì:

Bạn xuống xe, đi bộ cùng cả nhà. Vừa đi, vừa nói chuyện. Bạn học ĐHQG, đang làm TS toán tối ưu bên này. Bạn vừa dẫn đi vừa giới thiệu lịch sử, … Rồi còn chụp ảnh giúp.

Read More...


Why my golang docker container exits immediately (code 127)?

2019-10-30

To trim the binary size, I used LDFLAGS='-w -s', pack with upx, then build from scratch. The thing is when starting, it exited immediately with code 127. Why?

My Dockerfile:

1FROM scratch
2
3WORKDIR /app
4
5COPY build/linux/<binary> .
6
7ENTRYPOINT [ "/app/<binary>" ]

When starting:

10fbce782a9bd        quantonganh/<binary>:T276-dockerize                              "/app/<binary>"           6 seconds ago       Exited (127) 4 seconds ago                                           relaxed_thompson

Read More...


go/packages.Load: no packages found

2019-10-22

I have a mono-repo, structure like this:

1repo
2├── service1
3├── service2
4├── go.mod

I often open the root folder from the command line by using code .. After that I open a file in service1, and cannot go to definition. Here’s the logs from gopls:

1[Info  - 5:49:28 AM] 2019/10/22 05:49:28 20.675656ms for GOROOT=/usr/local/Cellar/go/1.13/libexec GOPATH=/Users/quanta/go GO111MODULE=auto PWD=/Users/quanta/go/src/github.com/owner/repo go "list" "-e" "-json" "-compiled=true" "-test=true" "-export=false" "-deps=true" "-find=false" "--" "/Users/quanta/go/src/github.com/owner/repo/a/b/c", stderr: <<go: directory a/b/c is outside main module
2>>
3
4[Error - 5:49:32 AM] Request textDocument/definition failed.
5  Message: go/packages.Load: no packages found for /Users/quanta/go/src/github.com/owner/repo/a/b/c/file.go
6  Code: 0 

Read More...


Bằng về sớm với ba

2019-10-21

Bốn giờ con tan học
Ùa ra như bầy ong
Chạy xuống sân đá bóng
Mới năm giờ đã xong.

Bởi lần lượt các bạn
Được bố mẹ đón đi
Còn mỗi con ở lại
Nằm dài xem tivi.

Xem một lúc chán quá
Lang thang đi tìm ba
Gọi mãi mà chẳng thấy
Ba vẫn còn ở xa.

Năm rưỡi ba gập máy
Quyết định nhấc cái mông
Vành đai ba thì tắc
Biết bao giờ mới thông.

Sáu giờ mười đến cổng
Thấy con đang ngóng trông

Read More...


database/sql: never ignore errors

2019-10-16

I’m reading Building RESTful Web Services with Go. And in chapter 4, there is an example to play around with SQLite:

 1db, err := sql.Open("sqlite3", "./books.db")
 2if err != nil {
 3	log.Fatal(err)
 4}
 5
 6statement, err := db.Prepare("CREATE TABLE IF NOT EXISTS books (id INTERGER PRIMARY KEY, isbn INTEGER, author VARCHAR(64), name VARCHAR(64) NULL)")
 7if err != nil {
 8	log.Fatal(err)
 9} else {
10	log.Println("Created table books successfully")
11}
12statement.Exec()
13
14statement, err = db.Prepare("INSERT INTO books (name, author, isbn) VALUES (?, ?, ?)")
15if err != nil {
16	log.Fatal(err)
17}
18statement.Exec("Life is a joke", "The Javna brothers", 123456789)
19log.Println("Inserted first book into db")
20rows, err := db.Query("SELECT id, name, author FROM books")
21var tempBook Book
22for rows.Next() {
23	rows.Scan(&tempBook.id, &tempBook.name, &tempBook.author)
24	log.Printf("ID: %d, Book: %s, Author: %s\n", tempBook.id, tempBook.name, tempBook.author)
25}

Read More...


Lên xuống dòng đời

2019-10-14

Wien Hauptbahnhof Austria Wien Hauptbahnhof, Austria.

Vừa đáp chuyến tàu đêm từ Zurich sang. May mà lần này mỗi khi tàu dừng, điều hoà không tắt thì phải. Cuốc bộ tiếp 1,5 km nữa để về khách sạn. Hồn nhiên đưa mail booking cho nhân viên, đang định hỏi xem có cho check in sớm không.

Read More...


How do I build this blog?

2019-10-11

Raspberry Pi 4

Recently, I decided to find a new job as a Golang developer. So, I updated my resume, sent to my friends to ask for review. Then I submitted it enclosed herewith a cover letter to recruiters. Some didn’t reply, and the other replied with a message like this “You are so good, but I’m so sorry…”.

What is the reason?

As you can see in my resume, I started my career as a .NET developer, then my passionate on Linux and open source lead me to a different direction: system administrator. And I followed this nearly in 9 years before switching back to work as a Golang developer 2 years ago.

Read More...