Membuat bot Telegram

Terinspirasi dari tulisan pak Yohanes, akhirnya tadi malam saya berhasil membuat bot untuk Telegram setelah membaca tutorial yang dibuat oleh pak Yohanes tersebut. Bedanya hanya url webhook-nya saya arahkan ke salah satu endpoint API dari aplikasi saya yang lain yang saya buat dengan SlimFramework dan saya tidak menggunakan stream php://input untuk membaca post data dari telegram tapi langsung menggunakan fungsi dari slim buat baca data

$body = $app->request->getBody();

 

Bot ini berfungsi untuk mendapatkan data hadits dan terjemahnya dari beberapa kitab hadits. command-nya adalah sebagai berikut:

/<periwayat> <nomorhadits>
misalnya:
/ahmad 200
untuk mendapatkan informasi hadits nomor 200 pada kitab musnad Ahmad

dimana nama periwayatnya adalah sebagai berikut:

  1. bukhari untuk kitab shahih bukhari
  2. muslim untuk kitab shahih muslim
  3. ahmad untuk kitab musnad Imam Ahmad
  4. tirmidzi untuk kitab sunan at-tirmidzi
  5. nasai untuk kitab sunan an-nasa’i
  6. darimi untuk kitab sunan ad-darimi
  7. malik untuk kitab al-muwaththa’ karya Imam Malik
  8. ibnumajah untuk kitab sunan Ibnu Majah, dan
  9. abudaud untuk kitab hadits sunan Abu Dawud

silahkan langsung menambahkan bot-nya di sini @hadits_bot

 

semoga bermanfaat. Aamiin

Android Unit: px (pixel), dp/dip (density-independent pixel) dan sp (scale-independent pixels)

tldr;

selalu gunakan sp untuk teks dan dp untuk yang lainnya. Kecuali, benar-benar terpaksa dan tahu benar konsekuensinya, gunakanalah px.

Ekosistem android dikenal dengan fragmentasi spesifikasi device yang sangat bervariasi. Tentunya ini tantangan tersendiri bagi developer. Untungnya, untuk masalah screen density yang bervariasi, sepertinya sudah diantisipasi oleh para pengembang platform Android di Google, dengan memperkenalkan dua unit/satuan baru yaitu dip/dp (density-independent pixel) dan sp (scale-independent pixels).

Misalkan ada dua tablet 7-inch (ukuran diagonal layar), tablet pertama (A) memiliki resolusi layar  1200x1920px 320dpi dan yang lainnya (B) beresolusi 2048x1536px 326dpi. Membuat button dengan ukuran 300x300px mungkin akan tampak normal pada  tablet tapi akan tampak kecil di tablet

Tapi akan berbeda jika kita spesifikasikan ukuran buttonnya dengan ukuran yang bergantung pada density layar alias menggunakan dip misal 300x300dp.

secara fisik ukuran button tersebut akan selalu sama pada ukuran layar yang berbeda.

Perhatikan gambar berikut:

Screen Shot 2015-07-15 at 1.45.58 PM

ukuran 200dp akan dikonversi pada device mdpi (device dengan density 160dpi/dots per inch) menjadi 200px dan menjadi 400px pada device xhdpi (density 420dpi) misal pada nexus 4. Sehingga ukuran tersebut tampak sama dan konsisten secara fisik untuk beragam device dengan ukuran layar yang berbeda.

serupa dengan dp adalah sp (scaled-independent pixels) yang kita gunakan untuk ukuran teks. Perbedaannya, dengan menggunakan satuan sp android akan menscale ukuran teks sesuai dengan setting ukuran teks di device (yang biasa dapat di akses melalui menu settings).

Jadi, selalu gunakan sp untuk teks dan dp untuk yang lainnya. Kecuali, kamu benar-benar terpaksa dan tahu benar konsekuensinya, jangan menggunakan satuan px. Jika kebetulan designer yang bekerja bersama anda belum tahu, beritahukan untuk selau menginformasikan spesifikasi design dengan dp/sp. Beberapa website berikut akan sangat membantu:

  1. http://developer.android.com/guide/practices/screens_support.html
  2. http://developer.android.com/training/multiscreen/screendensities.html
  3. http://dpi.lv/
  4. https://pixplicity.com/dp-px-converter/
  5. https://www.youtube.com/watch?v=zhszwkcay2A

Tulisan ini terinspirasi setelah membaca status path Sidiq (salah satu Android Developer Expert dari Indonesia )

Poor Man’s SSL using Cloudflare service

Saat ini, rasanya makruh hukumnya jika website tidak menggunakan SSL. Dahulu kala mungkin menenkripsi semua trafik website dengan SSL secara komputasi mahal, tapi kini tidak lagi dengan semakin berkembang dan murahnya perangkat keras. Maka, saya memutuskan untuk meng-enable ssl pada dua domain yang saya kelola yaitu: rowahu.info dan hakimlabs.com.

Alhamdulillah, untung bagi saya, karena ada sebuah layanan gratis yang bukan saja menyediakan dynamic ssl gratis tapi juga menjanjikan peningkatan kecepatan website yang kita daftarkan. Layanan tersebut adalah cloudflare.com; mendaftarkan website kita di cloudflare semudah mengganti name server dari manapun (biasanya tempat kita membeli domain) ke name server yang disediakan cloudflare, jadi sangat mudah.

Dan setelah didaftarkan, berikut hasil SSL test dari Qualys SSL Labs:

Screen Shot 2015-07-02 at 1.16.20 PM Screen Shot 2015-07-02 at 1.17.19 PM

yay, dapat Grade A. Awsome!

Alhamdulillah. semoga bermanfaat :)