Using Go as Example

In this tutorial, I will show how to create a Jenkins item, listen to Github Push, automatically build it and re-deploy it using

Prerequisites:

  1. Jenkins
  2. GitHub account
  3. Supervisord, for Ubuntu, you may follow ← Install this if you want to follow the CD steps, otherwise, you may skip this

If you think you have all prepared, then let’s start to the first step:

Creating dummy/example GitHub project

Create a project in GitHub, mine is called as go_jenkins_demo


Bagian awal dalam memasuki dunia pemrogramman. Diantarkan dengan bahasa C++

Singkat perkenalan, C++ adalah salah satu bahasa yang sudah cukup lama ada di dunia pemrogramman. Bahkan kehadirannya mendahului bahasa-bahasa lain seperti PHP, Java, C# dan Ruby. Bahasa ini emang terkesan lebih sederhana dibanding bahasa-bahasa tingkat tinggi, seperti tidak adanya fitur Garbage Collector yang mana programmer harus mengelola sendiri alokasi memory. C++ dianggap sebagai bahasa tingkat menengah karena dapat melakukan hal-hal yang ada di bahasa tingkat tinggi (seperti Java, C#, dll) namun juga menyediakan fitur penulisan bahasa tingkat rendah (seperti Assembly).

FYI, dalam survey StackOverflow 2019, C++ masih menjadi salah satu…


Because premature optimization is the root of all evil

Photo by on

The Circle of Evil

Sebagai seorang mahasiswa, saya sering berdiskusi dengan teman-teman mengenai perkembangan teknologi saat ini. Kami berdiskusi di semua lini platform, dari Web, Mobile maupun Embedded device, dari sisi bahasa, mulai dari C++, PHP sampai Rust. Dari SOAP atau JSON maupun Protobuf, dari RabbitMQ sampai Kafka , MySQL hingga MongoDB, kami buat hirarki nya, dari yang terbawah hingga teratas. Tidak jarang kami menggunjing satu programming language sebagai dead language hanya karena performa nya selalu kalah dengan bahasa-bahasa baru yang sedang hype di Internet

Tak jarang juga, kami menyindir materi-materi “Out of date” yang…


Harness the simplicity of NoSQL database with Mongo, combined with the simplicity of Go.

A Go-Gopher in front of a MongoDB schema. Picture combined from &

A brief introduction to MongoDB

MongoDB is a general purpose, document-based, distributed database built for modern application developers and for the cloud era. As what the official web says. Unlike other structured database like MySQL, Postgres or Oracle, MongoDB doesn’t force us to create a well-structured schema or table. Instead, it use a JSON-like document that contain dynamic structure. Take a look at the illustration below:

A common SQL Schema relation


Tutorial gRPC di Go yang chill buat dibaca, tapi tidak menghilangkan esensinya

Photo by on

Akhir-akhir ini, saya coba mengeksplor salah satu framework RPC (remote procedure call) dari Google, yakni, gRPC. Katanya teknologi ini di claim lebih performant dibanding REST/SOAP/dll, juga sudah menggunakan HTTP2 dan overhead nya lebih kecil serta sangat cocok digunakan untuk komunikasi microservice. Memang, sampai sekarang, belum ada project yang saya kerjakan mengharuskan menggunakan RPC untuk komunikasi antar service nya, namun salah satu fakta yang saya tau, hampir rata-rata kolega saya yang bekerja di StartUp sudah familiar dengan teknologi ini. So, why not to learn?

Pre-Start:

Mengenal Protobuf

Jika di RESTful API, Payload…


Photo by on

Belum ada server, dev masih di lokal, biar migrasi SQL nya gak susah, bisa pakai tool ini.

Sekitar seminggu yang lalu, saya di assign ke suatu kerjaan di posisi backend pada suatu bisnis finansial swasta di Jakarta. Dan saya terkendala dengan infrastruktur development yang belum disediakan. Tau sendiri lah, proses birokrasi di perusahaan seperti itu bagaimana. Padahal sprint development sudah berjalan. Akhirnya proses development antara Backend dan Frontend terhambat karena kendala menyesuaikan developer environment, utamanya adalah setting database / persistence.

Hingga kolega saya menginstruksikan saya untuk menggunakan migration tool pada database. Memang sebelumnya saya sudah pernah mencoba migration tool di…


Photo by on

Dive deeper into Go web socket and concurrency programming

Chatting app can be done in various way (theoretically). Like using simple long-polling request that provide half-duplex (one-way communication) or using protocol that provide full-duplex (2 way) communication like TCP Socket. But, website cannot directly connect to TCP, fortunately, there is a wrapper to TCP called Websocket.

You may read more explanation of Websocket that spread through internet, and this time, I’ll explain more about how to implement it in Go

Library needed

Before we go right into programming, that’s one library that we need:

gorilla/websocket is A fast, well-tested and widely used…

Gilang Prambudi

I prefer old-school song and technology, as they are obvious and more understandable.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store