Nitza Alfinas
-
Minggu, 12 November 2023
Cara Mengetahui Besar Database PostgreSQL Tanpa Mendownloadnya
Sabtu, 23 September 2023
Menggunakan Artillery untuk Testing
Dalam era digital saat ini, meningkatkan performa aplikasi web dan memastikan aplikasi dapat menangani beban yang besar adalah hal yang penting. Salah satu alat yang dapat membantu kita memastikan bahwa aplikasi kita tahan banting adalah dengan melakukan pengujian beban. Salah satu alat untuk melakukan pengujian beban adalah Artillery.
Apa itu Artillery?
Artillery adalah alat pengujian beban yang modern, powerful, dan fleksibel. Dengan Artillery, pengembang dan tester dapat mengujian aplikasi mereka di berbagai skenario untuk memastikan bahwa aplikasi mampu menangani beban yang diharapkan. Artillery mendukung pengujian terhadap berbagai protokol seperti HTTP, WebSocket, dan lainnya.
Mengapa Menggunakan Artillery?
- Sederhana namun Kuat: Artillery memiliki konfigurasi yang sederhana dalam format YAML atau JSON, namun memiliki fitur yang kuat untuk menguji berbagai aspek aplikasi.
- Skalabilitas: Anda dapat menjalankan pengujian dari satu mesin atau mendistribusikannya ke banyak mesin untuk mensimulasikan ribuan pengguna.
- Statistik yang Detail: Setelah pengujian, Artillery memberikan laporan rinci mengenai latensi, throughput, jumlah kesalahan, dan metrik lainnya.
- Ekstensibilitas: Artillery dapat diextend dengan plugin untuk menambahkan fungsionalitas atau untuk mendukung protokol lain.
Bagaimana Cara Menggunakan Artillery?
- Instalasi
Untuk memulai, Anda perlu menginstal Artillery. Dengan asumsi Anda telah menginstal Node.js, Anda dapat menginstal Artillery dengan npm:
npm install -g artillery
- Membuat Skenario Pengujian
Buat file konfigurasi dalam format YAML atau JSON. Sebagai contoh:
config: target: 'http://your-api-endpoint.com' phases: - duration: 60 arrivalRate: 5 scenarios: - flow: - get: url: '/endpoint' - post: url: '/post-endpoint' json: key1: 'value1' key2: 'value2'
Dalam konfigurasi di atas, Artillery akan mengirimkan 5 permintaan per detik ke
http://your-api-endpoint.com/endpoint
selama 60 detik. - Jalankan Pengujian
Setelah Anda memiliki file konfigurasi, Anda dapat menjalankan pengujian dengan perintah:
artillery run namafilekonfigurasi.yml
- Menganalisis Hasil
Setelah pengujian selesai, Artillery akan menampilkan ringkasan statistik. Anda juga dapat menyimpan hasil pengujian ke file atau database untuk analisis lebih lanjut.
Kesimpulan
Artillery adalah alat pengujian beban yang sederhana namun kuat yang dapat membantu pengembang memastikan aplikasi mereka berfungsi dengan baik di bawah beban. Dengan Artillery, Anda dapat dengan mudah mensimulasikan lalu lintas ke aplikasi Anda dan mendapatkan insight mengenai performa dan titik-titik kelemahan yang mungkin ada.
Senin, 04 September 2023
Cara mengambil public key dari transaksi Ethereum
Pada saat pembuatan address pada walet Metamask atau wallet web3 lainnya, public key selalu tidak ditampilkan walaupun sebenarnya sudah dibuat.
Ini menjadi masalah tersendiri jika kita ingin memanfaatkan key ini untuk percakapan dengan enkripsi asimetri.
Address yang dihasilkan wallet web3 tidak bisa dikonversi langsung menjadi public key dengan mudah walaupun address tersebut merupakan turunan dari public key. Ini karena address itu dihasilkan melalui tahapan dari public key yang melibatkan fungsi satu arah (hashing) seperti berikut;
1. Mendapatkan Public Key
Setelah private key di generate. artinya kita juga memiliki asosiasi dengan public key. Public key disini dinamakan dengan Public ECDSA Key
Public key ini dimasukkan kedalam fungsi keccak-256(public key)
2. Dimasukkan kedalam fungsi Keccak-256 hash
3. Mengambil 20 bytes terakhir
Untuk mengenerate secara online, Anda dapat mencoba pada link berikut: https://www.rfctools.com/ethereum-address-test-tool/
Harap berhati-hati, jangan pernah memasukkan private key Anda.
Sedangkan untuk mendapatkan public key jika addressnya diketahui, kita tidak dapat membalik alur tersebut. Satu-satunya langkah yang dapat dilakukan adalah dengan membuat transaksi ethereum sehingga kita bisa mendapatkan nilai v, r dan s dari transaksi tersebut
Berikut adalah codenya;
Pada code diatas, kita menggunakan web3 wallet Metamask. Disini kita menghindari meg-ekspose private key.
Strategi yang digunakan adalah;
1. Menandatangani sebuah pesan.
2. Meng-ekstrak v, r dan s
3. Membuat message hash
4. Merecover public key dengan function ecrecover dan memasukkan nilai message hash, v, r dan s
5. Mengambil address dengan function pubToAddress
Untuk memastikan public key yang Anda convert kepada Address adalah benar, Anda dapat melakukan test sekali lagi dengan mengambil public key dari baris `console.log(`Public Key (Hex): ${publicKeyHex}`);` dan memasukkannya pada public key ECDSA pada link https://www.rfctools.com/ethereum-address-test-tool/
Kamis, 19 Agustus 2021
Apa itu blockchain
Blockchain adalah sebuah database bersama yang datanya tidak dapat diubah. Blockchain memfasilitasi proses pencatatan transaksi dan pelacakan aset. Aset dapat berwujud (rumah, mobil, uang tunai, tanah) atau tidak berwujud (kekayaan intelektual, paten, hak cipta, merek). Hampir segala sesuatu yang berharga dapat dilacak dan diperdagangkan di jaringan blockchain, mengurangi risiko dan memotong biaya untuk semua yang terlibat.
Kenapa Blockchain itu penting?
Bisnis berjalan berdasarkan data dan informasi. Hubungan antara entitas dalam bisnis memerlukan kepercayaan dan transparansi. Blockchain sangat ideal untuk menyampaikan informasi karena menyediakan informasi secara langsung dan sepenuhnya transparan karena disimpan didalam buku besar yang tidak dapat diubah. Blockchain dapat diakses oleh semua orang yang terhubung dalam jaringan blockchain tersebut. Blockchain dapat melacak pesanan, pembayaran, akun, produksi, dan banyak lagi.
Apa saja yang bisa dicatat didalam blockchain?
Pada dasarnya blockchain dapat mencatat aset tangible atau berwujud seperti; rumah, mobil, uang tunai, tanah, kepemilikan saham dan lain-lain.
Selain itu aset tak berwujud seperti; kekayaan intelektual, paten, hak cipta, merek dan lain-lain.
Apakah ada pertanyaan tentang blockchain?
Apakah bisnis Anda cocok atau kedepan harus menggunakan blockchain?
Kamis, 07 November 2019
Berapa harga pembuatan software, website dan aplikasi mobile?
Untuk lebih mudah dalam tulisan ini, sofware, aplikasi web atau aplikasi mobile kita sebut sebagai aplikasi saja.
Pertanyaan tersebut diatas sangat umum ditanyakan oleh orang yang ingin membuat sebuah aplikasi. Beberapa developer yang Anda tanya, mereka tidak langsung menjawab. Sebenarnya ini pertanda bagus, karena developer yang sedang Anda tanya cukup berpengalaman. Dia pasti akan balik menanyakan beberapa hal seperti deskripsi aplikasi, lingkup pekerjaan dan fitur yang diinginkan.
Mari kita kembali lagi dan membuat pertanyaan yang lebih spesifik. Misalnya; Berapakah harga untuk membuat aplikasi seperti Bukalapak?
Walaupun si developer sudah tahu bisnis model yang dijalankan oleh Bukalapak tesebut, mereka tidak serta merta langsung mengetahui bagaimana proses Bukalapak bekerja dibelakang layar. Lazimnya dia akan menganalisa halaman-halaman yang dibutuhkan untuk membuat aplikasi tersebut. Seperti; Login, lupa password, landing, halaman satu produk, halaman produk per-kategori, halaman dashboard penjual, halaman dashboard untuk admin (anda sebagai pemilik web app) dan lain sebagainya. Selain hal tersebut, pasti developer akan memikirkan bagaimana desain infrastrukturnya seperti; apakah menggunakan shared hosting, virtual private server atau colocation. Lebih jauh lagi analisanya tentang security seperti secure socket layer dan lain sebagainya.
Jadi, sudah terbayang bukan betapa sebenarnya relatif kompleknya sebuah proses development dan aplikasi bekerja. Tentu saja seorang developer yang berpengalaman tidak mau asal beri jawaban, terlalu murah jadi rugi, terlalu mahal pemesan lari/rugi. Sementara itu menyesuaikan harga layanan dengan kualitas software yang dihasilkan juga bukan merupakan solusi karena bisa merusak reputasi baik developer maupun pemesan aplikasi.
Setelah kalkulasi hal-hal tersebut, maka developer akan mengkalkulasi sumber daya dan waktu yang dibutuhkan untuk menyelesaikan pekerjaan.
Software development adalah jenis pekerjaan penawaran jasa. Semua pekerjaan jasa erat kaitannya dengan sumber daya manusia.
Sebagai analogi yang relatif cocok dan dapat dipahami semua orang adalah pekerjaan membangun rumah. Dalam pekerjaan jasa membangun rumah, ada banyak tukang yang terlibat. Komponen harga utama dari jasa pembangunan rumah adalah upah harian.
Jadi, sangat tidak mungkin jika membuat website perusahaan yang waktu pengerjaan selama 30 hari dibayar 3 juta. Ini artinya membayar developer 100.000 IDR/hari. Bayangkan jika developernya tinggal di Jakarta, ini tidak mencukupi biaya hidup minimum di Jakarta. Dapat dipastikan software developernya bulan depan sudah ngutang alias rugi.
Selain faktor sumber daya manusia, development sangat erat juga kaitannya dengan waktu. Saya membagi 2 kategori hubungan antara sumber daya manusia dan upah per satuan waktu:
1. Developer yang berpengalaman, upah satuan waktu mahal.
2. Developer yang belum berpengalaman, upah satuan waktu relatif murah.
Jika kita ambil persamaan harga untuk developer yang berpengalaman dan developer yang tidak berpengalaman, maka hasil akhir harga sebenarnya sama.
Kita mengambil contoh kasus pengerjaan website perusahaan:
Jika kita berikan kepada developer yang berpengalaman, dia sanggup mengerjakan dalam waktu 15 hari dengan upah harian 2 juta. Total biaya yang harus dibayarkan oleh perusahaan pemesan adalah 30 juta.
Sementara jika kita berikan kepada developer yang belum berpengalaman, dia mengerjakan dalam waktu 30 hari dengan upah harian 1 juta. Total biaya yang dibayarkan oleh perusahaan adalah sama, yaitu 30 juta.
Jadi, berapakah harga pembuatan aplikasi itu?
Dari tulisan diatas, kita dapat menarik kesimpulan bahwa pembuatan aplikasi itu tidak ada standar bakunya tetapi harga sangat erat kaitannya dengan waktu yang dibutuhkan.
Sebagai seseorang yang sedang mencari jasa pembuatan aplikasi, Anda sebaiknya sedikit menganalisa bisnis model aplikasi yang akan Anda buat dan usahakan mampu menakar harga. Ibarat seperti dalam lelang baik swasta atau pemerintah, ada istilah harga perkiraan sendiri (HPS). Istilah ini sangat lazim pada proyek lelang di pemerintahan. Sehingga dengan ini Anda dapat menakar apakah harga yang ditawarkan oleh developer mahal atau tidak.
Sebagai penutup, saya ingin menambahkan 2 hal yang sebaiknya disiapkan untuk keberhasilan aplikasi yang Anda pesan;
1. Deskripsi
Tentau Anda punya gambaran tentang aplikasi yang diinginkan. Gambaran ini bisa diceritakan kepada developer* atau dituliskan pada sebuah dokumen. Gambaran atau deskripsi inilah yang akan diterjemahkan oleh developer menjadi sebuah aplikasi.
2. Fitur
Salah satu kunci sukses dalam pengembangan aplikasi adalah terpenuhinya fitur-fitur yang diinginkan.
Sebagai pemesan, tentu saja Anda dapat menggambarkan fitur-fitur yang diinginkan dan harus ada dalam aplikasi.
------
*) Idealnya disini yang lebih kompeten adalah sistem analis. Tetapi untuk memudahkan bercerita dan mengambil sudut pandang dari seorang pemesan jasa development langsung kepada seorang developer.
Senin, 16 September 2019
Apa itu Blockchain dan Kenapa Anda Harus Mengetahui tentang Blockchain
Jadi, apa itu blockchain?
Jumlah pengguna wallet blockchain 2016 - 2019 (statista.com) |
Blockchain dan Bitcoin serupa, tapi tidak sama
Bitcoin | Blockchain | |
Pengertian | Sebuah cryptocurrency yang menggunakan teknologi blockchain | Sebuah teknik penyimpanan data yang datanya satu sama lain terhubung dengan kriptografi, tidak bisa diubah, tidak bisa dipalsukan |
Fungsi Utama | Sebagai alat pembayaran dan bekerja tanpa kontrol terpusat | Secara konsep, blockchain dapat digunakan untuk apa saja |
Apakah digunakan untuk perdagangan? | Ya | Karena merupakan sebuah teknologi, blockchain tidak terbatas untuk perdangangan saja |
Apakah mempunyai fluktuasi harga? | Ya | Tidak |
Jadi dapat ditarik kesimpulan, Bitcoin dan blockchain itu serupa, tetapi tidak sama. Blockchain adalah teknologi yang menggerakkan Bitcoin.
Teknologi blockchain digunakan untuk apa saja?
Keuangan
Properti
Supply chain management
Pemilihan
Kesimpulan
Blockchain adalah teknologi yang sangat menarik. Penerapan teknologi blockchain tidak hanya sebatas empat kategori diatas. Konsep-konsep dasar blockhain membuat blockchain akan banyak diadopsi penerapannya pada masa yang akan datang.Sumber:
(1) https://tradeix.com/essential-blockchain-technology-concepts/
(2) https://techjury.net/stats-about/blockchain/
(3) https://www.statista.com/statistics/647374/worldwide-blockchain-wallet-users/
Kamis, 29 Agustus 2019
Cara Instal OpenVPN pada Ubuntu 18.04
1.1. Update system
$ sudo apt update
$ sudo apt upgrade
1.2. Buat direktori supaya supaya mudah mengelompokkan pekerjaan
$ mkdir openvpn
1.3. Download menggunakan perintah wget
$ wget https://git.io/vpn -O openvpn-install.sh
1.4. Instal
$ sudo bash openvpn-install.sh
Ikuti perintahnya seperti berikut
Welcome to this OpenVPN "road warrior" installer!
I need to ask you a few questions before starting the setup.
You can leave the default options and just press enter if you are ok with them.
First, provide the IPv4 address of the network interface you want OpenVPN
listening to.
IP address: 157.23.3.8
Which protocol do you want for OpenVPN connections?
1) UDP (recommended)
2) TCP
Protocol [1-2]: 1
What port do you want OpenVPN listening to?
Port: 1194
Which DNS do you want to use with the VPN?
1) Current system resolvers
2) 1.1.1.1
3) Google
4) OpenDNS
5) Verisign
DNS [1-5]: 3
Finally, tell me your name for the client certificate.
Please, use one word only, no special characters.
Client name: myopenvpnclient
Okay, that was all I needed. We are ready to set up your OpenVPN server now.
Press any key to continue...
Catatan tambahan:
- Untuk pemilihan DNS, selalu pilih 1.1.1.1 atau Google karena koneksi dengan Google atau 1.1.1.1 selalu dapat diakses darimana saja.
- Jika server VPN Anda dilindungi oleh Firewall, maka perlu diaktifkan port 1194 agar dapat diakses darimana saja.
1.5. Jalankan service
Untuk dapat menjalankan service walaupun server di restart, maka jalankan perintah
$ sudo systemctl enable openvpn.service
Untuk menjalakan service
$ sudo systemctl start openvpn.service
Sama seperti perintah systemctl lainnya, Anda dapat mengetikkan perintah; status, restart, stop
1.6. Pindahkan hasil konfigurasi yang dihasilkan
Biasanya, file konfigurasi akan diletakkan pada /home/username/namafile.ovpn
Maka, untuk dapat dikelompokkan sehingga kita tidak mencari-cari file konfigurasi ini dikemudian hari, maka letakkan pada folder yang telah kita buat diata /home/username/openvpn
$ sudo mv /home/username/myopenvpnclient.ovpn /home/username/openvpn/myopenvpnclient.ovpn
1.7. Pindahkan kepemilikan sehingga bisa di download
$ sudo chown username:username myopenvpnclient.ovpn
1.8. Download file tersebut menggunakan Filezilla atau perintah SCP
2. BAGIAN CLIENT
2.1. Client untuk Mac, Windows, IOS dan Android
Untuk client cukup mudah, Anda hanya perlu install openvpn client:
1. Mac https://tunnelblick.net
2. Windows https://openvpn.net/community-downloads/
3. IOS https://apps.apple.com/us/app/openvpn-connect/id590379981
Untuk memasukkan file konfigurasi dengan ekstensi .ovpn kedalam IPhone, bisa melalui email dan itunes. Tetapi ada cara yang lebih praktis jika Anda adalah pengguna Mac, cukup hanya dengna menggunakan Airdrop untuk menginstal konfigurasinya kedalam IPhone
4. Android https://play.google.com/store/apps/details?id=net.openvpn.openvpn&hl=en
2.2. Client untuk Ubuntu 18.04
2.2.1. Install OpenVPN
$ sudo apt install openvpn
2.2.2. Download file konfigurasi pada OpenVPN server dan jadikan sebagai file konfigurasi pada client
$ sudo cp myopenvpnclient.ovpn /etc/openvpn/client.conf
2.2.3. Jalankan client
$ sudo openvpn --client --config /etc/openvpn/client.conf
OK, Selamat! sekarang Anda sudah dapat menggunakan VPN.
Cara Mengetahui Besar Database PostgreSQL Tanpa Mendownloadnya
Berikut adalah langkah-langkah untuk mengetahui ukuran semua database di instance PostgreSQL yang berjalan di dalam kontainer Docker: 1. Men...
-
Pendahuluan Aplikasi berbasis web telah berkembang pesat pada masa ini menjadikan orang awam paling tidak mengetahui bagaimana web itu bek...
-
Berikut adalah langkah-langkah untuk mengetahui ukuran semua database di instance PostgreSQL yang berjalan di dalam kontainer Docker: 1. Men...
-
Dalam era digital saat ini, meningkatkan performa aplikasi web dan memastikan aplikasi dapat menangani beban yang besar adalah hal yang pen...