Rebar3 Erlang

Contoh penggunaan dasar

Membuat release

Membuat release / project baru

$ rebar3 new release your_app_name
===> Writing your_app_name/apps/your_app_name/src/your_app_name_app.erl
===> Writing your_app_name/apps/your_app_name/src/your_app_name_sup.erl
===> Writing your_app_name/apps/your_app_name/src/your_app_name.app.src
===> Writing your_app_name/rebar.config
===> Writing your_app_name/config/sys.config
===> Writing your_app_name/config/vm.args
===> Writing your_app_name/.gitignore
===> Writing your_app_name/LICENSE
===> Writing your_app_name/README.md

$ cd your_app_name

Kita pilih pembuatan HTTP JSON API sebagai contoh hasil project. Library web server yang kita gunakan adalah Cowboy , dan library untuk handle JSON nya kita menggunakan Jiffy .

Read More

Software Quality, Antara Teknologi dan Metodologi. Studi kasus, Test Driven Development (TDD)

Awalan

Berbicara tentang teknologi dan metodologi memang merupakan 2 hal yang sangat berbeda. Dan 2 hal ini sangat erat kaitannya sebagai fondasi untuk menuju yang namanya software quality. Pemilihan teknologi dan metodologi yang tepat, pastinya mempengaruhi seberapa berkualitas software yang kita bangun.

Dalam pandangan awam saya, tanpa survey, dan tanpa data dan karena saya adalah seseorang yang dengan literasi jongkok, ya saya malas membaca, kalau pun saya membaca saya biasanya membaca buku yang berjenis resep (cookbook). Jadi saya bermodalkan kondisi sedang mabuk untuk menulis artikel ini. Di sebelah saya ada satu kerat teh botol. Ya mabuk teh botol.

Di Indonesia, khususnya di perusahaan-perusahaan berbasis dan memang teknologi sebagai tulang punggungnya, para lord nya (orang-orang di level management teratas) sudah mulai melirik, mempertimbangkan mengimplementasikan suatu metodologi tertentu pada proses pengembangan produk-produk mereka. Dengan harapan dapat meningkatkan kualitas produk.

Teknologi? Tidak usah ditanya lagi, orang-orang kita sudah sejak lama dan sudah banyak yang jago dalam hal implementasi teknolog-teknologi terbaru. Mmmmmmmm…ternyata kualitas produk yang dihasilkan pun dinilai masih kurang OK. Walaupun sudah menggunakan teknolog-teknologi baru sekalipun. Ya..saya akui memang, OK atau kurang OK itu relatif. Dan, apakah implementasi suatu metodologi baru akan menjamin meningkatnya kualitas produk? Ya! Tentu saja! Tentu saja tidak bisa dipastikan juga apakah akan meningkat atau malah menurun. Hahahahaha…

Tapi, ingat metodologi juga amat sangat PENTING sama halnya seperti teknologi dan malah lebih berpengaruh dalam peningkatan kualitas dibandingkan teknologi.

Read More

ProxySQL Sebagai MySQL Database Load-balancer, Connection-pooling, dan Query Routing

Semua instalasi dan konfigurasi dilakukan di lingkungan sistem operasi GNU/Linux CentOS 7. Database yang saya gunakan adalah MariaDB v.10.x terbaru dan sudah meng-aktifkan dan mengkonfigurasi fitur Galera Database Clustering. Tutorial ini tidak membahas cara install dan konfigurasi MariaDB Clustering. Jadi, untuk dapat mengikuti tutorial ini, kamu sudah harus memiliki mesin-mesin yang sudah ter-install MariaDB, terkonfigurasi dan sudah ter-cluster dengan baik.

Instalasi ProxySQL

Tulisan ini menyadur cara instalasi di https://github.com/sysown/proxysql/wiki. Jadi, jika kamu tidak menggunakan GNU/Linux CentOS 7 maka di link manual itu ada cara instalasi untuk distro GNU/Linux yang lainnya.

Read More

Membangun Load Balancer Failover yang Otomatis Untuk Web Server di GNU/Linux CentOS 7

Pengantar

Untuk menuju suatu situasi ketersediaan yang tinggi (High Availability / HA) pada service kamu, maka kamu mulai menggunakan lebih dari 1 web server dan database server. Ambil contoh untuk web server. Sebagai langkah awal, Kamu mungkin mulai menggunakan 2 atau 3 web server. Yang mana semua request didistribusikan ke 2 atau 3 web server tersebut melalui mesin load balancer (LB).

                                              +-----------------+
                                              |                 |
                                              |                 |
                                         +----> Web Server 1    |
                                         |    |                 |
                                         |    |                 |
                                         |    +-----------------+
                                         |
                 +-----------------+     |    +-----------------+
  Request        |                 |     |    |                 |
+----------------> Load Balancer   +---------->                 |
                 |                 |     |    | Web Server 2    |
                 +-----------------+     |    |                 |
                                         |    |                 |
                                         |    +-----------------+
                                         |
                                         |    +------------------+
                                         |    |                  |
                                         |    |                  |
                                         +----> Web Server3      |
                                              |                  |
                                              |                  |
                                              +------------------+
Read More

Setup PHP Web App Stack di GNU/Linux CentOS 7

Web Server

Ada 2 pilihan populer untuk web server di lingkungan GNU/Linux yaitu:

  1. Apache HTTPD
  2. NGINX

Instalasi Apache HTTPD

Langkah - langkah instalasi:

  1. yum install httpd
  2. systemctl start httpd
  3. systemctl enable httpd
  4. Pasti kita butuh engine PHP untuk dijalankan di Apache HTTPD Web Server ini. Maka dari itu, ikuti bagian tulisan dengan sub judul “Instalasi PHP 5.6 dan PHP FPM”. Abaikan langkah instalasi Konfigurasi PHP FPM. Jadi, cukup sampai langkah ke-4 saja.
Read More

Membuat react web apps sederhana yang isomorphic

Apa itu javascript web apps yang isomorphic?

Javascript web apps yang isomorphic adalah suatu web apps berbasis javascript yang selain bisa berjalan di sisi client (browser) juga bisa berjalan di sisi server. Semua proses dapat dieksekusi di sisi server atau client. Lalu, Apa yang menyebabkan Isomorphic yang merupakan sebuah kata sifat ini dijadikan sebagai sifat baru dari sebuah javascript web apps?

NodeJs. Ya, Sejak lahirnya teknologi yang bernama NodeJs javascript mulai bisa dijalankan di sisi server. Dengan mengkombinasikan salah satu platform javascript UI framework dengan NodeJs, maka kita dapat mewujudkan isomorphic web apps. Contoh, mengkombinasikan ReactJs dengan NodeJs, atau AngularJs dengan NodeJs.

Read More

Preparasi supply informasi pada komponen React

Pengantar

Setiap komponen pada suatu aplikasi berbasis React tentunya ketergantungan dengan berbagai jenis informasi pada saat komponen itu mulai diaktifkan (mounted). Informasi-informasi itu dapat berupa informasi wording, informasi styling, informasi bahasa, dan informasi daftar menu. Dan bahkan informasi yang berupa function yang nantinya bisa dipanggil dari komponen yang menerima supply informasi.

Read More

Internationalization pada aplikasi React menggunakan Polyglot dan Redux

Pengantar

Fitur multi bahasa pada suatu website adalah sangat penting untuk menjangkau pengunjung internasional. Tulisan ini membahas bagaimana mengimplementasikan fitur multi bahasa menggunakan paket library node-polyglot yang di-integrasikan dengan redux-polyglot dan redux yang di-integrasikan dengan react-redux. Perlu diperhatikan, kita menggunakan node-polyglot yang merupakan library penanganan multi bahasa yang dikembangkan oleh Airbnb. Karena ada juga beberapa library penanganan multi bahasa dengan nama yang sama.

Read More

Dasar Penggunaan Maven di Eclipse IDE

Instalasi Maven di Windows

  1. Download Maven di https://maven.apache.org/download.cgi .Saya menggunakan versi terbaru versi 3.5.0

  2. Extract / Unpack / Unzip file archive maven yang sudah kamu download di C:\. Setelah berhasil ter-extract maka terbentuk direktori bernama apache-maven-3.5.0

  3. Tambahkan string C:\apache-maven-3.5.0\bin ke system environment variable, ke variable Path di kolom System variables. Dengan cara sebagai berikut
    • Buka Windows Explorer, klik kanan pada icon Computer, pilih klik Properties, terbuka sebuah window lalu klik pada menu Advanced system setting
    • Muncul window kecil baru yang sudah aktif di tab Advanced lalu klik tombol Environment Variables yang berada di paling bawah
    • Muncul window kecil baru, lalu pada box System variables double klik pada variable dengan nama Path
    • Muncul window kecil lalu tambahkan string baru di paling akhir string pada field Variable value
    • String yg ditambahkan adalah string ;C:\apache-maven-3.5.0\bin. Perhatikan! harus ada titik koma (semicolon) terlebih dahulu sebelum menambahkan string baru apapun.
  4. Test instalasi maven apakah maven sudah bisa berjalan dengan baik dengan cara: Buka windows command prompt (cmd) yang baru, lalu ketik perintah mvn -version
Read More

Webpack Snorkling

Daftar Isi

Pengantar

Kata “Snorkling” disini saya pakai sebagai kiasan yang berarti mempelajari dan menggunakan webpack hanya sampai pada level dasar dan pemula atau cukup tahu permukaan-permukaan nya saja. Tulisan ini akan membahas cara instalasi webpack, sedikit konsep webpack, dan penerapan / implementasi dari konsep webpack. Semoga dengan adanya tulisan ini, saya pribadi dapat dengan mudah menerapkan webpack dimana saja karena semua tata cara instalasi, konfigurasi, dan penggunaan tercatat disini semua.

Read More

Call Stack

Pengantar

Tulisan ini adalah tulisan yang merupakan tulisan dengan kategori computer science. Call Stack merupakan salah satu bagian konsep dari sekian banyak bagian-bagian konsep yang tersusun menjadi satu dalam topik bagaimana sebuah software berjalan (running) di komputer. Tujuan utama tulisan ini adalah untuk pengingat (catatan) untuk diri sendiri.

Call identik dengan pemanggilan sebuah fungsi. Stack adalah sebuah area di memori (RAM) yang isinya susunan / tumpukan yang digunakan dalam proses pemanggilan (eksekusi) fungsi. Sebuah fungsi terdiri dari parameter-parameter, variabel-variabel lokal, dan nilai kembalian (return value). Parameter-parameter, variabel-variabel dan nilai kembalian itulah yang disimpan di stack.

Read More

Belajar Menggunakan Microcontroller dengan Microcontroller AVR ATMega328P

Untuk dapat menggunakan sebuah microcontroller atau sering disingkat dengan MCU, kita wajib dan harus mengetahui karakteristik microcontroller (MCU) yang akan kita gunakan. Mulai dari Electricity requirements, ketersediaan I/O, I/O Pins (Kaki-kaki IC), I/O Registers, dan bit settings dari masing-masing I/O register. dan fitur-fitur lainnya yang informasinya dapat kita ketahui melalui membaca datasheet.

Secuil tentang AVR

AVR adalah nama arsitektur microcontroller yang diciptakan oleh dua orang mahasiswa Norwegian Institute of Technology (NTH). Mengapa sebuah arsitektur microcontroller dinamakan AVR ? berdasarkan informasi dari Wikipedia, https://en.wikipedia.org/wi/Atmel_AVR AVR adalah singkatan dari nama dua orang mahasiswa NTH yang menciptakan arsitektur AVR. AVR berarti Alf (Egil Bogen) and Vegard (Wollan)’s RISC processor. Arsitektur AVR juga mengimplementasikan arsitektur RISC (Reduced Instruction Set Computer) dan modified Harvard Architecture.

Read More

Mahasiswa/Mahasiswi Jurusan TI Wajib Belajar Bahasa Pemrograman C

Membosankan dan Tidak Punya Ide

Waktu saya masih menjadi mahasiswa, saya sendiri dan hampir semua teman-teman yang lain hanya menyentuh bahasa pemrograman C saat berurusan dengan kegiatan akademik saja. Hanya sekedar menyusun baris-baris kode C yang hanya untuk mengejar nilai dan memenuhi persyaratan matakuliah saja. Waktu dulu, saya pribadi menganggap bahasa pemrograman C itu membosankan dan saya tidak punya ide. Mengapa membosankan? Karena saya sama sekali tidak memiliki bayangan bagaimana bentuk aplikatifnya? Bisa membuat apa dengan bahasa C? Apa yang bisa membuat saya keren jika mempelajari C?

Read More

Penggunaan GNU Make dalam Kegiatan Pemrograman C

Pengantar

Bagi orang-orang yang melakukan pengembangan sebuah perangkat lunak di lingkungan apapun itu, Linux / Unix like systems atau Windows. Dan menggunakan bahasa pemrograman apapun itu. Pastinya membutuhkan tool / alat bantu untuk menggabungkan semua source code yang telah disusun sehingga menjadi satu kesatuan perangkat lunak yang siap dijalankan pada komputer.

Apa yang telah disampaikan diatas adalah sebuah proses, dan proses tersebut biasanya dikenal dengan istilah “Build”. Di dalam proses build terdapat kegiatan compile dan linking. Alat-alat untuk melakukan proses build disebut dengan Build Tools. Banyak sekali ada produk-produk build tools. Salah satunya adalah GNU Make.

Read More