Archive for the ‘Umum’ Category

Lama menghilang..

Posted by mkhairul

Post terakhir adalah pada 4 bulan lepas. Agak lama juga tu. Kerjaya aku pun dah bertukar, dari jadi developer sekarang dah jadi web designer (tukar angin sikit). Banyak benda yang perlu dipelajari dimana perjalanan ini akan aku catitkan dan dikongsikan sebagai topik didalam sembang programming!

Mungkin post yang akan datang akan lebih menghala ke arah UX (User Experience) dan UI..

Form Validation: jQuery + CodeIgniter (validation engine codeigniter)

Posted by mkhairul

Post kali ni nak kasi demo sikit, form validation guna jQuery dan juga CodeIgniter. Komponen untuk server side,

Kali ni, kod overload. Kalau ada rasa loya-loya sikit bila tengok kod banyak sangat, sila undur ke belakang perlahan-lahan dan cari beg plastik sebagai persiapan untuk muntah, pastu teruskan membaca.

Untuk makluman semua, kod dibawah digunakan bersama dengan Validation Engine 1.6.3. Untuk version 2.0 ni, tak berapa pasti, tapi mengikut firasat aku, takde beza kot (nanti la aku test).

So kalau nak tengok demo untuk validation engine tu, gi la ke demo page dia.

Validation Engine
Plugin ni ada client-side validation, tapi aku ni, malas sikit nak buat client side validation ni kerana server-side validation kena buat jugak. Oleh kerana aku lebih suka meluangkan masa di reddit daripada buat client-side validation, aku buat server-side je lah.

Kalau nak buat client-side validation, kat site dia ada cerita, dalam docs tu dan bila invalid data, dia keluar pop-up macam ni,

Amacam? Menarik? Hehehe.

Oh, benda ni bukan limit pada codeigniter je, kalau php biasa pun leh guna. Sebab aku guna codeigniter, aku kasi spotlight la kat CodeIgniter. Hehehe.

Ok, first sekali kena set jquery form plugin.

var options = {
  beforeSubmit:  loading,  // pre-submit callback
  dataType: 'json',
  success: cleanup  // post-submit callback
};
$('#nama_form').ajaxForm(options);

Form dia, aku kasi contoh, gini la rupa dia

<?php echo form_open('register/create', array('id' => 'registration_form')); ?>
	<h3>Account Info</h3>
	<div>
		<label>Email Address<span class="required">*</span></label>
		<input type="text" class="email-address text" id="username" name="username" value="" />
		<span class="field_info">Type in your email address, an email will be sent afterwards</span>
	</div>
</form>

Ha, simple je. Pastukan, kita taruk ni pulak
(more…)

Mana post bulan ni?

Posted by mkhairul

Oleh kerana dah makin sibuk pada bulan ni. Post berbentuk pembelajaran dan tips dikurangkan. Post berbentuk pengalaman dan pencerminan diri. Woah, pencerminan.

Ada banyak draft berkaitan rounded corners, Node.js, HTML5, Checklist dalam pembikinan laman web dan lain lain. Jadi, terpaksa la korang tunggu ya. Bersabar, jadi macam beruang ni,

Datang la melawat gak, nanti saya post pengalaman dan pandangan ya. Hehehe.

Parameter dan argument

Posted by mkhairul

Parameter dan argument ni selalu diperkatakan atau disebut-sebut apabila berkaitan dengan function call, procedure call dan method seperti tiada perbezaan diantaranya. Tak salah pun, tapi dari segi teknikalnya, agak kurang tepat la. Perbezaannya pun kecil je, bagi aku no problem je.

Jadi, apakah perbezaannya?

Bila kita mendefinasikan sesuatu function, pembolehubah (variable) yang diperlukan oleh function tersebut dipanggil parameter. So kalau rakan sekerja tanya,

“Oi, khairul, function janganKacau tu macam mana nak guna?”

Kebarangkalian besar aku akan jawab, “Eh, ko boleh tak, RTFC? Ni sumber terbuka ok, ko leh tengok kod, aku bukannya compile pun kod aku.” Haha. RTFC tu.. read the fabulous comment. Aku ni suka komen-komen ni, tu yang aku tak berapa gemar sangat tengok tv, bila ditemuramah dia kata “no komen”. Kenapa kau tak komen?! Macam mana orang nak tau kalau kau tak komen!! Argh!

Ok, berbalik kat soalan tadi. Dalam situasi ideal aku akan jawab, “janganKacau tu perlukan dua parameter. ID isu kau dan database connection object”. Kalau dia tak paham gak, aku soh dia isi borang pi masuk U balik. Takde la, gurau je. Aku ajar la dia sebaik mungkin sambil massage tengkuk dia dan membisikkan kata-kata pujian yang indah ditelinganya seperti, “Pergh, laju ko taip.. terbaek!” ataupun “Wow, banyaknya shortcut ko tau, hebatlah”.

Ok, itu parameter, kalau argument pulak adalah bende-bende yang dihantar apabila sesuatu function dipanggil. Bende tu kalau bukan didalam situasi dimana ianya digunakan didalam panggilan function, ianya adalah variable biasa, kalau dia digunakan dalam panggilan function ianya adalah argument.

Haa.. gitu lah ceritanya. Sebenarnya tak penting pun. Tapi kalau jumpa semantic nazi ke ape ke.. paham-paham je la nape tiba-tiba wajah dia berubah bila parameter dan argument digunakan dengan tak betul.

Trend untuk tahun 2011?

Posted by mkhairul

Apakah trend untuk tahun 2011 ni didalam pembangunan perisian? Yang pasti adalah Javascript, tetapi terdapat banyak lagi yang bakal menjadi trend pada tahun ini, ada yang mengatakan NoSQL, Node.js, dan pelbagai lagi. Nak kejar trend ni memang leceh, tak terkejar bang oi, letih den. Jadi aku try kejar yang utama, Javascript dan pembangunan pada Android, yang lain cuma nak asahkan balik dan perbaiki, terutamanya Python. Lama betul tak develope betul-betul pakai Python, tahun lepas pakai pun sikit sangat.

Lek ah, pelan-pelan kayuh. Hehehe.

Oh, lagi satu, tahun ni nak tulis dengan gaya yang tak formal.

Rujukan

Refresh parent popup window

Posted by mkhairul

Sori la saya tak tau macam mana nak translate title post ni jadi bahasa melayu tanpa mengalami sakit kepala. Buat masa sekarang ni, banyak kod yang diubah daripada pengaturcara sebelum ni. Banyak betul la popup. Kalau banyak popup ni, selalunya org yang banyak buat sistem gomen (atau “enterprise”?). Mengundang bahana betul banyak popup ni, tab pada Chrome dah lebih 20. Takut satgi kejung terus, Hanging by a Moment.

So, flow dia gini, nak edit maklumat pengguna? Click pada nama pengguna, kemudian popup pun muncullah dengan secara mengejut bersama dengan form dan field-field nya. Edit.. edit, pastu UPDATE!
Kemudian, popup pun tutup dan window browser asal yang panggil popup tu pun refresh! Ye la, kalau tak refresh macam mana nak tengok maklumat yang dah dikemaskinikan.

Jadi bagaimana? Simple je, saya tulis ni pun untuk reference pada diri saya untuk masa akan datang.

window.opener.location.reload(false);

Ref: METHOD: Location::reload

“Lightning Talk”

Posted by mkhairul

Fuh, lama betul tak post.

Baru-baru ni, diadakan sesi “Lightning Talk”, di mana semua kakitangan teknikal diminta membuat satu sesi pembentangan tentang apa sahaja topik yang menarik dan bermanfaat selama 5 minit. Ingin ditekankan, “bermanfaat”, jadi jangan la dok cerita pasal kucing suka berdengkur (kucing saya agak suka berdengkur) ataupun kucing suka kentut dengan selambanya. Takde manfaat pada yang hadir.

Pelbagai topik diperbincangkan dan tahniah diucapkan pada yang terlibat. Moga sesi yang akan datang akan dapat memperbaiki lagi persembahan saya dan rakan-rakan yang lain.

Blur la pulak nak present ape! Huhu!

Apa yang saya bentangkan? Topik yang agak ringkas dan agak umum, kerana ini pilot project dan juga dihadiri oleh mereka daripada management saya bercerita mengenai berkongsi ilmu (“Sharing Knowledge”). Saya takkan ceritakan pasal “Sharing Knowledge” pada post ini kerana ianya agak luas dengan sendirinya, tetapi saya ingin beritahu, tentang manfaat sesi “Lightning Talk” ini pada diri saya.

  • Membuatkan saya berfikir tentang apa yang saya akan persembahkan pada masa akan datang
  • Secara tak langsung memupuk sedikit semangat berinovasi
  • Sebelum ni dok baca je pasal cara nak buat presentation. Sekarang ni boleh la dipraktikkan sedikit
  • Macam-macam lagi..

Cara terbaik untuk menghalang SQL Injection

Posted by mkhairul

Terdapat soalan yang menanyakan, apakah cara terbaik untuk menghalang SQL Injection yang diambil daripada Stack Overflow.

Cara terbaik untuk menghalangnya adalah dengan menggunakan prepared statement. Response tersebut juga menerangkan dengan lebih lanjut mengapa.

Banding antara skema pangkalan data (compare database schema) dalam MSSQL

Posted by mkhairul

Sebelum saya terlupa nak blog pasal benda ni, baik saya post terus.

Memang amat jarang sekali saya menggunakan Microsoft SQL Server (MSSQL). Jadi, bila sampai bab nak bandingkan skema pangkalan data, memang blur sikit.

Bila tanya pakcik G (G untuk Google) kita, memang bertimbun la product sana sini, macam-macam Red-Gate la, dbForge la, dan sebagainya. Ada yang kata Visual Studio Team Edition ada fungsi untuk compare database schema, yang tu saya memang tak tau kerana saya bukan pengguna tegar Visual Studio.

Apa yang saya jumpa agak ringkas dan mudah, percuma dan open source, Open DBDiff.

Memang menepati kehendak dan keperluan saya pada masa ini. Jadi saya harap sedikit sebanyak post ni dapat membantu. Selamat programming!

Clean Code Cheatsheet

Posted by mkhairul

Bagi sesiapa yang mengikut perkembangan Agile Software Development, nama yang sepatutnya tidak asing lagi adalah Robert C. Martin, atau lebih dikenali sebagai Unclebob.

Beliau banyak mengetengahkan mengenai kod yang bersih, untuk maklumat lanjut, bolehlah dapatkan bukuClean Code: A Handbook of Agile Software Craftsmanship.

Ianya telah dirumuskan sebagai rujukan dalam bentuk cheatsheet. Senang la sikit nak rujuk!