Blog

Membuat upload dan download dengan golang graphql

2020/06/05
belajar
golang

Sama seperti tulisan Membuat upload dan download dengan golang hanya kali ini kita membuatnya dengan graphql. Apakah bisa juga? Contoh kasus dalam dunia nyata seperti Upload foto, Import dan Export CSV dan lain lain. Membuat Graphql Seerever Sederhana Membuat graphql pada golang cukup mudah, kita bisa menggunakan library gqlgen. Instalasinya juga to the point bisa dibaca di Getting Started. Intsall GQLGen go get github.com/99designs/gqlgen Inisialisasi kerangka kerja gqlgen go run github. ...

Membuat upload dan download dengan golang

2020/06/04
belajar
golang

Ditulisan kali ini kita coba membuat program untuk melakukan upload dan download menggunakan golang. Contoh kasus dalam dunia nyata seperti Upload foto, Import dan Export CSV dan lain lain. Membuat WebServer Sederhana Karena fokusnya hanya ke upload dan downloadnya. Webservernya kita buat sederhana aja ya. Cukup dengan membuat 2 file main.go dan index.html. main.go package main import ( "fmt" "html/template" "log" "net/http" "path" ) func upload(w http.ResponseWriter, r *http.Request) { fmt. ...

Monitoring Service Dengan Prometheus

2020/05/26
belajar, monitoring
monitoring, microservice, golang

Prometheus adalah proyek open source metrics-based monitoring system. Intinya sih cuma alat untuk mengumpulkan data model dan bisa diquery (PromQL). Karena bisa diquery, jadi kita bisa menganalisa performa dari aplikasi dan infrastruktur yang kita bangun. Data model itu sebenernya hanya kumpulan teks yang berformat. Data yang dikumpulkan disimpan sebagai time series. Bentuk dari notasinya seperti ini: <metric name>{<label name>=<label value>, ...} Contoh, Kalau kita mau membuat metric http request total: ...

Mengenal Context pada Golang

2020/05/20
belajar
golang

Apa itu Context Golang context adalah standard libray muncul pertama kali pada versi 1.7. Tapi, sebenarnya package ini sudah ada dari dulu, ada di golang.org/x/net/context. Kita dapat menggunakan context untuk melakukan cancelation, deadlines dan passing value ke standard library lainnya, seperti net, net/http, and os/exec. Apa sih yang dimaksud dengan cancelation? Analogi dari cancelation kurang lebih seperti ini. Misalnya, Andi meminta dibuatkan Bakso kepada Budi untuk acaranya. Budi segera mencari daging dan bahan-bahan lain di pasar. ...

Apa itu Knative

2020/05/10
belajar, knative
knative

Akhir akhir ini serverless sedang booming. Beberapa penyedia layanan cloud computing sudah menyediakan product serverless. Misalnya pada AWS, ada AWS Lambda dimana kita sebagai pengembang tinggal upload binary function ke AWS lambda. Lalu pada GCP ada Cloud Function mirip seperti AWS Lambda dan belum lama ini mulai ramai Cloud Run yang mana sebenernya Cloud Run itu adalah Knative. Knative sendiri berjalan diatas kubernetes atau extention dari kubernetes yang menjadi middleware untuk membuat aplikasi yang bisa berjalan dimanapun pada cloud yang menggunakan kubernetes. ...

Error download library

2020/05/06
belajar
rust

Ada masalah ketika mencoba menggunakan library. Jadi ketika run syntax cargo run dapat hasil seperti ini Updating crates.io index error: failed to load source for a dependency on `actix` Caused by: Unable to update registry `https://github.com/rust-lang/crates.io-index` Caused by: failed to fetch `https://github.com/rust-lang/crates.io-index` Caused by: failed to authenticate when downloading repository attempted ssh-agent authentication, but none of the usernames `git` succeeded Caused by: no authentication available Coba googling dapet issue #2078 dari repository rustnya. ...

Ngulik NATS io

2020/04/30
belajar
natsio

Di dunia software engineering jargon microservice terdengar keren. Dilingkaran software engineer gw, mereka berlomba lomba untuk mengimplementasi microservice dengan harapan service yang dibuatnya menjadi lebih “scalable” kaya engineer engineer di silicon valley gitu gitu lah. Salah satu topik yang seru untuk dibahas adalah messaging system dan merek yang tengah bersinar itu salah satunya nats.io. Kalau mau tau ceritanya tentang nats itu apa, bisa baca di dokumentasinya https://docs.nats.io/. Dibagian introduction sudah dijelaskan secara jelas. ...

Cara menggunakan docker

2020/04/12
belajar
docker

Sebelumnya pernah bikin tulisan bagaimana install postgre sql menggunakan docker. Kali ini mau coba ginmana caranya menggunakan docker dan docker hubnya. Docker hub adalah salah satu layanan dari docker dimana kita dapat mencari dan membagi container images. Layanan ini bisa digunakan secara gratis dan berebayar. Cek aja disini kalo mau tau lebih lanjut. Tulisan kali ini ditujukan untuk dokumentasi cara menggunakan docker hub. Anggap kita sudah menginstall docker dikomputer kita masing masing. ...

Mencoba Rust System Programming Language

2020/04/05
belajar
rust

Sudah dari tahun 2018 kami sudah mendengar rust, terutama ketika AWS me-“Open Source” FireCraker - Engine Lambda, rust menjadi salah satu bahasa yang digadang-gadang saingan go. Ya meski tidak ada saingan diantara bahasa pemrograman, karena itu cuma alat bantu untuk menyelesaikan masalah. Baru ditahun ini ingin mencoba Rust, Karena ada kejenuhan dan ingin mencoba sesuatu yang baru. Sekilas baca buku Programming Rust, 2nd Edition, bagian Why Rust?. Yang kami tangkap disana itu Rust adalah ...

Migrasi database dengan golang

2020/03/30
belajar
golang, postgre

Akhir akhir ini terasa capek ketika membuat schema database langsung menggunakan GUI. Dan schema yang berubah bisa kadang kehilangan sejarahnya, kapan perubahannya tidak terawasi. Bagaimana jika skema database disatukan dengan source code aplikasi kita. Sehingga perkembangan skema database dapat tercatat sama seperti code. Dengan tools bernama migrate menjadi solusi untuk permasalahan diatas. alih alih kita langsung membuat tabel diGUI database, kita bikin dalam script yang nantinya dimasukan kedalam database juga. ...