Php7.1, anda akan disiplin menggunakan Type Variable!

jika PHP kita kenal sangat ramah dalam aturan penggunaan type data, maka anda mungkin akan sedikit merasa berbeda pada PHP7.1. ini juga terjadi pada salah satu code saya.

penjumlahan atau aritmatika lainnya, sangat beresiko terjadi kesalahan. untuk versi < PHP7.1, variable non number akan dianggap 0. namun berbeda pada PHP7.1, penjumlahan variable non number akan menghasilkan error. progress yang sangat waw sekali!

bayangkan saja, banyak sekali programmer PHP yang tidak disiplin untuk mengecek isi dari variable-nya ditambah lagi PHP bertipe varian(dalam sudut pandang penggunaan). Semua variable seakan dianggap sama. Yang membedakan adalah value-nya. Alhasil, ketika code-code ini diproduksi, maka sangat rentan menjadi error. Sebagai contoh, DomPDF. Library yang sangat banyak penggunanya inipun kena imbasnya. betapa mereka tidak disiplinnya mengecek value(karena memang hanya value-nya saja yg membedakan mana yang number mana yang bukan). Daaaan…, akhirnya malam saya menjadi malam yang panjang. 😀 LOL!

Solusi untuk yang bertemu dengan error “Non Number Encountered” di PHP adalah dengan 2 pilihan:

  1. ignore error dengan @. (unrecomended)
  2. lakukan casting! (pastikan variable adalah int atau float atau lainnya)
  3. tentukan sejak awal tipe datanya(recomended). 🙂 seperti programmer2 bahasa lainnya. (like C/C++ and Java) 😀
  4. untuk error yg diproduksi oleh Dompdf, update ke versi ^0.8.0! (begitupun pada library lainnya, coba cek repositorynya, apa sudah support php7.1)/

Alternatif menampilkan gambar di Qt5(tidak blur)

Akhir-akhir ini rupanya penggunaan QLabel dan QPixmap tidak bagus di Qt, gambar yg ditampilkan jadi blur. Sudah ada laporan bug sejak 5.3, kalau tidak salah baca. Dan sampai saat ini, tanggal 06 bulan mei 2017(Qt 5.8) bug ini rupanya belum fix.

sebagai alternatif, saya menggunakan QWidget dengan trik pengaturan CSS. caranya dengan meletakkan QWidget pada form, lalu setting stylesheet-nya. 🙂

border-image: url(:/logo.png) 0 0 0 0 stretch stretch;

Algoritma Anti Bouncing

Interupt Rising

  1. set interupt rising.
  2. cek interupt apakah terjadi dalam rentang waktu cepat(ex. 20), jika iya, abaikan(close).
  3. increment event-counter.
  4. thread pengumpul, cek event-counter rising? jika tidak abaikan(close).
  5. delay beberapa saat(ex 20).
  6. cek apakah pin benar2 up? jika tidak abaikan(close).
  7. increment counter!.

 

berlaku juga untuk falling juga. ini digunakan apabila rangkaian sangat tidak stabil dengan frekuensi counter rendah. 🙂

Multithreading di C

assalamu’alaikum semuanya.

saya mau berbagi tentang multithreading di  bahasa C.

pertama include dahulu library-nya. saya menggunakan pthread.h.

selanjutnya beberapa hal yg mesti diperhatikan:

  1. fungsi pthread_create
  2. fungsi pthread_cancel

baru itu yg saya pelajari. hahaha…

 

sesi curhat:

sekarang saya sangat merasa nyaman dengan C/C++ tapi masih sangat bergantung dengan IDE. tapi, bisikan seorang kawan dengan kemudahan yg ditawarkan oleh node.js, saya kok jadi pengen belajar ya? hehe…

 

[Sql Query] Menemukan selisih dan mengroupingkannya. :)

SELECT r.*,
IF(@lastcell=cell_id,@diff:=SECOND(TIMEDIFF(datetime_production, @interv)),0) selisih,
IF(@diff<11, @count, @count:=@count+1),
@lastcell:=cell_id,
@interv:=datetime_production
FROM
(SELECT * FROM not_goods WHERE date_production = CURDATE() AND (MINUTE(datetime_production)>54 OR MINUTE(datetime_production)<11) ORDER BY cell_id, id, counters) AS r
CROSS JOIN
(SELECT @interv := ‘0000-00-00 00:00:00’, @first:= 0, @lastcell:=NULL, @count :=0, @diff:=0) AS vars
ORDER BY cell_id,counters;

Tutorial Bot telegram dengan Laravel

Assalamu’alaikum. malam ini saya mau mencatat bagaimana membangun aplikasi bot telegram menggunakan laravel. saya rencananya mau mengganti sms-gateway aplikasi customer saya ke bot laravel. karena keluhan dari customer saya, menggunakan sms-gateway sangat menguras biaya dan sangat ribet. kebetulan customer saya adalah korporasi, jadi untuk pendanaan receh seperti pulsa akan menambah pekerjaan bagi purchasing, it dan financial mereka. bener-bener tidak mudah. kalau menggunakan bot telegram, saya kira sudah dapat ditangani dengan tagihan internet korporet. 🙂

oke, udahan dulu curhatnya. berikut tahapan yang akan dan sedang dilakukan oleh saya.

  1. mendaftar bot

nah, sebelum kemana-mana, kita mesti mendaftar dulu ke telegram agar dapat token yang nantinya akan selalu digunakan oleh aplikasi kita. cara daftarnya gampang, tinggal chat aja dengan “botfather”. silahkan cari di bilik pencarian. nanti kita akan seakan ngirim pesan /start silahkan chatingan dengan botfather untuk mendapatkan tokennya. ingat, jika sudah mendapatkan token, harap di simpan baik-baik jangan sampai ada orang lain yg tahu. itu rahasia anda sendiri. 🙂

  1. fresh install new project laravel dan  library bot telegram

langkahnya hanya “laravel new namaproject”, kalau di saya “laravel new telegram”. selanjutnya cd ke direktory project. di saya “cd telegram”.  lalu “composer require irazasyed/telegram-bot-sdk ^2.0”. ini langkah untuk install library saja. selanjutnya konfigurasi. refer ke sini aja. https://telegram-bot-sdk.readme.io/docs untuk konfigurasinya. 🙂

  1. berkenalan dengan bot telegram

saya sudah sedikit mengantuk ini, udahan dulu ya. 😀

#anggep aja ini serial 1001 malam. 😀

workflow persiapan alat kerja web development saya

selamat malam, kali ini saya mau berbagi apa yang mesti disiapkan untuk alat-alat saya dalam proses development website.

saat ini saya sedang install os baru di leptop saya. berhubung sepertinya sering kebingunan untuk proses install apa saja yang mesti disiapkan, maka lebih baik saya share saja apa saja yang saya install di leptop saya ini. 🙂

berikut yang semestinya saya lakukan dan semestinya lakukan untuk pekerjaan saya ini.

1. install os. kali ini saya menggunakan xubuntu. ubuntu dengan tampilan xfce. jangan tanyakan kenapa menggunakan ini. karena sebenernya saya asal pilih saja. kali ini xubuntu yang beruntung. 🙂
2. install apache2, mariadb-server dan php7.0
3. install composer
4. install hirak/prestissimo, ini untuk mempercepat kerja composer, kalau tidak pakai ini, saya merasa performa composer sangat rendah. 🙂
5. install laravel/installer, saya pengguna framework laravel. mesti ini. 🙂
6. install barryvdh/laravel-debugbar.
7. daftarkan vendor/bin composer ke path.
8. chown /var/www/html ke user:group user saat ini
9. install vim, sublime
10. install plugin sublime: control sublime, phpcompanio, code complice, laravel. untuk vim, saya buat gayak-gayaan aja. 😀
11. install google chrome. entah kenapa, saya lebih suka chrome daripada firefox bawaan xubuntu.

persenjataan saya sudah lengkap. 😀

 

note: sampai saat ini saya belum tertarik belajar apalagi mendalami front end. oleh karena itu, dalam workflow saya dalam persiapan peralatan saya tidak ditemukan konfigurasi semacam bower, gulp dkk. saya lebih nyaman pakai template AdminLTE saja. 🙂