Sunday, July 26, 2015

Bermain Two Dots dan Pelajaran Tentang Keberuntungan


Beberapa waktu ini Saya bermain Two Dots, Game di Android yang bisa di download dari play store. Permainannya simpel namun addictive, dan dengan dibumbui unsur social, menjadikan Saya betah bermain game ini.

Menariknya, dari bermain Game ini Saya mendapati pelajaran tentang keberuntungan. Mungkin tidak ter-apply untuk seluruh aspek kehidupan, namun dalam beberapa situasi dan kondisi, cocok sekali dengan yang dialami pada Two Dots ini. 

Pelajaran pertama adalah: keberuntungan akan datang jika usaha terus menerus dilakukan. lakukan usaha terus menerus, jika kegagalan ditemui, coba lagi dan coba lagi, pada akhirnya keberuntungan akan datang, dan keberhasilan bisa diraih. Pelajaran ini bisa diaplikasikan pada situasi dimana suatu kegagalan bukan hal yang besar dan tidak terlalu membuang waktu, seperti situasi ketika hendak mencari pekerjaan. 

Ketika keberuntungan datang, sayangnya hal tersebut tidak ada hubungannya dengan keahlian, sehingga datangnya keberuntungan bukan berarti kita ahli. Adalah suatu kesalahan jika menganggap bahwa kita sudah skillful jika keberuntungan datang. Keberuntungan ya keberuntungan, keahlian ya keahlian, kedua hal tersebut bisa saling bertemu meski sebenarnya tidak ada kaitannya. Hanya saja, seseorang yang ahli, bisa memanfaatkan keberuntungan dengan lebih maksimal dibanding yang belum ahli. 

Meski tidak terkait dengan keahlian, keberuntungan bisa bermanfaat untuk meningkatkan kepercayaan diri. Kepercayaan diri bisa membawa dampak positif kepada diri kita, dan datangnya keberuntungan bisa memicu timbulnya kepercayaan diri. 

But then again, kepercayaan diri tidak hanya dipicu oleh datangnya keberuntungan. Banyak hal-hal lain yang bisa memicu timbulnya kepercayaan diri, dan adakalanya kepercayaa diri timbul simply dengan kita memutuskan untuk menjadi individu yang memiliki kepercayaan diri. 

Berusaha terus-menerus, asah keahlian, jangan kehilangan kepercayaan diri, Insya Allah merupakan modal awal menuju kesuksesan. Amin.  




Saturday, July 25, 2015

HTML 5 Javascript API

Overview

HTML 5 bukan merupakan hal baru, pertama kali dipublish ke public pada tahun 2008, perkembangannya sudah sangat signifikan. Perlahan tapi pasti, browser-browser mulai memfasilitasi HTML 5, atau mungkin sudah memfasilitasi sepenuhnya.

Dari perspektif software development, HTML 5 memberikan API javascript baru yang bermanfaat untuk membuat Web App, beberapa diantaranya seperti Audio, Video memudahkan developer untuk membuat fitur-fitur tertentu yang sebelumnya sulit dilakukan.



Audio dan Video

Belum terlalu lama sebenarnya, untuk suatu halaman web bisa menayangkan video atau memutas musik, perlu download dan install plugin dari third-party vendor. Sekarang tidak lagi.

Saat ini HTML 5 men-support Tag Audio dan Video. Memasang video dan audio pada halaman web menjadi semudah memasang gambar, cukup dengan memberikan tag dan sumbernya


Web Workers

Adakalanya developer perlu membuat lebih dari satu thread untuk memfasilitasi kebutuhan tertentu, dan ini bukan hal gampang pada Web App sebelum HTML 5.

Dengan adanya Web Worker API pada HTML 5, developer bisa membuat background worker yang basically merupakan thread lain karena terpisah dari Main Thread web yang melakukan rendering UI.


Web Sockets

WebSocket merupakan teknologi menarik di HTML 5 karena memungkinkan Web App untuk berkomunikasi dengan server tidak hanya via Http tapi juga via Tcp.

Komunikasi dengan Tcp bersifat persisten dan bi-directional. Persisten memungkinkan Web menerima data tanpa request terlebih dahulu, sedangkan bi-directional memungkinkan server dan web saling mengirimkan data pada waktu yang sama.

LocalStorage

LocalStorage API memungkinkan browser untuk menyimpan data di browser tanpa membutuhkan jaringan. Data bisa dibuat, disimpan, di ambil meski sedang tidak ada koneksi internet.

Meski memiliki kemiripan dengan cookie, sebenarnya mereka memiliki kegunaan yang berbeda, masing-masing memiliki manfaat pada situasi dan kondisinya.


Lain-lain

Banyak API-API lain seperti geolocation, History API, File Writer dan lain-lain. Semua ini merupakan sebuah tools, yang memiliki skenario dan kegunaan yang apabila dimanfaatkan dengan pas, akan membantu developer dalam mengembangkan Web App.



Tuesday, July 21, 2015

Tips Mempercepat Development Web App

Overview

Web-App sudah menjadi mainstream, atau bahkan mulai bisa dikatakan old-school sekarang-sekarang ini, namun bukan berarti membangun Web-App lantas menjadi mudah dan cepat. Memang saat ini banyak sekali teknologi yang dapat digunakan untuk mempercepat proses development Web-App, bahkan mungkin terlalu banyak sehingga mungkin agak membingungkan untuk sebagian orang.

Berikut merupakan beberapa teknologi/konsep yang bisa dimanfaatkan untuk mempercepat development Web-App, antara lain:

  1. Develop dengan Arsitektur Front-End dan Back-End
  2. Manfaatkan Javascript Widget Libraries
  3. Gunakan PostgreSQL
  4. Manfaatkan Scaffolding / Source Code Generator
  5. Gunakan Bootstrap Admin Template

Arsitektur Front-End Back-End

Dewasa ini berkembang istilah Front-End dan Back-End, bahkan terdapat 1 halaman Wikipedia yang menjelaskan hal tersebut. Untuk mendevelop Web-App dengan tim tiga orang atau lebih, arsitektur ini sangat bermanfaat untuk mengelola kompleksitas, karena arsitektur ini memisahkan dengan jelas UI/UX dengan inner engine dibaliknya, sehingga comply dengan prinsip Separation of Concern, dimana prinsip tersebut merupakan best practice dalam Software Development.

Javascript Widget Libraries

Widget Javascript Libraries dapat mempercepat development karena menyediakan widget-widget yang langsung bisa dipergunakan dengan sedikit kode, bahkan umumnya tidak ada logic pada kode, hanya setting-setting dan konfigurasi saja. Selain itu, Widget umumnya bersifat komponen based sehingga dapat mengunakan berbagai macam libraries sekaligus atau dipadukan dengan Javascript Framework seperti AngularJS, EmberJS dll. Dengan kerugian hanya bentuknya yang standard dan mungkin loading time pertama kali lebih lama, trade-off-nya masih lebih condong ke positif daripada negatif.

PostgreSQL

Jika Oracle merupakan pilihan solid untuk database enterprise, maka PostgreSQL merupakan ekuivalent Oracle pada dunia open source. PostgreSQL memiliki fitur-fitur hebat yang umumnya tidak ada di database lain. Googling PostgreSQL vs Database lain akan memberikan perspektif kapan sebaiknya postgreSQL digunakan dibanding database lain, yang tampaknya lebih sering daripada tidak.

Source Code Generator

Dengan hanya sedikit menulis kode, generate, and BAM! jadilah simple version dengan fully functional features. Sayangnya, menggunakan source code generator ibarat pedang bermata dua, namun jika dipergunakan dengan pas, akan lebih banyak manfaatnya daripada kerugiannya. Salah satu prinsip untuk menggunakannya dengan baik adalah: Hindari men-Generate 2 kali untuk hal yang sama.

Bootstrap Admin Template

CSS Framework tidak hanya bootstrap, banyak pilihan lain yang sebenarnya tidak kalah bagus. Namun khusus untuk Admin Template yang based on Bootstrap, pilihannya sangatlah baaanyaaakk. Dari yang gratis sampai yang berbayar. Untuk menghemat waktu dalam melakukan design, akan jauh lebih efektif jika melakukan modifikasi dari Template yang sudah dipilih, tidak perlu memulai dari nol.




Bagaimana dengan anda, adakah teknologi/prinsip yang anda pergunakan untuk mempercepat proses development web-app?




Sunday, July 19, 2015

Cara Radikal Pemilihan Anggota DPR

Anggota DPR di Indonesia merupakan perwakilan rakyat, yang berperan sebagai badan legislatif di pemerintahan negara. Beberapa tugas penting DPR antara lain:

  • merancang undang-udang,
  • mengatur alokasi anggaran,
  • menyerap aspirasi rakyat, dll
Beberapa tahun terakhir ini, entah benar atau tidak, tersebar kabar di masyarakat bahwa DPR tidak menjalankan fungsinya dengan baik, berbagai gosip seperti korupsi, pemangkiran, tidak professional, beredar yang mungkin akan berdampak turunnya reputasi DPR. 

Selain itu, konon menjadi anggota DPR juga tidak mudah. Kabarnya uang yang sangat banyak dan koneksi yang sangat kuat, serta keberuntungan perlu dimiliki untuk akhirnya seseorang bisa menjadi anggota DPR. 

Terlepas dari benar atau tidaknya hal-hal tersebut, jika kita asumsikan benar, bagaimana kalau kita ubah cara pemilihan anggota DPR dengan cara yang sangat radikal. Mekanismenya seperti ini:
  1. tentukan kriteria orang-orang yang dianggap 'layak' jadi anggota DPR
  2. siapkan data, infrastruktur dan aplikasi yang 'open' untuk mengolah data memilih anggota DPR
  3. Algoritma pemilihannya adalah RANDOM
Akan dibahas lebih detail sebagai berikut.

Tentukan Kriteria

Langkah pertama yang sebenarnya paling sulit, yakni menentukan kriteria. Cara paling proper untuk menentukan kriteria mungkin dengan membentuk komite khusus, dan mungkin pertanyaan yang paling pas untuk menentukan suatu kritaria adalah
 "Jika setiap orang di Indonesia memiliki kriteria X, apakah Indonesia akan menjadi banga terbaik dunia?"
contoh beberapa kriteria yang mungkin:
  1. Bergelar S3 dari Top 100 Universities
  2. Tidak terlibat hutang,
  3. Taat pajak, dll
tentunya banyak kriteria lain yang bisa dipikirkan, dan perlu dipikirkan dengan matang-matang dan bijaksana. 

Orang yang lolos kriteria ini tidak boleh dibatasi jumlahnya, justru harus sebanyak-banyaknya, semakin banyak maka akan semakin baik.

Siapkan Data, Infrastruktur dan Aplikasi yang Open

Data mengenai siapa-siapa saja yang lolos kriteria, harus di-open agar bisa diverifikasi oleh semua orang. Dengan begini akan memimalisir hal-hal negatif seperti adanya 'titipan', data yang salah, atau orang-orang yang sebenarnya tidak lolos kriteria.

Aplikasi/Sistem untuk menjalankan mekanisme ini juga harus open source, sehingga bisa divalidasi apakah ada praktek kecurangan atau tidak. Begitu juga dengan infrastruktur-nya, sehingga pengawalan agar proses berjalan dengan baik dan benar tetap terjaga

Pemilihan dengan Random

Setelah dipastikan aman, maka lakukan pemilihan oleh aplikasi dengan mekanisme random. Siapapun yang akan keluar namanya, dia yang akan menjadi anggota DPR. That it.



Keuntungan dari mekanisme ini, siapa saja yang memiliki kriteria untuk membuat Indonesia menjadi bangsa terbaik di dunia memiliki kesempatan yang sama untuk menjadi DPR, institusi yang memiliki kekuatan untuk mengubah jalannya pemerintahan. 

Keuntungan lainnya, setiap orang akan berlomba-lomba untuk membuat dirinya memiliki kriteria tersebut. Contoh kriteria S3 Top 100 Universities, setiap orang akan berlomba-lomba untuk menyelesaikan masa studi-nya di Top 100 Universities saat itu. Atau misalnya taat pajak, setiap orang akan berusaha taat pajak agar memiliki kesempatan untuk menjadi anggota DPR. 

Kerugiannya? mungkin ada ya, tapi sebaiknya tidak perlu dibahas, kecuali apabila memang ide radikal ini benar-benar akan diimplementasikan. Semoga suatu saat akan kejadian, meski kemungkinannya sangat-sangat kecil.










Monday, June 2, 2014

Surat Untuk Yth Bapak Calon Presiden 2014

Yth Bapak Jokowi dan Bapak Prabowo,
Perkenalkan, saya Riza umur 29 tahun dengan pekerjaan Wirausaha perusahaan IT Software Service. Terima kasih saya ucapkan jika Bapak-Bapak sempat membaca surat ini. Langsung saja, melalui surat ini, ada yang ingin saya tanyakan, Jika Bapak-Bapak nanti terpilih menjadi Presiden:

  1. bagaimana cara untuk rakyat biasa seperti saya ini bisa menyampaikan aspirasi yang akan diterima langsung oleh Bapak?
  2. bukti apa yang bisa diberikan oleh Bapak kepada saya, bahwa benar aspirasi saya sudah diterima langsung oleh Bapak, bukan oleh Staff-Staff Bapak?
  3. adakah cara rakyat biasa seperti saya untuk bisa bertemu dan berdialog langsung dengan Bapak meskipun hanya untuk 5 menit saja?
Sudi kiranya Bapak-Bapak mau menjawab tiga pertanyaan saya, jawaban (atau tidak adanya jawaban) dari Bapak-Bapak akan sangat membantu saya dalam menggunakan hak pilih saya nanti.

Terima kasih sebelumnya atas perhatian Bapak-Bapak. Jawaban bisa saya terima sebagai comment post ini atau dikirim ke email saya yang bisa dilihat di profil saya.

PS: Penyebutan nama diurut berdasarkan Alfabet