Selasa, 03 Februari 2009

Perubahan Requirement Web

Terjadi pergeseran kebutuhan dari web-platform ke web-framework. Hal ini disebabkan karena perbedaan role antara administrator dengan developer. Web-framework ini bukan hanya untuk membuat web-dinamis dengan cepat namun juga harus siap menjadi dasar pembuatan CMS (Content Management System). Pasar masih menunggu beberapa standar de-facto untuk web-framework.

Bagian ini adalah kesimpulan dari empat judul yang ditulis terakhir yaitu:

Jadi silakan baca keempat judul di atas.

Pada saat memulai blog ini, sebetulnya saya sedang berkecil-hati karena dua hal:
  • Riset semacam ini seharusnya dilakukan bertahun-tahun lalu saat masih menjadi mahasiswa atau paling tidak baru lulus kuliah.
  • Dari hasilnya harus diakui bahwa, dibandingkan rekan-rekan IT yang lain, skill yang penulis kuasai tertinggal tiga sampai dengan sepuluh tahun, di belakang. {keluh}
Bagaimanapun, belum terlampau terlambat untuk mencari ilmu.
Dan terutama, membagi ringkasannya kepada yang berminat supaya
  • Tidak hilang waktu untuk reinvent the wheel
  • Tidak terjerembab dalam implementasi yang konyol
  • Rekan-rekan di bidang web tidak lagi learn the-hard-way

Read More......

Framework versus CMS

Agar dapat berfokus, mari kita bedah CMS menjadi tiga bagian. Yaitu Framework Feature, CMS Core dan CMS Feature. Peletakan ketiganya juga tidak harus kaku, asal jangan digabung semua. Developer CMS berbasis PHP seringkali rancu menggabungkan ketiganya.

Framework Feature

  • Ease of Development (MVC)
  • ORM (Object Relational Mapping)
  • Multi Database Interface
  • Configuration Reader (XML, JSON, atau YAML)
  • Error Handling
CMS Core: Must-Have-Feature
  • Admin Interface,
  • Basic Content: Page-Based, Node-Based atau Component-Based
  • Extension Management
  • Authentication
  • Template Engine (dengan Layout)
CMS: Nice Feature
  • Menu Management
  • User Role (ACL)
  • Theme
  • Editor (biasanya WYSIWYG)
  • Multi Language dan locales
  • Versioning

Read More......

Standar De-Facto Web

Yang sedang terjadi adalah pergeseran filosofi.
"dari web-platform ke web-framework."
Kandidat standar de-facto adalah Rails, Zope dan Coocon.


Secara umum hubungan-nya adalah:.

          Platform --- Framework -- CMS
Dari suatu Platform bisa dibangun beberapa jenis Framework berbeda. Dari satu Framework dapat dibangun beberapa CMS berbeda. CMS yang sudah jadi tidak dapat diganti frameworknya tanpa mengubah core system CMS itu sendiri. Ini sebabnya usaha membalik proses seringkali tidak sepadan. Ini sebabnya CMS di PHP menjadi kaku. Sangat ironi mengingat tahun 2009 ini CMS berbasis PHP akan sangat laku di pasaran.

Framework di platform PHP kurang bagus karena desain PHP sendiri yang ketinggalan zaman. Sepuluh tahun lalu yang menjadi standar de-facto web-platform adalah ASP dan PHP4. JSP masih merupakan pilihan. Yang kita butuhkan dua tahun belakangan ini adalah standar de-facto untuk web-framework.

Umumnya kita harus mengucapkan selamat tinggal kepada PHP4 maupun ASP. Mengapa? Isunya bukan lagi platform, namun framework. Kalaupun PHP mengeluarkan PHP6, nasibnya akan sama dengan Perl. Arsitektur PHP yang membuat framework di bawahnya tambal sulam. Pengelolaan perubahan requirement di PHP ada di tatar teknis, bukan konsep. Terimakasih PacktPub, sekarang penulis berpindah platform.

Keterlambatan memahami perubahan kebutuhan inilah yang membuat kebanyakan Framework dan CMS tidak menyatu, betapapun hebat features yang dipakai, seradikal apapun konsepnya. Untuk dapat menjadi dasar dari beberapa CMS, suatu Framework harus netral terhadap konsep dalam CMS, tidak terpaku dengan feature-nya.

Jadi masalahnya adalah pergeseran kebutuhan. Lingkup sekarang tidak memenuhi requirement. Requirement sekarang adalah framework yang mendukung pembuatan CMS.


Solusi
"Ganti framework. Keluar lingkup."

Tentunya secara langsung harus ganti platform (bahasa pemrograman) juga. Tiap Platform ternyata memiliki culture masing-masing.

Saat ini belum ada standar de-facto untuk web-framework untuk membuat CMS. Namun kandidatnya ada dua yaitu Rails dan Zope. Rails memakai bahasa pemrograman Ruby sedangkan Zope memakai bahasa pemrograman Python. Beberapa tadi adalah solusi umum (generic) framework yang matang, namun di atasnya, belum banyak pilihan CMS yang mudah di-implementasikan.

Secara lebih detail
  • Ruby --- Rails --- Radiant
  • Python --- Zope --- Plone
  • Java/Tomcat --- Coocon --- Lenya
Sebetulnya ada framework lain seperti Ruby/Merb dan Python/Django. Namun nasib mereka sama dengan rekannya di PHP5. Yaitu belum berhasil untuk membuat CMS, kecuali untuk para hackers. Sedangkan Java bersifat enterprise dan tidak dibutuhkan untuk pekerjaan yang remeh-temeh.

Lebih Mendetail Mengenai Kandidat

Plone CMS sudah lengkap sistem administrasi-nya, namun berat. Sedangkan Radiant masih jauh di bawah Joomla dalam hal administrasi. Radiant sangat sexy bagi developer. Sebetulnya yang menggairahkan adalah framework-nya yaitu Rails.

Tahun depan akan lebih menarik lagi. Fusi Framework Rails-3/Merb-2 secara radikal berencana membuat dirinya agnostik terhadap kebutuhan spesifik tertentu ini. Artinya, memangkas standar yang telah dibuatnya sendiri.

Radiant diciptakan sebagai CMS minimalis. Membandingkan Radiant dengan Joomla mungkin tidak apple to apple.

Rails membutuhkan waktu untuk menciptakan CMS yang mempunyai fungsi lengkap menyamai joomla. Joomla akan sangat kesulitan untuk menyamai arsitektur Rails. Ini bukan sesuatu yang bagus. Tahapannya masih begitu. Mengingat masa depan rails lebih menjanjikan, harapkan saja ada bundle CMS yang lengkap yang berbasis Rails.

Radiant terlalu sederhana karena memang di-design untuk team kecil. CMS sederhana namun dapat diperluas. Radiant cocok bila developer cuma satu, admin cuma satu dan pengisi content cuma satu. Atau bahkan semua dijadikan satu.

Atau mungkin suatu saat ada alternatif lain yaitu CMS sederhana, namun bisa di-bundle-ulang, baik dengan nama baru, atau dengan nama yang sama. Dengan feature lengkap untuk noobie


Note: Penulis berusaha tidak bias. Sayang sekali penulis masih terbelakang soal Java, belum sempat mencoba Coocon, dan dahulu hanya sempat bermain sebentar dengan Tomcat tanpa menghasilkan satu proyek nyata. Mohon maaf.

Read More......

Perbedaan Role antara CMS dan Framework

"CMS untuk admin. Framework untuk developer."

Belum ada gabungan Framework-CMS yang berjalan di atas PHP. Dari hasil coba-coba berbagai CMS di atas ternyata kedua-role ini belum ketemu. Pemisahan membuat fokus. Namun yang lebih penting adalah integrasinya.

Hasil survey lalu menuntun ke survey berikutnya yaitu Framework CMS yang menarik berdasarkan platform tertentu untuk proyek kecil, misalnya intranet. Jadi berikutnya penulis mensurvey beberapa framework. Dulu pernah membangun proyek dengan CodeIgniter. Namun sekarang cukup melihat hubungannya dengan CMS.

Targetnya berbeda

  • Kebanyakan pemakai Framework adalah tukang lembur yang terkadang mencintai nightly-builds.
  • Sedangkan antarmuka CMS lebih cenderung diperuntukkan kepada admin yang biasanya bekerja di bawah mentari.
Bagi developer yang penting bukanlah kemudahan dalam administrasi, namun kecepatan me-release software. Dalam hal ini yang dibicarakan adalah framework. Mencoba framework baru memang menantang, namun tanpa CMS, framework bukanlah solusi siap pakai.

Trend framework sekarang adalah mendukung MVC (Model-View-Controller). Ada banyak PHP Framework yaitu CodeIgniter, Kohana, Zend, CakePHP, Prado, SeaGull, Dojo dan Symfoni. Tidak semua sudah dicoba. CMS berbasis Zend atau Cake kurang berkembang. Bahkan bisa dibilang tidak ada live-CMS yang terbukti berkembang di bawah Framework berbasis PHP.

Note: Bukan Role CMS
Role untuk developing CMS dan Role untuk penggunaan CMS adalah bidang yang berbeda. Kita tidak membicarakan Role CMS. Berikut adalah role CMS agar jelas.
  • Dari sisi penggunaan, kalau Framework dan CMS sudah terintegrasi, role dapat dibagi lagi menjadi admin/installer, designer, publisher/editor, core developer dan extension developer. Nantinya CMS harus lebih modular, saat ini Role untuk publisher dan admin masih dalam satu interface. Antarmuka untuk publisher ini boleh digabung dengan berbagai data-entry. Sementara di bagian paling depan untuk end user baik registered maupun anonymous.
  • Dari sisi developing, Framework harus bebas terhadap berbagai kemungkinan implementasi role dan ACL (Access Control List).
Masalah
Belum ada gabungan Framework-CMS yang berjalan di atas PHP.

Ya! ternyata belum ada satupun Framework PHP4/PHP5 yang berhasil dibuat untuk mendevelop CMS. Yang terjadi adalah CMS yang mempunyai built-in Framework. Hanya dua CMS yang mempunya built-in framework yang ketat dalam hal MVC yaitu Joomla (1.6) dan SilverStripe.
  • Framework Joomla yang setengah hati tidak memuaskan. Hal ini disebabkan karena Joomla harus memelihara kompatibilitas ke belakang. Joomla belum memiliki ORM.
  • ORM dari SilverStripe/Sapphire sangat tergantung pada database. Semua konfigurasi ditaruh di dalam database (biasanya di file XML, YAML atau mungkin JSON).. Ini bendcana, betapapun cantiknya tampilan web 2.0 SilverStripe.
Jangan salah tangkap, penulis sangat kagum kepada para pembikin CMS ini. Dengan segala hormat, bukan salah mereka kalau ada produk yang lebih cocok bagi pengembang kecil-kecilan.

Permasalahan dari built-in framework adalah tidak modular. Suatu module diciptakan untuk tugas tertentu CMS secara spesifik. Pada saat kebutuhan berkembang, susah untuk membuatnya menjadi general. Akibatnya framework terpaku pada produk tertentu, atau konsep tertentu yang menjadi obsolete di kemudian hari.

Library yang tidak standar dapat menjadi sumber masalah di CMS yang kaku (tidak netral). Contohnya adalah Joomla, kita tidak dapat memasang javascript-mootolos-1.2 tanpa mengubah core system karena Joomla-1.5 telah terpaku pada javascript-mootools-1.1. Mengubah core system berarti menyusahkan diri sendiri saat meng-update Joomla. Pendekatan lain harus dilakukan.

Read More......

CMS berbasis PHP yang bagus

Terimakasih kepada PacktPub CMS award. Sekarang penulis memiliki bahan untuk meriset berbagai CMS berbasis PHP agar tidak lagi seperti katak dalam tempurung. Pendekatannya pragmatis untuk pekerjaan sehari-hari, bukan akademis yang bermain konsep.

Tujuan awal sebetulnya hanya mencari CMS berbasis PHP yang lebih baik Joomla untuk proyek kecil, terutama dari sisi kecepatan developing. Butuh waktu tiga bulan untuk mencoba-coba.

Research CMS

Yang sudah dicoba:
  1. Hasil CMS award dari PacktPub.com yaitu: MODx-0.9.6.1, Joomla-1.5, Drupal-6.8, MiaCMS-4.8, ImpressCMS-1.1.1, SilverStripe-2.2.3/Sapphire, dan CMSMadeSimple-1.4.1.
  2. Yang tidak tercantum di PacktPub.com: ezPublish, DragonFly, TypoLight.
Bila kelengkapan di atas cukup membuat ngeri, mungkin anda dapat mengerti alasan penulis, mengapa tidak memberi penjelasan mendetail (secara panjang lebar lebih lanjut yang tentunya sangat membosankan).

Hasilnya:
  1. Keluarga Mambo, paling mudah dalam administrasi. Fungsi-fungsi sebagai CMS lengkap.
    • Joomla memiliki roadmap yang jelas. Joomla masih berusaha keras memperbaiki arsitektur.
    • MIA sebagai Mambo rebranded belum banyak kemajuan.
    • Aliro framework belum ketahuan mau ke mana.

  2. Keluarga XOOPs. Ditulis oleh kutu-buku untuk kutu-buku.
    • ImpressCMS ini memiliki Trust Path, menarik untuk security. Selain itu tidak ada gebrakan baru dari Roadmap/ BluePrint mereka.
    • Untuk PHP5 fork ke XOOPsCube.

  3. Drupal memiliki arsitektur yang baik, moudlar, hirarkis, namun susah untuk admin. Drupal adalah pemenang PacktPub CMS award. Drupal memiliki arsitektur modular. Sayangnya taksonomi bukanlah kebutuhan utama CMS. Secara native Drupal tidak mensupport MVC.

  4. SilverStripe (yang dipakai Obama) lebih menjanjikan, karena memiliki built-in framework bernama sapphire berdasar PHP5, namun masih jauh dari Ruby.

  5. CMSMadeSimple terlalu simple dan susah dikembangkan.

  6. MODx adalah binatang yang sama sekali berbeda dengan Joomla dan Drupal. Pola berpikir-nya dapat memberi wawasan baru. Sayangnya sangat tergantung database. Noobie jangan mendekat. Jangan bilang penulis tidak memperingatkan.

Secara umum ada gerakan untuk goPHP5 di roadmap mereka kecuali community WordPress yang menentang advokasi goPHP5. Trend di forum maupun official roadmap mudah ditebak. Dengan OOP di PHP5, developer PHP-based-CMS berencana membuat framework.

Tidak ada perubahan radikal di CMS yang telah disebutkan di atas, kecuali sapphire yang untuk pertama kalinya memisahkan framework dari nol, lalu mengintegrasikan dengan CMS SilverStripe. Lalu membuat built-in ORM yang tidak lazim. Sungguh langkah yang sangat berani.

Catatan: Project yang di-exclude:
  1. Di luar lingkup CMS: Kategori ERP/CRM seperti SugarCRM dan WebERP. Kategori Forum: PHPBB. Image Galleries: ZenPhoto, Gallery, dan Coppermine. Project Management: RedMine. Berbagai database Admin tools.
  2. Di luar lingkup PHP: DNN, MojoPortal, Lenya, Daisy, Hippo, Magnolia, DotCMS, Radiant, Plone, Silva.
  3. Dilewatkan (tidak dapat award di PacktPub.com) : Moodle, e107, elgg, nucleus, b2evolution, Jojo, Typo3
  4. Fork dari Project sejenis dengan perubahan tidak signifikan. XOOPs, XOOPsCube, Mambo.
  5. Sistem lain yang dapat dipaksakan menjadi CMS yaitu WordPress dan Typo.

Sebagai pengembang, penulis tidak puas dengan CMS berbasis PHP karena tidak memiliki framework yang dapat menjadi dasar pengembangan.

Read More......

Alternatif Perangkat Lunak di Desktop Windows

Bagi yang sudah merasakan enaknya memakai Mozilla Firefox. Mungkin tahu bahwa perangkat lunak yang tidak ada serial-number-nya bisa lebih baik. Walaupun beberapa orang membenci openoffice.org, tetap saja banyak orang lain melakukan migrasi. Daftar software berikut pilihan bagus, bukan hanya karena gratis, namun juga agar pembaca tidak perlu was-was karena legal. Artikel ini berisi daftar software yang menarik agar pembaca tidak perlu survey sendiri.

Bila anda pengguna Windows. Software gratis yang popular dapat dicari di downloads.com atau FileHippo. Walaupun penulis memakai Debian, namun penulis sering membuat kompilasi DVD bagi yang belum siap bermigrasi ke linux. Saat ini lebih mudah mengunduhnya dari internet langsung, maka jadilah artikel ini.

Berikut di bawah adalah perangkat lunak cross platform yang layak dicoba. Tidak semua dimasukkan hasil kompilasi ditulis di sini.

Desktop Pribadi/Kantor:

Tools:
Grafis:
Developer Tools:

Java Based
  • P2P: Limewire, Frostwire, MP3Rocket, Vuze, ShareAza.
  • Chemical: JMol
Lumayan bagi yang tidak menyukai b*j*k*n.
Berikut tidak cross-platform, namun layak dicoba:
Cross Platform namun kurang nyaman bagi pengguna windows:
  • Office: AbiWord, GnuCash, GNumeric, Dia, Planner
  • Messenger: Miranda, Pidgin (GAIM), aMSN.
  • Audio: Songbird (menjanjikan namun tidak siap pakai)
  • Chat: XChat
  • Programming: Cygwin, MinGW
Masih banyak usaha komunitas untuk melakukan port ke MS-Windows/Mac sehingga aplikasi menjadi cross-platform. Beberapa tahun lagi bahkan kita dapat melihat windows diganti oleh ReactOS (bukan linux). Desktop milik XP akan dapat diganti dengan GNOME 3.0 dan Windows on KDE. Sementara itu, Linux akan hidup damai berdampingan dengan Hurd.

Ada lagi trend baru bagi developer, yaitu mendefinisikan ulang kebutuhan paling mendasar, lalu memangkas berbagai kelebihan/ feature yang tidak perlu. Ini antithesis paradigma sekarang yang menjejalkan berbagai feature yang tidak perlu.

Ada yang mau nambah?
Penulis juga butuh jurus baru.

Selamat Mencoba. Sampai jumpa!
Terima Kasih Perhatiannya.



~epsi
Situs favorit untuk open-source: Kambing.
Framework favorit: Rails.

Read More......