Saturday, April 26, 2008

eBook Pegangan

Tulisan kali ini gw ingin sharing tentang ebook yang pernah gw baca dan mungkin jadi pegangan gw selama ini dalam menyelesaikan suatu permasalahan, terutama dalam pemrograman.

Hampir semuanya mengacu ke web programming dan bersifat implementatif, dikarenakan secara diri pribadi selama ini gw memfokuskan diri ke masalah web. Prospek yang menjanjikan, terutama saat bangkitnya era Web2.0 dan lahirnya teknologi WiMax, bukan suatu hal yang tidak mungkin, suatu saat nanti semua aktivitas kita (seperti office, spreadsheet, presentation,dsb. ) hanya dilakukan melalui satu jendela (program), yaitu web browser!


PHP Manual

Bahasa pemrograman web pertama yang gw pelajari adalah PHP, dan sampai sekarang gw masih cinta ama nih bahasa pemrograman. Framework PHP bertebaran dimana-mana (dan sepertinya bahasa pemrograman yang paiing banyak frameworknya adalah PHP). Jika dianalogikan maka PHP itu seperti Linux, PHP adalah kernelnya, framework-frameworknya itu adalah distro-distronya. :D

Buku PHP manual adalah kumpulan penjelasan tentang fungsi-fungsi serta library-library yang ada di PHP. Yang gw punya adalah penjelasan tentang PHP 4 dan PHP 5. Ini adalah kumpulan atau yang telah dipaketkan dari situs www.php.net dalam bentuk buku.

Buku PHP Manual ini adalah kamus besarnya PHP. Lengkap Abis. Ditulis langsung ama para developer PHP.

Karena isinya seperti kamus, jadi jangan harap akan ada penjelasan mengenai contoh kasus. Umumnya contoh penggunaan fungsi-fungsi di PHP. :)


PHP In Action - Objects, Design, Agility

Bingung ama OOP di PHP ? Bacalah buku ini.

Didasarkan pada PHP 5 buku ini sangat bagus dibaca bagi yang newbie ama OOP maupun sampai yang udah tingkat akhir advance . Penjelasan dan implementasi cukup bagus diterangkan di sini. Dan satu hal lagi kenapa gw suka ama nih buku, kata-kata dan penjelasannya lumayan kocak tapi jelas, ga monoton seperti buku-buku ilmiah umumnya, jadinya kita ga terasa jenuh juga membacanya.

Sekali lagi, bagus untuk kamu yang kebingungan ama OOP di PHP. Ingat : walaupun sintax dan prosedur PHP mirip ama C, tapi jangan harap OOP-nya sama seperti C++ , banyak metode seperti overriding dan overloading, proses perlakuannya berbeda dari C++. Sebab secara default sendiri metode tersebut tidak didukung oleh PHP. Jadi bagaimana caranya? Baca PHP In Action. Solusinya ada di sana ... * promosi *


Agile Web Development With Rails

Salah satu bahasa pemrograman yang gw elus-elus adalah Ruby. Bukan karena bahasa ini sekarang lagi hot-hotnya dan populer. Tapi karena keunikannya. Nulis program kayak kita ngomong biasa aja, jadi programming language di Ruby yah.. dasarnya dari human language. Seperti kita ingin mencetak angka sebanyak 3 kali, kalo di C, biasanya seperti ini :

for (i = 0 ; i < 3 ; i++) {
print("Hello Freddy Ganteng ") ;
}

Di Ruby :

3.times { print "Hi Freddy Ganteng " }

atau

3.times do
print "Hi Freddy Ganteng "
end

Hayoo , mana yang lebih gampang diingat ? * Sorry, bukan maksud membanding-bandingkan, gw juga dasar pemrogramannya dari C kok. Peace ! ^0^) *

Keunikan lain adalah karena Ruby bersifat scripting language dan dynamic programming , sama halnya seperti PHP. Apa itu scripting language ? Apa lagi tuh dynamic language ? Just Google It ! hehe2x ... Insya Allah artikel berikutnya gw akan membahas tentang Scripting Language vs Compiler Language dan menyusul berikutnya Dynamic Programming vs Static Programming .

Nah, karena gw malas mempelajari Ruby dari fundamental lagi, mendingan gw langsung belajar ke framework teranyar Ruby, yaitu Rails (sering disebur RoR - Ruby on Rails) . Di buku Agile Web Development With Rails, cukup lengkap membahas tentang RoR, kalo boleh dibilang buku ini kitab sucinya programmer Ruby (RoR). Sebab selama gw ngikutin milis Ruby, pasti selalu dialihkan kepada penanya untuk membaca buku Agile Web Development With Rails. Di komunitas Ruby luar negeri juga banyak yang menyarankan jika ingin belajar tentang RoR maka buku Agile Web Development With Rails adalah salah satu dari yang utama untuk dipelajari.

Sekali lagi isinya lumayan lengkap, terstruktur, contoh dan studi kasusnya ada berikut pembahasannya, dan satu yang penting enak dibaca, walau ga sekocak PHP In Action tapi apa yang dijelaskan di sana cukup mudah untuk dipahami.

JIka ingin buku Ruby yang seperti PHP Manual (ibarat kamus besarnya Ruby), maka buku Agile Web Development With Rails bukanlah jawabannya. Buku Ruby yang seperti itu adalah Ruby Cookbook.


Don't Make Me Think - A Common Sense Approach to Web Usability

I Love This Book. Satu kata : Amazing !

Buku ini bukan membahas tentang bahasa hewan, pemrograman atau bahasa-bahasa lainnya. Buku ini membahas bagaimana menyajikan suatu desain yang baik untuk pengguna. Istilahnya dalam mata kuliah yang gw ambil sekarang , Interaksi Manusia dan Komputer. Dan juga bukan membahas tentang photoshop!

Bagaimana menyajikan suatu halaman yang menarik dan tidak membingungkan pengguna, bagaimana menyajikan suatu halaman web yang terstruktur dan pengguna langsung mengerti menu (komponen) yang kita hadirkan di web tersebut, bagaimana dan bagaimana pengguna merasa puas dengan apa yang disajikan untuk mereka.

Buku ini lebih menekankan ke arah usability walaupun banyak juga ditekankan ke arah user experience-nya.


Yang gw senangi ama buku ini adalah banyaknya contoh kasus berikut pembahasan dan penjelasannya. Si penulis membahas sesuatu situs, dan merasa ada yang salah dari segi usabality (ataupun user experience-nya) trus dibuat versi penulis sendiri bahwa beginilah seharusnya web itu. Keren euy ...


Dan Lain-lain ...

Sebenarnya masih banyak buku lain yang ingin gw bahas, tapi udah kecapean . Jadi cukup sampai di sini. ^0^)

Bagi yang ingin belajar PHP atau Ruby, ikut aja komunitasnya baik milis ataupun forum.

Milis PHP-Indonesia : http://tech.groups.yahoo.com/group/phpug/

Milis Ruby-Indonesia : http://tech.groups.yahoo.com/group/id-ruby/

Jangan ragu untuk bertanya, sebab ilmu biasanya datang dari masalah, masalah umumnya penuh dengan iringan pertanyaan. (nyambung ga ya ... !@#$%^* ...)

Read more...

Friday, April 18, 2008

MVC di CodeIgniter

CodeIgniter didasarkan pada pola pengembangan Model-View-Controller (MVC). MVC adalah sebuah pendekatan perangkat lunak yang memisahkan aplikasi logika dari presentasi. Ini meminimalkan script dari halaman-halaman web sejak script presentasi (HTML, CSS, JavaScript, dsb.) dipisahkan dari PHP scripting, istilah umum yang familiar adalah menghindari terjadinya spagetti code.


  • Model merepresentasikan struktur data yang dibangun. Umumnya kelas model berisi fungsi-fungsi yang membantu developer untuk mengelola, memasukkan, dan mengupdate informasi dalam database.

  • View adalah informasi yang disajikan untuk user, berupa tampilan atau user interface. View umumnya adalah tampilan sebuah halaman web itu sendiri, tetapi dalam CodeIgniter, view dapat juga menjadi bagian-bagian atau penggalan-penggalan halaman seperti header atau footer. Dapat juga sebagai halaman RSS, atau tipe-tipe halaman lainnya.

  • Controller bertugas sebagai penghubung antara Model, View, dan beberapa resource lainnya yang dibutuhkan untuk memproses HTTP request dan unuk men-generate sebuah halaman web.

CodeIgniter sendiri mempunyai metode yang lebih luas dari pendekatan MVC, ini terletak dimana Model boleh tidak diperlukan. Developer dapat membangun sebuah aplikasi minimal dengan menggunakan Controller dan View saja. CodeIgniter juga memunkinkan developer untuk memasukkan script atau kelas yang telah dibangun developer, atau membangun sebuah core library-library untuk sistem CI, memungkinkan developer untuk bekerja dengan cara sendiri.


Sumber : User Guide CodeIgniter
Read more...

Aplikasi Flow Chart CodeIgniter

Grafik berikut mengilustrasikan bagaimana aliran data melalui sistem di CodeIgniter :



  1. File index.php bertindak sebagai pengatur proses, menginisialisasikan resource dasar yang dibutuhkan untuk menjalankan CodeIgniter.
  2. Router memeriksa HTTP request untuk mendeterminasikan apa yang telah dilakukan.
  3. Jika file cache ada, maka akan dikirimkan langsung ke browser, untuk memastikan proses berjalan normal.
  4. Security. Sebelum application controller diproses, HTTP request dan beberapa data yang dimasukkan oleh user akan difilter terlebih dahulu untuk memastikan keamanannya.
  5. Controller memproses model, library, plugin, helpers, dan beberapa resource lainnya yang dibutuhkan untuk memproses request yang diminta.
  6. Akhirnya, View dirender kemudian dikirim ke web browser untuk ditampilkan. Jika caching enable, view akan diurutkan sesuai request dan berjalan sesuai dengan urutan yang telah ditentukan masing-masing.

Sumber : CodeIgniter User Guide
Read more...

Sekilas Tentang CodeIgniter

Artikel ini sebagian besar bersumber dari CodeIgniter User Guide, dengan penambahan dari sumber-sumber lain plus dari gw pastinya (^0^)/
CodeIgniter ?

CodeIgniter (CI) sebuah framework untuk programmer yang ingin membangun website dengan PHP. CI merupakan langkah cepat untuk membuat sebuah website daripada membangun sebuah website dengan alur koding yang biasa. Dengan mempaketkan library-library, alur pemrograman akan terstruktur dan logika bisnis/proses akan lebih mudah dimengerti oleh developer/programmer lain. CI telah mempaketkan itu semua sehingga mampu meminimalisirkan jumlah koding yang dibangun.

Siapa yang memakai CI ?

CI cocok untuk programmer jika :

  • Menginginkan sebuah framework dengan kapasitas ringan dan prowerfull.
  • Menginginkan sebuah kinerja yang luar biasa
  • Kompatibel dengan akses hosting yang standard dan dapat berjalan dengan variasi versi PHP apapun dengan konfigurasi yang bagaimanapun juga.
  • Tidak meminta konfigurasi apa-apa
  • Tidak meminta untuk akses atau menggunakan CLI (seperti : command line, konsole, atau terminal)
  • Tidak nempel banget ama peraturan koding, harus gini gitu dan sebagainya ...
  • Tidak meminta depedency apapun, seperti PEAR
  • Tidak memaksakan untuk belajar tentang templating language (walaupun di CI ada template parser, itu adalah pilihan jika ingin)
  • Tidak ingin yang begitu kompleks
  • Dokumentasi yang lengkap

Catatan penting lainnya

CodeIgniter adalah sebuah framework!

Bagaimanapun CI adalah sebuah framework. Framework dalam pemrograman sendiri dapat diartikan sebagai sudut pandang seseorang dalam membuat program. Dapat diartikan juga penyatuan sudut pandang dari masing-masing developer untuk membangun suatu program. Tujuannya adalah untuk memudahkan kinerja sistematika dari team dan dari segi men-develope serta maintenance-nya lebih mudah.

Ingat :

  • Beda programmer, beda cara pikir. Beda cara pikir, pasti juga beda sudut pandangnya. Untuk itulah framework diperlukan untuk menyatukan pola pikir dan pola pandang masing-masing programmer.
  • Beda framework, beda lagi sudut pandangnya. :D
  • Membuat program tidak harus bergantung dengan framework. Framework hanya sebuat alat atau toolkit.

CodeIgniter is Free

CodeIgniter dilesensikan di bawah Apache/BSD-style open source license. Dimana programmer atau siapapun itu boleh/diizinkan secara bebas menggunakan, menyalin, mengubah, dan mendistribusikan CodeIgniter beserta dokumentasinya, dengan ataupun tanpa modifikasi, untuk berbagai tujuan.

Untuk penjelasan detailnya silakan baca license agreement CodeIgniter.


CodeIgniter berjalan di PHP 4

Codeigniter ditulis kompatibel dengan PHP 4. Walaupun PHP 5 mempunyai penanganan OOP yang lebih baik, tapi dilihat dari kacamata secara umum, banyak vendor-vendor OS seperi RedHat bergerak lambat untuk mendukung PHP 5. Ditambah PHP 4 telah lama bernaung dan mempunyai umur yang cukup lama di hati programmer PHP.

Walaupun begitu, CI juga kompatibel dengan PHP 5. Lho ? Untuk penjelasan lebih lengkap , silakan baca dokumentasinya.


CodeIgniter itu kecil-kecil cabe rawit

Kecil-kecil cabe rawit atau istilah umumnya adalah ringan tapi powerfull. CodeIgniter benar-benar light weight (istilah keren untuk kecil-kecil cabe rawit). Sistem core-nya hanya sedikit sekali meminta library-library tambahan. Ini berbeda jauh dengan framework-framework lain yang required-nya begitu signifikan sehingga menghabiskan banyak resource.


CodeIgniter itu cepat

Benar-benar cepat. Di situsnya sendiri tertulis : "We challenge you to find a framework that has better performance than CodeIgniter" .


CodeIgniter menggunakan MVC

CodeIgniter menggunakan pendekatan MVC (Model-View-Controller), yang memisahkan antara program logika dan presentasi. Jadi istilah spagethi code bisa diminimalisirkan atau bahkan tidak ada lagi.

Pengertian lain untuk MVC adalah sebuah konsep pemrograman yang fungsinya untuk memisahkan kode yang bertugas sebagai tampilan atau user interface (View), tempat untuk menampungkan data sebelum ditampilkan di view (Model) dan bagian yang mengatur perpindahan data dari model ke view (Controller).


Clean and search-engine URL friendly

URL dibangkitlan oleh CI sehingga menjadi bersifat clean and search-engine friendly. Istilah yang lebih Indonesia Human Friendly adalah gampang dioptimasasi oleh search engine (seperti google, yahoo, live, dsb.). Yang umum biasa terjadi adalah pendekatan "query string" ke URL yang sama artinya dengan sistem yang dinamis. CI menggunakan pendekatan segment-based :

www.your-site.com/news/article/345

Kalau familiar di wordpress, mungkin dibagian pengaktifan permalink-nya. Maybe ...

Penting : Secara default fle index.php dimasukkan dalam URL tetapi hal tersebut dapat dihilangkan dengan pengaturan yang sederhana di file .htaccess .


Paket Library CI

CodeIgniter telah mempaketkan library-library yang paling banyak dibutuhkan oleh para web development, seperti pengaksesan ke database, sending email, validasi form data, pemanfaatan session, manipulasi gambar, XML-RPC data dan masih banyak lagi.


CodeIgniter dapat diturunkan (extensible)

Sistem CI dapat dengan mudah diturunkan atau diperluas fungsinya dengan pemanfaatan library di helper dan plugin, atau melalui turunan class atau sistem hook.


CodeIgniter tidak meminta template engine

Walaupun CodeIgniter mempunyai sistem template parser, tapi itu adalah pilihan jika ingin menggunakannya. Template engine sendiri bukan merupakan bagian dasar dari kinerja PHP, jadi sintak-sintaknya harus dipelajari terlebih dahulu.

Contoh di CI :

<ul>
<?php foreach ($addressbook as $name):?>
<li><?=$name?></li>
<?php endforeach; ?>
</ul>

Bandingkan dengan yang ada pada template engine :

<ul>
{foreach from=$addressbook item="name"}
<li>{$name}</li>
{/foreach}
</ul>

Benar, contoh template engine di atas lebih rapi, tapi membuat prosesnya lebih kompleks, seperti harus menkoversi terlebih dahulu pseudo-code template engine agar berjalan di PHP. CI dibuat untuk memaksimumkan kinerja, jadi itulah alasan mengapa CI tidak memilih untuk menggunakan template engine.


Dokumentasi yang lengkap

Programmer mencintai kode dan membenci menulis dokumentasi. Tapi ingat, dokumentasi adalah sama pentingnya seperti kode itu sendiri. Program tanpa dokumentasi adalah suck ! Framework CI mempunyai dokumentasi yang lengkap untuk siap digali oleh para programmer.


Dukungan komunitas yang kuat

Tanpa dukungan komunitas, CI bukanlah apa-apa. So, monggo mampir di forum CI . >>>>>(^0^)...

-- To be Continue --

Read more...

Tuesday, April 15, 2008

Why CI ?


Lagi nyari bahan untuk nulis, dapat beberapa pernyataan menarik dari Rick Ellis tentang sejarah mengapa CI dibuat. Berikut kutipannya :

"… I spent a couple weeks researching and installing PHP frameworks, really banging on quite a few of them, and I was absolutely dismayed. I discovered that most frameworks suffer from these problems:
  • They have horrid, terrible documentation, if it exists at all.
  • They make an endless number of assumptions regarding your knowledge and skill level, and generally expect you to figure it all out.
  • They are written for people who have root server privileges and can change system settings.
  • They assume that you have access to the command line. In fact, many do not work if you can't bash out commands.
  • They tend to require lots of dependencies, like the PEAR libraries or various open source ones.
  • They tend to be needlessly complex to use, with obtuse syntax, XML based templates, and other features that are simply not necessary for most web applications.
  • They are either ponderously big, or too minimalist to be useful.
  • The most current frameworks only run on PHP 5, which at present only has a 5% adoption rate.
I have yet to find a single PHP framework that is truly, really, actually simple to use, is thoroughly documented from top to bottom, natively includes all the tools needed to build robust applications, has a browser-based interface, and is designed for your average PHP coder, without admin privileges, who uses a standard hosting account. Not one. Which leads me to think there's a market for just such a product. …"

Sumber : www.ellislab.com


Ayo kita bahas ..

They have horrid, terrible documentation, if it exists at all.
Ini kerasa banget awal-awal gw belajar framework, ngeselin banget... Dokumentasinya dikit banget dan bahkan ada yang ga ada dokumentasi sama sekali. Framework kayak apa yang ga ada dokumentasi! Ada yang ngasih dokumentasi formatnya file .txt doank. Bilang dosen HCI (Human and Computer Interaction) gw, "User experience-nya nihil!". Bilang "they" sich, kalo mau yang ada user interfacenya beli bukunya di Amazon.Com ! Ada juga framework yang hanya menyediakan dokumentasi di situsnya sendiri. Kalo mau ada permasalahan apa-apa harus akses internet dulu.

* Ga sadar ya , kalo gw tinggal di Indonesia *.

Intinya jarang ada framework yang menyertakan dokumentasinya dalam satu paket saat unduhan.

They make an endless number of assumptions regarding your knowledge and skill level, and generally expect you to figure it all out.
Ahhh, status gw masih beginner, mungkin ga akan masalah bagi yang udah advance atau expert. Tapi ingat, yang udah jago PHP sekalipun bisa bingung juga dengan framework yang mereka pelajari dengan asumsi-asumsi "they" tentang pengetahuan pemakai. Ini biasa terkait dengan algoritma, penamaan variable, penamaan class, penamaan dan lain-lain, serta dokumentasi pastinya. Coba kalo asumsi "they" adalah "Yang pemakai framework ini adalah orang yang semangat belajarnya tinggi, jadi dengan ataupun tanpa dokumentasi mereka akan tetap mempelajari framework ini". Plis, dech ...

They are written for people who have root server privileges and can change system settings.
Ini kayaknya udah umum, untuk mengaktifkan framework "they" maka ada beberapa yang harus dikonfigurasi terlebih dahulu dari PHP atau servernya. Bayangin, kalo pakai hosting luar (ataupun gratisan) yang tidak mengizinkan penyetingan konfigurasi server oleh customer. Berabe dech ... Biasanya ini terkait dengan alasan keamanaan dari penyedia hosting.

They assume that you have access to the command line. In fact, many do not work if you can't bash out commands.
Inilah alasan mengapa gw kapok belajar Symfony , ... * ;p *

They tend to require lots of dependencies, like the PEAR libraries or various open source ones.
Umumnya terkait ke akses database, seperti PEAR dan AdoDB. Intinya gw malas berhubungan ama depedency. (Walau Linux selalu dekat dengan kata depedency.. hihi2x). Jangan dech, repot ... Setiap orang pasti ingin sesuatu yang sifatnya independent , ga tergantung ama yang lain, tetapi fleksibel bisa dihubungkan ama yang lain. Dan lain-lain....

They tend to be needlessly complex to use, with obtuse syntax, XML based templates, and other features that are simply not necessary for most web applications.
Seringkali sesuatu yang terlalu kompleks, berakhir dengan kata membingungkan. Banyak fitur-fitur yang tersedia menjadi terbuang percuma, karena emang ga kepakai. Terlalu memaketkan semua fitur menjadi satu, yang imbasnya menghabiskan space oleh fitur-fitur yang seharusnya tidak perlu. Dan satu hal yang sering terjadi, saat menambah fitur baru, struktur pemrograman menjadi rancu, koding khususnya.

They are either ponderously big, or too minimalist to be useful.
Idem ama yang di atas. Dan untuk yang minimalis, ya.. usaha sendiri memaksimalkan framework, usaha no. 1 !

The most current frameworks only run on PHP 5, which at present only has a 5% adoption rate.
Umumnya Only Run On PHP 5.1.2 or later . * Hayoo, ngutip framework yang mana nich ... *. CI disusun dengan PHP 4. ??? (lupa versi berapa :D ) . Secara pribadi gw biasanya mencampurkan PHP 4 dan PHP 5 dalam satu server. Program yang gw tulis PHP 5 tapi basisnya PHP 4. Ini karena basic gw PHP 5. Tapi dari itu semua ternyata CI kompatibel juga dengan sistem yang gw pakai tersebut. Di dokumentasinya udah dijelaskan juga secara rinci tentang pencampuran dua versi PHP tersebut. * Mana ada framework lain yang membahas tentang itu .. ^(^0^)^ .*

Kalo bicara sudut pandang si pemakai, rata-rata "they" mengasumsikan pemakai framework adalah mereka wajah-wajah baru generasi saat ini. Maklum, framework PHP umurnya masih muda banget (sejak akhir 2006 kalo ga salah.) Artinya sejak PHP 5 dirilis. Untuk programmer-programmer tua , yang udah familiar banget ama PHP 3 dan PHP 4. Kayaknya kalo mo belajar framework, udah "lelet" gitu. Jika itu asumsi "they" lho ... * Jangan tersinggung ya * ... Alasan lain (yang lebih masuk akal) adalah prediksi jangka pemakaian yang relatif lama jika memakai PHP 5.


Nah, karena alasan-alasan yang dikemukan Rick Ellis tersebutlah, dibangunlah CodeIgniter. Yang menjadi solusi dari semua permasalah di atas.

Saat anda membuka situs CI, akan anda jumpai pertama kali pernyataan berikut :

CodeIgniter is right for you if:
  1. You need exceptional performance.
  2. You need broad compatibility with standard hosting accounts that run a variety of PHP versions and configurations.
  3. You want a framework that requires nearly zero configuration.
  4. You want a framework that does not require you to use the command line.
  5. You want a framework that does not require you to adhere to restrictive coding rules.
  6. You are not interested in large-scale monolithic libraries like PEAR.
  7. You do not want to be forced to learn a templating language (although a template parser is optionally available if you desire one).
  8. You eschew complexity, favoring simple solutions.
  9. You need clear, thorough documentation.

Perkembangan CI di Indonesia

Komunitas CI di Indonesia secara fisik baru terbentuk awal-awal tahun 2008 kemarin. Diprakasai oleh ... Chandra Mulyana terbentuklah milis CodeIgniter, kemudian secara bertahap terbentuk situs Komunitas CodeIgniter Indonesia yang dibangun oleh Sauvarna.

Saat ini jumlah anggotanya lebih dari 88 orang.

Pengen berkenalan lebih jauh dengan komunitas CI-id , monggo mampir di milis dan situsnya.


Situs-situs portal Indonesia yang memakai CI


So... , Why CI ?

If you already know some PHP and are writing intelligent websites, the CodeIgniter framework is all about making your life easier. It helps you

  • Save time
  • Make your site more robust
  • Achieve more sophisticated coding

It makes coding fun again, rather than a chore.

Sumber : CodeIgniter for Rapid PHP Application Development by David Upton


Read more...

Friday, April 11, 2008

Nulis Buku ... (^-^)?

Ini keinginan udah lama, udah ada dua topik pilihan yang ingin gw tulis. Tapi ujung-ujungnya pasti nulis yang sifatnya nge-junk. ;p , kayak blog ini ...

Pertama tentang CodeIgniter, alasan :

Dari pengamatan gw, jarang sekali buku tentang pemrograman PHP yang membahas tentang framework (maksudnya di Indonesia ya...). Umumnya lebih ke sifat pengenalan dan tingkat yang lebih advance membahas tentang OOP. Itupun rata-rata banyak hal-hal yang gw anggap penting terlewatkan. Teman gw bilang, (dari yang dia searching di gramedia) saat ini baru ada buku tentang Prado PHP Framework. Dan karena gw bisanya di CodeIgniter PHP Framework, jadinya yang pengen nulis yang tentang CodeIgniter. Referensi udah super lengkap + pengalaman di lapangan.. yah, gw pikir cukup mampu untuk menulis. Ayo, yang Zend, CakePHP, Symphony Indonesia, bikin buku donk.. , perasaan pengguna ketiga framework tersebut paling banyak dech di Indoenesia.

Ga tahu nih mau start kapan, kesibukan kuliah , kerja, dan nge-junk lain-lainnya, membuat 24 jam sehari serasa ga cukup (dengan asumsi tidur selama 12 jam sehari ... hehe2x). Kalo jadi, tenggat waktu sampai finish rencananya selama 6 bulan. Masalahnya referensi yang dipunya cukup menangisi hardisk gw, jadi pengen nulis selengkap-lengkapnya dan mungkin cukup panjang. Ato copy paste aja ya ... * ilham licik datang *

Kedua tentang Manajemen Aplikasi Video Streaming (basis web), alasan :

Tetap dari pengamatan secara subjectif, belum ada yang nulis yang kayak ginian. Lagian kalo searching di internet, library-library tentang video streaming cukup lengkap, tapi sayangnya dokumentasinya agak kurang (maybe..). Plus, perkembangan aplikasi video streaming berbasis web saat ini lumayan pesat. Coba aja lihat youtube, metacafe, dan lain-lain. * Kalo di Indonesia namanya apa ya ... *

Mo nulis kapan, entah berantah, tapi tenggat waktunya sampai finish adalah 2 bulan. Rencananya hanya gambaran umum. Dan lebih banyak sifatnya ke client-user (keduanya sama aja deh kayaknya), bukan client-server. Ini hanya sebatas apa gw pelajari dari referensi-referensi. Actually, praktek lapang bekum pernah. ....(^0^)....

Kalo dari segi koding, kali cuma JavaScript dan XML (Ajax) yang ditekankan. Sedikit tentang Flash sebagai aplikasi Web2.0 (karena gw masih disconnect ama Flash..). Ga sampai ke aplikasi berbagai bahasa pemrograman seperti PHP, Java, Ruby, dan lain sebagainya.

Jadi, ga terlalu panjang-panjang amat. Dua bulan kayaknya cukup.

Kesimpulannya, itu semua baru rencana. Kalaupun ternyata ada yang telah menulis salah satu atau dua-duanya dari topik di atas sebelum gw. Subhanallah, gw merasa sangat senang sekali, karena telah ada yang mewujudkan impian gw. hehe2x ... * bilang aja sebenarnya malas nulis ... *

Read more...

Koha Fans

Kiprah perjalanan karir gw menjadi fans Koha-chan adalah berawal dari postingan sebuah blog (lupa blog siapa) yang memuat tentang video klip Momosu melantunkan lagu Sexy Boy.


Kepincut ama lagunya yang keren + personilnya yang kawai-kawai :D , searching di youtube nyari video klip Momosu yang lain, dapet Dear Boy. Lagunya asyik banget (+personilnya).


Nyari-nyari dan unduh, begitu seterusnya. Sampai gw dapat video kilpnya Momosu yang Aruiiteru. Nah, dari sini gw mulai memperhatikan, betapa kawainya Koha. Waduh, cakep banget ...


Andaikan aku .... * lagi mengkhayal *


Lirik-lirik ke wikipedia, kemudian situs fans clubnya, ikut-ikutan forum Momosu, trus dan trus... ngumpulin picture-picturenya dech .., dan syukur dari searching yang cukup lama, sampai dua hari yang lalu gw dapet PB-nya (dari album POP) .

Read more...

Tuesday, April 8, 2008

My Curious is My Research

Rasa penasaran yang tinggi sering kali menimbulkan hal yang baru bagi kita. Sesuatu yang bikin kita semakin ada taste-nya gitu (^0^) dan ga ngebosanin ama nih hidup yang sempoyongan gitu terus. Rasa penasaran juga menjadi dasar informasi dan pengetahuan yang tumbuh jernih di otak yang unlimited space memory , tapi tidak terstruktur. Dan rasa penasaran membuat pola tingkah kita menjadi bermakna (setidaknya untuk diri gw sendiri pastinya!).

Ok, ni data hasil "kepenasaran" gw :

Membuat Website

Dari tingkat #1, rasa penasaran gw sangat tinggi pada hal ini. Anggapan gw dulu bikin web sama aja kayak bikin email di yahoo atau akun di FS. Ternyata.. tidak sama saudara-saudara ...

Hal ini baru gw tahu waktu mau naik ke tingkat #2, ternyata oh ternyata bikin web itu ternyata cukup beribet, untuk dasar harus belajar HTML dan CSS, JavaScript sebagai nilai plus. Untuk menampilkan web yang dinamis maka perlu belajar lagi PHP + MySQL . Pusing ...

Untungnya saat itu gw termasuk mahasiswa yang lumayan ga ada kerjaan lain selain kuliah, jadi waktu yang gw miliki untuk belajar tentang ini cukup banyak. Web pertama gw waktu itu adalah yuswanto.bravehost.com yang pure static (sekarang udah ga ada lagi). Kemudian dilanjutin ama www.onepiece.43i.net yang udah ke arah dinamic (udah g ada juga!) + www.blog-ozawa.co.nr yang dengan sengaja udah gw tarik dari peredaran (kerjaan yang benar-benar iseng).
  • Naik satu tingkat belajar tentang CMS Mambo, gimana cara bikin template, modul, dan componentnya.
  • Naik satu tingkat belajar OOP + Framework.
  • Naik satu tingkat belajar Ajax + konsep Web2.0.
  • Lagi berusaha advance ke CMS Drupal, susah euy...
  • Niatnya mo expert di dunia web. Amin.

Belajar Linux

Pengennya tampil beda ama yang lain. Ga tahunya ketagihan. Gw udah bikin profil gw tentang linux di link berikut.

Mengunduh Tanpa Batas di Kampus

DI kampus, unduhan dibatasi max. 20 MB, kalo ga salah juga antara pukul 16.30 - 00.00 cuma ampe 50 MB -- tapi ga tahu masih berlaku atau ga.

Nah, bagi gw yang hoby mengunduh ini itu, yang rata-rata gedenya di atas 50MB, pastilah aturan tersebut ngeselin banget bagi gw. Prinsip ngenet : Ga ada taste ngenet tanpa mengunduh.

Gw paling demen mengunduh ebook, software, PV, dan PB. Yang setelah gw telaah ternyata rata-rata gedenya lebih dari 20MB (dan ada yang sampai 200MB). Sebagai contoh :
  • ebook Don't Make Me Think - Steven Krug (My eBook Favorite), gedenya lebih dari 50MB (dan itu scan murni__ gw kira kayaknya dijeprat-jeprat pakai kamdig,masalahnya ada kelihatan jempol orang!), walaupun ada yang versi yang 16MB, tapi resolusinya kecil (scan_atau jeprat-jepret juga).
  • Software Netbeans (> 150MB), XAMPP for Linux (> 50 MB), atawa IBM Lotus Symphony (> 200 MB) !
  • PV atau PB , rata-rata 50 MB.
  • Dsb...

Gimana bisa ngenet dengan khusyuk, kalau aturannya seperti itu.

Sebenarnya ga akan masalah kalo ga negenet di kampus (ya iyalah...). Untuk sekedar unduh yang gede-gede, gw bisa aja numpang ngenet di DKP yang bandwith-nya ruarrrrr biasa gede, tapi mosok harus bolak-balik Jakarta-Bogor! Kalo di warnet, bayangin aja, 512 kbps dibagi beberapa komputer (> 10) , plisss dech ... mosok harus senam yoga gw nunggu unduhan finish ..., kalo di kantor tempat gw kerja sama aja ... fakir bandwidth ... Kampus solusinya .. 10 mbps!!

Nah rasa penasaran akhirnya timbul. Belajar.. belajar ... dan belajar pastinya..

Ternyata ada tekhnik untuk mengunduh tanpa batas di kampus, secara teknis pastinya ada. Tapi cara yang gw pakai untuk bisa nembus ke sono adalah cara ala Kevin Mitnick. Yaitu melalui pendekatan ke manusianya langsung (alias admin). Wakakaka ..., (sorry ga bisa bocorin karena udah janji ... )

Konsepnya sederhana, dengan SSH tapi dengan catatan tidak memaksa server bekerja terus-menerus atau menghabiskan bandwith, ntar server down! Unduhan di taro di server lokal, kemudian melalui SFTP unduhan diambil (di kampus FTP diblock, dan gw masih penasaran gimana cara bukanya..).

Cara ini juga bisa digunakan mengunduh dimana aja tanpa harus di kampus, asal ada akses internet. Lho ? Sebagai gambaran umum, kita ngunduh di warnet tapi bandwithnya bukan dari warnet, tapi dari kampus.

Hal ini ga berlaku di kampus BS, udah beberapa kali nyoba dan gagal! Pernah nanya ke salah satu mahasiswa di sana, dan jawabannya ??? ngaco!

Btw, gw pernah diremote ama root server kampus, yang notabene adalah dosen gw !!! * Tenang Pak, yang gw unduh untuk belajar juga kok ! *

Btw on the way naik busaway juga, gw dulu juga pernah minta akun SSH di DKP tapi ditolak mentah-mentah ... * kacian dech * . Ga berani (ato ga bisa) nge-hack, masalahnya teknisi IT-nya cukup up to date ngawasin server. Saat ini cuma dapat akun FTP doank ...

Bisnis

Tiap-tiap manusia pasti ingin jadi orang sukses, begitu juga dengan gw. Menjadi enterpreneur handal adalah impian. Sebenarnya ini belum ada hasil, karena gw masih ngidap kanker (kantong kering)! Tapi dari telaah pustaka baik tersirat maupun tersurat yang gw telusuri, pegangan penting yang harus kita bawa dalam berbisnis adalah "Risk Management Control" . Ada alasan mengapa kita berani, mengapa kita merasa mampu, dsb. itu semua berawal kita telah mengatur "Risk Management" sebelumnya. Mampu mengatur "Risk Management" berbisnis berarti kita mampu mengatur diri kita sendiri. Sampai sekarang hal ini masih gw pelajari... baik dari tersirat maupun tersurat ... * Yang jelas gw ga akan ikut-ikutan MLM , plis dech ... * Saat ini, ama beberapa teman lagi buka usaha.. doain lancar ya ... Amin.

Dan lain sebagainya (sebenarnya cuma sampai di sini sich). ^0^)/

Beberapa hal yang masih "mempenasarani" gw :
  1. Manajemen Aplikasi Video Streaming, status : udah ketemu sich, tapi explore ke dalam-dalamnya yang belum.
  2. Manajemen Galerry, status : secara tekhnis udah, tapi yang menjadi fokus adalah dibidang usabilityuser experience-nya. dan
  3. PHP Flash, status : sebatas penasaran !
  4. Mengapa di kampusku ga bisa FTP ??? , status : lagi nyari celah !
  5. FreeBSD , status : belum ketemu komputer yang cocok untuk dioprek ! Rencana pengen beli komputer lagi yang khusus untuk dioprek doank, tapi sayang ... budget berkata lain ... :(
  6. CentOS , status : sama kayak FreeBSD !
  7. Software Engineering Project, status : masih belajar. Biasanya berupa bentuk sharing ama teman-teman tentang project yang pernah mereka tangani masing-masing, tekhnik yang dipakai apa (waterfall atau iteraktif?), version control, kendala, masalah ureq (user requiretment-nya), solusi + pembahasan dikit tentang CMM dan CMMI.
  8. Search Engine, status : sebatas penasaran ! Udah dari SMA penasaran abis ama sistematika kerjanya Mbah Google, tapi hasil yang didapat selalu aja ... bingung !
  9. Pengen nonton konser Momosu ... (^0^)/ , status : lagi ngumpul doku biar bisa ke Jepang. Doain ya ...
Kesimpulan : Penasaran ama pelajaran di kuliah ... ???
Read more...

Sunday, April 6, 2008

CodeIgniter ... Asyik ...

Dikutip dari situs CI sendiri, terjemahin aja sendiri (malas nerjemahin.... ato... ???) :

CodeIgniter is right for you if:

  1. You want a framework with a small footprint.

  2. You need exceptional performance.

  3. You need broad compatibility with standard hosting accounts that run a variety of PHP versions and configurations.

  4. You want a framework that requires nearly zero configuration.

  5. You want a framework that does not require you to use the command line.

  6. You want a framework that does not require you to adhere to restrictive coding rules.

  7. You are not interested in large-scale monolithic libraries like PEAR.

  8. You do not want to be forced to learn a templating language (although a template parser is optionally available if you desire one).

  9. You eschew complexity, favoring simple solutions.

  10. You need clear, thorough documentation.


Finally, it's depend you !

Read more...

Koleksi PB (Updated)

Koleksi PB-PB Qomputer-Q ;

Miki Fujimoto ;



  1. Mikitty # 104

  2. Couer # 76

  3. Alo-Hello # 110

  4. Cheri # 77

  5. Real 226 # 96

  6. Discovery * # 121
Read more...

Thursday, April 3, 2008

Lagu Inspiratif-Q

My Way

And now, the end is near;
And so I face the final curtain.
My friend, Ill say it clear,
Ill state my case, of which Im certain.

Ive lived a life thats full.
Ive traveled each and evry highway;
And more, much more than this,
I did it my way.

Regrets, Ive had a few;
But then again, too few to mention.
I did what I had to do
And saw it through without exemption.

I planned each charted course;
Each careful step along the byway,
But more, much more than this,
I did it my way.

Yes, there were times, Im sure you knew
When I bit off more than I could chew.
But through it all, when there was doubt,
I ate it up and spit it out.
I faced it all and I stood tall;
And did it my way.

Ive loved, Ive laughed and cried.
Ive had my fill; my share of losing.
And now, as tears subside,
I find it all so amusing.

To think I did all that;
And may I say - not in a shy way,
No, oh no not me,
I did it my way.

For what is a man, what has he got?
If not himself, then he has naught.
To say the things he truly feels;
And not the words of one who kneels.
The record shows I took the blows -
And did it my way!


Read more...

Tuesday, April 1, 2008

Mencari Yang C-ute

Banyak yang geleng-geleng kepala jika teman-teman gw baca blog gw. Rata-rata mengatakan isinya ga banget dengan gw yang biasanya di kampus. * kalau di teman-teman di luar lingkungan kampus udah ga kaget lagi * . Apalagi posting-posting yang sering dikategorkan Momosu. Dan lebih hot lagi waktu gw posting tentang "Istri Idaman" . Pernah klien gw terheran-heran melihat blog gw dan (jika dibandingkan ama yang dihadapannya) gw.

Oke, mari kita bicara Why Ngenet?
Read more...