Masa Depan Blackberry yang Suram

Sini saya kasih tau ya buat pengguna Blackberry. Summer nanti Blackberry Messenger (BBM) akan rilis untuk Android dan IOS, semua orang berebutan install. Pengguna BB yang merasa BB nya hanya untuk BBM akan pindah ke Android atau telepon lain yang jelas-jelas handset dan bulanannya lebih murah (note: BB Z10 sudah tidak menggunakan BIS, namun pengguna BB sebelum Z10 di Indonesia masih buanyaaak, dah kebanyakan ABG masih sedang mengumpulkan uang jajannya untuk membeli Z10).

Setelah pindah ke Android atau IOS dan menginstall BBM, pengguna BB yang migrasi ke handset baru tadi ngerasa Whatsapp atau Messenger lainnya jauh lebih baik dari BBM yang buggy, ditambah lagi pengguna Whatsapp sudah banyak dan mungkin saja enggan beralih ke Blackberry Messenger. Sayang sekali saudara-saudara, walaupun usaha RIM yang patut diberi 1000 yen ini bagus, namun momentumnya sudah tidak tepat lagi.

Tengoklah di luar sana banyak sekali mobile Operating System open source bermunculan. Ubuntu punya, Firefox ada, kemudian ada Tizen yang walaupun open source, Samsung dan Intel mendanainya dengan semangat 45.

Operating System dan berbagai software sudah ada. Jadi siapapun bisa membuat smartphone. Kalau tiba-tiba ada HP merk ComberanTech atau ijibPhone beredar di pasaran jangan heran kawan. Saya aja heran ada Handphone merek Oppo. Opo kui?

Pranala Luar:

http://www.ign.com/articles/2013/05/14/blackberry-messenger-app-coming-to-android-and-ios

http://www.theverge.com/2013/5/14/4330122/blackberry-bringing-bbm-to-android-ios-this-summer

Pacific RIM and Neon Genesis Evangelion

Evangelion Unit 01

Pacific RIM Robot/ Mecha

Evangelion Cockpit/Capsule is being filled with LCL. Evangelion’s pilot must sync their nerve system to the unit’s interface. Higher sync ratio will results in better movement of the unit.

Pacific RIM suit is being filled with some kind of liquid that resembles LCL. Pacific Rim’s units require two pilots. And they must sync their nerve system to the unit’s interface.

Check List Keamanan di Instalasi WordPress Anda

Survei dan fakta membuktikan jika WordPress adalah CMS terpopuler di jagad internet. Dari mulai blog curhat hingga toko online lengkap dengan keranjang belanja dan checkout menggunakan paypal, WordPress layak dinobatkan sebagai CMS serbaguna. Antar muka WordPress yang sederhana mendorong penggunanya untuk produktif.

Untuk developer, fungsi-fungsi wordpress terdokumentasi dengan lengkap. Semuanya ada di http://codex.wordpress.org. Nggak semua sih, kadang-kadang ada yang nggak ada, tapi jangan kuatir. Masih ada forum. Apapun masalah anda, pasti ada orang lain yang senasib. Dan jika masih stuck, Google bersedia membantu. Ask and I shall answer, said Google to people who need answers and… light porns.

Tapi sisi gelap ketenaran selalu ada dan biasanya tidak menyenangkan. WordPress adalah pesohor di dunia CMS. Seperti juga pesohor, banyak pihak yang mencarinya. Ada yang memuji, namun ada pula yang melucuti.

Jika anda menggunakan wordpress, prinsip saya adalah: “Better safe than sorry”. Jadi memperhatikan detail-detail kecil sangat dibutuhkan.

Random String/ Salt

Sebelum menginstall WordPress
Buka wp-config.php. Setelah mengatur database lihat baris yang berisi tulisan:

define('AUTH_KEY',         '');
define('SECURE_AUTH_KEY',  '');
define('LOGGED_IN_KEY',    '');
define('NONCE_KEY',        '');
define('AUTH_SALT',        '');
define('SECURE_AUTH_SALT', '');
define('LOGGED_IN_SALT',   '');
define('NONCE_SALT',       '');

Baris tersebut harus diisi dengan karakter-karakter rumit, unik dan membingungkan. Anda bisa men-generate random string tadi dengan mengunjungi https://api.wordpress.org/secret-key/1.1/salt/. Setelah itu keluar seperti ini:

define('AUTH_KEY',         'G6bW8_C`~RI9C~0|RGB@,g(Z@G`qMNgB2L=@)gJ2?q9~[o>rDb(-)S(<G0pElwwg');
define('SECURE_AUTH_KEY',  'j2#SbrD-s*cVBr9tHldc7;^fI<eQR`xpc|{@%-Kx./j4+X#bcw<5#fr!An9>OI3E');
define('LOGGED_IN_KEY',    '3I4-pL7B{2u|1!QvGgEZ.G6-Z$&4M6&L+K`z=C2M%84tMPc-|{M!Or{^|s48|/qv');
define('NONCE_KEY',        'K~nY+x)7+M-!YgP<j;YtO3c%NG76? %VK$|^q,kA<Ct/<U0E{,J`+0<B1R% ZebB'); 
define('AUTH_SALT',        '-ED5@`4JW/jV},fJu`+^/y&nBCP%M5/..>$qb-AH-X#Z2E_hR CHlTurk)~h5zC$');
define('SECURE_AUTH_SALT', '}tk!8-%5Nj,KsXh$19{|smh;#4*q] Z8+$TbD^,)ehkk6TbfFnor$xD r%:okqho');
define('LOGGED_IN_SALT',   '9=yJZ9on|XFz`;AS^TIH+Q7ZBtp!>nTT<+S,L_Bw7|G7H)-6 N7=|jv2WG,_ASB[');
define('NONCE_SALT',       '=mb}Sa*R8:y$%LnE4rOK[j:Tq^4NTdtg)T}PN?sq6jw@ZxR$=7w:5u_9F2 W2lL<');

Kopi paste kode tadi ke wp-config.php (jangan mengkopi kode diatas, anda harus men-generate sendiri).

Table Prefix

Masih di wp-config.php. Setelah selesai dengan random string tadi, cari $table_prefix = 'wp_';. Ubahlah menjadi selain wp_. Misalnya nm_ atau bji_ seperti ini $table_prefix = 'bji_';. Merubah prefix membuat database anda tidak mudah ditebak oleh penyusup.

Admin Username dan Password

Mulailah menginstall WordPress. Setelah itu anda akan diberi form untuk membuat username untuk administrator. Jangan beri nama admin, administrator, _admin_, Admin, dan/ atau yang berhubungan dengan admin. Pilihlah nama-nama yang asoi seperti rumpelstiltskin, eyjafjallajokull, pteranodon, ijiberngenstiau, ik3tunid4lak dan sejenisnya.

Kemudian password jangan tanggal lahir, 123456, kata password itu sendiri, nama pacar, nama ayah, nama ibu, nama presiden kita, nama pengisi suara Nobita, dsb. Intinya jangan nama-nama generik yang mudah ditebak.

Untuk password yang baik sebaiknya tanya teman-teman alay anda. Keahlian mereka mengkombinasikan huruf besar, huruf kecil, angka, dan karakter unik lainnya membuat mereka sangat ahli membuat password yang aman.

Menghilangkan Generator Versi WordPress di Source HTML

Di folder template anda, /wp-content/themes/nama_template, bukalah file functions.php. Masukkan kode berikut ini di baris terakhir.

function rm_generator_filter() {
return '';
}
add_filter('the_generator', 'rm_generator_filter');

Kode ini akan menghilangkan tag di source kode HTML dan feed RSS anda seperti ini <meta name="generator" content="WordPress 3.1.1"/>. Menampilkan versi wordpress memudahkan penyusup menebak sistem atau kelemahan yang terdapat pada versi tersebut.

Timthumb

Jika anda menggunakan timthumb (script resizer gambar on the fly), segeralah update ke versi terbaru di sini http://timthumb.googlecode.com/svn/trunk/timthumb.php.

Update WordPress dan Plugin

Update wordpress dan plugin jika terdapat versi terbaru. Update biasanya memperbaiki lubang-lubang keamanan.

Readme.html

Terakhir jangan lupa hapus readme.html. Disitu isinya jelas-jelas ada versi wordpressnya.

Sementara langkah-langkah diatas adalah langkah awal yang wajib dilakukan, sebetulnya masih banyak lagi, check list security yang bisa kita lakukan untuk lebih memperkuat wordpress dari serangan. Like I said before, “Better safe than sorry”.

Menulis Kode Dengan Cepat Menggunakan Notepad++ dan Zen Coding

Jika anda pengguna Notepad++, anda bisa menginstall zen coding untuk mempercepat pekerjaan anda menulis kode HTML dan CSS. Menginstallnya mudah;

Klik Plugins -> Plugins Manager

Pilih Tab Available, centang Zen Coding – Python. Klik Install.
Setelah diinstall, cara menggunakannya sangat mudah. Kebetulan saya penggemar berat Framework Foundation. Jadi tools ini sangat menolong.

Misalnya anda ingin membuat 2 kolom seperti ini:

<div class="row">
    <div class="large-6 columns"></div>
    <div class="large-6 columns"></div>
</div>

Di notepad++ anda cukup menulis seperti ini:

div.row>div.large-6.columns+div.large-6.columns

Kemudian tekan Ctrl + Alt + Enter. Kode akan expand sendiri seperti diatas. Untuk penulisan lebih kompleks, anda bisa melihat cheat sheetnya di https://code.google.com/p/zen-coding/downloads/detail?name=ZenCodingCheatSheet.pdf

Nah, makanya ga usah pake dreamweaver-dreamweaveran. Berat dan overkill.

Redesign Halaman Login Sisfo STMIK Nusa Mandiri

So, today I have spare time. Jadi daripada otak tidak terasah lebih baik melakukan sesuatu yang berguna buat otak. Ceritanya dulu saya pernah kuliah IT (jadi malu saya) di sebuah universitas swasta bernama STMIK Nusa Mandiri. Tiap kali mau ujian, mau lihat nilai, mau lihat jadwal dan segala macam keperluan kemahasiswaan lainnya saya harus melihat halaman ini:

Sebetulnya sudah bagus. Halaman ini mudah dipahami dan fungsional.

Namun dari segi usability (asek sok keren bgt ini yg nulis), halaman ini kurang baik. Pengumuman ditampilkan di bagian atas melalui mekanisme scroll vertikal. Kenapa kurang baik? Jika ingin melihat pengumuman yang relevan, user atau mahasiswa harus menunggu. Bagi yang paham mungkin bisa menekan control+U dan langsung melihat sourcenya. Tapi itu kan jadinya ga seru dan tujuan website sebagai penyedia informasi kurang kena sasaran.

Dari segi tampilan keseluruhan, rapi. Tapi saya akui website ini kurang kosmetik dan sedikit kaku. Kadang-kadang kalau lagi mau ujian online melihat tampilan putih ini suka stress. Atau ketika pengumuman ujian. Tampilan website ini kadang-kadang bikin deg-degan. Tapi yang lebih deg-degan lagi kalo ga bisa login sih… Eaaaa, maaf nggak nyindir loh.

Kemudian terakhir, penggunaan tag html dan kawan-kawannya. Siapa juga yang peduli sama kode, yang penting tampilan cantik. Bagi saya inner beauty sama pentingnya dengan outer beauty. Jadi kalau tampilan bagus tapi hati masih galau, mendingan nonton kuliah Shubuh dulu pagi-pagi. Nah jadi ceritanya page ini masih pakai tag
. Ugh please dehh, hari genee bikin layout pake table? Emang kenapa pake tabel? Gapapa juga, cuma itu jadinya… gini…

Jadi dalam rangka menghabiskan waktu, saya buat deh halaman login yang baru. Mungkin lebih bagus, mungkin juga lebih jelek. Baiklah, silakan dilihat:
Lanjut membaca

Many to Many Relationship in Codeigniter

Apa itu many to many relationship? Susah didefinisikan (kalau mau definitif dan mau buat skripsi lebih baik ke perpustakaan kampus atau bertanya pada dosen IT terdekat). Contohnya sebuah rental video. Para pelanggan boleh menyewa lebih dari 1 video (many) atau sebaliknya, sebuah video boleh disewa oleh lebih dari 1 (many) pelanggan.

Kebetulan saya sedang membuat sebuah aplikasi web penjualan mobil melalui showroom. Seperti juga rental video tadi, showroom boleh memiliki lebih dari 1 leasing. Jadi bagaimana mendisain many to many relationship di database?

Ketika merancang database, many to many relationship tidak mungkin dilakukan. Jika melihat ERD, sepintas kita hanya membutuhkan 2 tabel, tapi ternyata tidak mungkin. Tidak mungkin nilai leasing dimasukkan ke dalam sebuah field dan diextract melalui array, that would be stupid and not really a productive idea.

Kita membutuhkan sebuah tabel baru untuk menjembatani antara showroom dan leasing. Ada yang bilang bridge, ada yang bilang jumper. Apapun sebutannya yang penting maksudnya sama. Saya membuat tabel baru dengan field sbb

  • leasing_relationship_id : primary key, int(10)
  • showroom_id : key, int(10)
  • leasing_id : key, int(10)

Berikut ini adalah model untuk memasukkan nilai ke dalam tabel tersebut.

public function add_leasing_relationship()
{
	$this->load->database();
	$leasings = $this->input->post('leasing');
	$showroom_id = $this->db->insert_id();
	foreach ($leasings as $leasing)
	{
		$data[] = array (
			'showroom_id' => $showroom_id,
			'leasing_id' => $leasing
		);
	}
	$this->db->insert_batch('pb_leasing_rel', $data);
}

Variabel $leasings berasal dari input user melalui multiple input.
Variabel $showroom_id adalah id dari input data showroom terakhir.
Kemudian variabel $leasings di extract dan di insert ke dalam field leasing_id, sementara showroom_id di beri nilai id terakhir dari showroom.
Dan terakhir $this->db->insert_batch('pb_leasing_rel', $data); menjalankan multiple query insert sesuai banyaknya data di variabel $leasings.

CSS atau table?

image

Kira-kira 10 atau 15 tahun yang lalu, menggunakan tabel (tag table) di dalam sebuah website adalah teknik populer yang digunakan hampir semua designer. Namun semuanya berubah ketika bangsa api menyerang. Setelah itu kemudian CSS (Cascading Style Sheet) datang memberi designer sebuah metode yang super fleksibel dalam mendisain sebuah halaman web. CSS memberikan designer kemudahan dalam melakukan pemeliharaan website.

Melalui CSS, informasi design (layout, typography, color) terpisah dengan HTML sehingga memungkinkan tampilan yang konsisten di seluruh halaman website. Selain itu file CSS yang diletakkan secara eksternal melalui link rel= akan di cache (disimpan) oleh browser sehingga akan menghemat bandwidth website tersebut. Kita semua tahu kalau web hosting di Indonesia pada pelit bandwidth.

Tapi kenapa dengan segala daya tarik dan keunggulan CSS, masih banyak web designer yang masih menggunakan table? Sebetulnya jawabannya banyak dan it’s complicated, seperti status anda dan mantan pacar anda. Melalui pengamatan subyektif namun tetap berusaha seimbang coba kita teliti penyebabnya.

Asal mula menggunakan Table

Sebelum table memiliki tag border=0, disain web sangat membosankan. Isinya cuma tulisan-tulisan dengan layout sederhana. Kemudian muncullah border=0 di table yang artinya menghilangkan garis table. Mendisain layout web yang kompleks menjadi mudah. Membuat sidebar? No problem. Header atau navigasi? Gampang. Footer yang keren? Ah apalagi itu, kecil. Konsep table begitu mudah dipahami oleh pemula sekalipun sehingga penggunaannya sangat populer. Tanpa table, mungkin juga lapangan pekerjaan web designer nggak bakalan ada.

Jadi kenapa table muncul duluan daripada CSS? Sebetulnya itu bisa dilihat dari pertama kali website dibuat. Pada awalnya website cuma untuk bagi-bagi hasil riset antara sesama ilmuwan. Ya tau sendiri lah, ilmuwan nggak terlalu penting sama disain, yang penting results. Hasil penelitian banyak menggunakan table untuk presentasi data.

Zaman dulu siapa yang nyangka kalau sekarang website jadi sumber hiburan utama buat sebagian orang? Dari mulai nonton film yang nggak bener sampe nulis status galau di jejaring sosial kesayangan kita semua. Dengan kebutuhan se-intens itu sangat wajar jika teknologi web berevolusi hingga menelurkan teknologi CSS.

Faktor Kenyamanan

Sebagai web designer, kita sudah tidak terhitung me-layout halaman web menggunakan table. Skill tersebut biasa dimiliki oleh seorang designer dan biasanya kebanyakan disainer sangat nyaman menggunakan table. Dengan menggunakan table, hasil akhir bisa langsung diprediksi atau dibayangkan di otak kita. Dengan menggunakan sedikit trick, seperti spacer gif, kita bisa menjamin bahwa website kita akan tampil konsisten di hampir semua browser dari browser tua hingga browser terbaru.

Mudah digunakan oleh Pemula

Salah satu faktor dunia web menjadi begitu sukses adalah rendahnya tingkat kesulitan untuk pemula. Atau pendek kata, siapapun bisa mempelajari HTML dengan cepat. HTML adalah bahasa yang sederhana untuk dipelajari dan tidak terlalu ketat dalam penggunaan kodenya. Ditambah lagi, banyak tools dan IDE yang bisa membuat table secara otomatis hanya dengan mengklik icon-icon. Keadaan ini membuat disain website menjadi sangat mudah untuk siapa saja. Bahkan anak kecil juga bisa membuat website menggunakan Frontpage.

Bandingkan design berbasis table dengan design berbasis CSS. Sebetulnya syntax di CSS sangat mudah digunakan. Kita tidak butuh diploma atau sarjana untuk belajar CSS. Namun begitu, beberapa konsep di CSS sangat sulit ditangkap. Dampai saat ini pun untuk floating dan positioning saya masih meraba-raba dan melakukan trial and error. Kira-kira untuk memahami CSS secara mendalam dan kompeten butuh waktu 6 hingga 12 bulan. But then again I could be wrong.

Kemudian masalah selanjutnya adalah browser support. Setelah beberapa lama menggunakan CSS, kita jadi tahu browser mana yang bisa apa, dan bug apa saja yang ada di browser anu. Tapi yang nyebelinnya, bugnya banyak banget, terutama di Internet Explorer lama. Dulu saya seharian pernah membuat stylesheet khusus untuk IE6 (damn you IE6). Bagi pemula, bug di browser ini benar-benar bikin stress. Jadi bagi sebagian orang CSS bukan solusi melainkan masalah baru.

Tapi secara unik, keahlian menggunakan teknik-teknik CSS menjadi populer diantara para web professionals. Ketrampilan ini yang membedakan antara profesional dengan para amatir yang biasanya asal tempel website menggunakan wizard atau visual editor asal tampilan bener. Tapi kalo dipikir lagi, kecuali kita seorang designer atau programmer web, jarang-jarang orang view source sebuah website hanya karena curious cara bikinnya gimana.

Beberapa hal lebih mudah menggunakan table

Pasti para disainer di luar sana pernah menulis super rumit kode CSS untuk melakukan sesuatu yang jika digunakan dengan table sangat sangat mudah. Contoh soal, mendisain form. Mendisain layout form dengan table sangat mudah, layout jauh lebih rapi dan yang jelas cepat. Mungkin kita bisa juga menggunakan CSS, tapi setelah floating kiri floating kanan padding kiri padding kanan margin atas margin bawah, form nggak jadi-jadi juga. Jika anda menyukai tantangan dan ahli, CSS mungkin menyenangkan, tapi jika anda cuma orang biasa yang dikejar target oleh pak boss, lebih baik kembali menggunakan table.

Jika anda paham dan penuh kesabaran, anda akan bisa melakukan hal-hal menggunakan CSS sebagai pengganti table. Lebih lama lah pastinya, tapi pasti bisa. Begitu terbiasa menggunakan CSS, table dan spacer gif hanyalah cerita lama yang cuma bisa dikenang.