evolving system!

saya tidak berhasil mengerjakan sesuatu yang saya anggap cukup “worth” untuk di banggakan, namun rupanya ada 1 hal yang membuat hal itu tidak pernah terjadi.

  1. saya tidak pernah mencoba melakukannya
  2. saya tidak pernah melakukan implementasi menggunakannya

salah satu yang saya sesali dari dulu adalah, “my PHP framework”.

saya sempat di tanya oleh Koh Ali,

“define the benefit of your PHP Framework!”

dan dalam kepala saya, cuma beberapa pertanyaan dan pernyataan yang berputar-putar, salah satunya adalah.

SIMPLE!

saya membangun framework dari nol, build from zero memberikan keleluasaan bagi saya untuk mengembangkan framework saya sesuai keinginan saya. semantic yang saya gunakan, sehingga saya benar-benar merasakan bahwa.

“code is fun!”

namun saya masih “sangsi” apakah framework yang saya pakai bisa di pakai secara “real life”, bisa di implementasikan untuk system yang berjalan. saya bahkan tidak berani menggunakan metode seperti itu untuk skripsi saya, saya takut jikalau ternyata ada flaw dalam framework saya.

namun ketika saya menerima proyek dari Ray, saya berencana “membuat” framework, jadi saya membuat framework pada “working web”…bukan sekedar menggunakan simple template yang sederhana, dll. saya membuat framework yang akan digunakan pada web yang berjalan (www.akasa.co.id). saya menggunakannya untuk 4 anak situsnya.

dan dalam pikiran saya, ada beberapa betting yang terjadi, antara lain:

  1. if it goes wrong, maka saya akan kembali pada hakikat “old-fashion” PHP.
  2. if it goes right, maka saya akan menggunakannya pada proyek yang lain!

dan ternyata pengembangan web nya berjalan cukup baik, saya yang membuat frameworknya tidak sadar dengan beberapa fungsi yang ternyata bisa di optimalkan.

saya juga baru mengerti konsep “evolving system”, bahwa pada dasarnya kita mengerjakan sebuah system pada sanitize environment, maka kita bisa melihat bagaimana system tersebut berkembang dari hal yang kecil, menjadi sesuatu yang lebih kompleks. begitu juga framework saya (code::wrox), semua nya dimulai dari hal kecil, lalu berlanjut kepada hal yang lebih advanced, lalu akhirnya sampai kepada optimalisation of code, dimana saya mulai mengerti cara kerja, how to handle it, dll.

misalnya konsep MVC yang saya buat pada awalnya, dimana akhirnya diberikan pencerahan oleh koh Ali, mungkin nanti saya akan pecah lagi Model menjadi 2 paket yaitu Package dan Sanitize dimana akan mempermudah saya dalam melakukan validation dan DDL serta DML pada database.

rencananya nanti framework ini akan saya kembangkan lagi untuk membuat situs pribadi saya, saya juga berusaha untuk menambah “capacity” dan kemampuan dari library! misalnya setelah saya berhasil dengan konsep MVC, which is sedang terkenal sekali saat ini.

saya ingin membangun framework ke sedikit old-fashioned mode, yaitu Component Based (ASP.Net).

saya rasa penggabungan Component Based, dan MVC konsep adalah campuran yang sempurna, dan yang pasti saya akan menggunakan konsep 2 type of model (Package and Sanitize), serta penggunaan Active Records + Simple Query builder yang dulu pernah saya buat (walaupun tidak terlihat manfaatnya, might be karena saya tidak menggunakannya).

dan of course…kembali, dan sekali lagi saya akan mengerjakannya di Bali…

which is yang membuat saya gagal mengembangkan code::wrox dari v.0.1 ke 0.2…hanya karena ketika di Bali, saya lebih banyak memegang gitar dan pesiapan pentas, daripada coding di depan komputer, lol.

semoga saja, besok di waktu yang sempit (might be, I’ll blew up my holiday plan later on…which is sucks!), saya akan mengerjakan situs saya, dan saya ketika saya pulang saya juga punya 1 PR dari ibu saya.

“kamu mau bikin bisnis apa?!”

somehow, gw pingin bilang…pingin bikin bisnis makanan yang bernuansa lounge + wifi access, tapi ketika melihat suasana dan potensi market di kota saya, saya lalu mundur dan mulai mengkompress ide itu, dan mengembangkannya untuk hal lain…might be I can get another idea that ‘fun’!

moral of the post? jangan takut pada system yang premature, somehow you can get a benefit, whats’ ever the result. entah itu pengalaman untuk tidak mengulangi penggunaan konsep yang sama ketika membangun system kembali. atau malah bisa mengembangkan system tersebut menjadi system yang solid, dan tidak premature!

jangan berhenti, terus berusaha, dan percaya…that you can do it! and right now I believe, I’ll create the best framework, for my self!

[project] code::wrox – the controller!

hari ini saya masih melek sampai jam 4…tanpa saya sadari saya mengerjakan banyak sekali project non-profitable dari saya yang bernama “code::wrox” ini.

hari ini saya membuat sebuah template parser, yang sedari kemarin belum saya wujudkan, bahkan saya sudah berhasil melalukan renderin component untuk  template tersebut. saya sadar, ada baiknya saya tetap mengedepankan keinginan user, dalam urusan penanganan kesalahan, dll. saya cukup membuat fungsi form yang sederhana, dan urusan verifikasi data, saya serahkan kepada masing-masing orang yang menggunakan code::wrox. dan ada baiknya, saya akan mencoba dulu pengalaman saya menggunakan code::wrox dalam membangun situs KMH.

dengan pengalaman itu, maka saya bisa mengambil titik apa yang masih perlu di kembangkan, dan apa yang tidak perlu! :)

namun bukan template parser yang cukup menguras otak saya, namun lebih ke pada Controller yang bertugas sebagai extends class yang bertugas untuk menyajikan antar muka kepada user.

controller sendiri memiliki sebuah fitur yang saya sebut…

“auto extends variable”

terjemahan sederhananya seperti ini…

jika kita memiliki sebuah class database, maka kita tidak perlu melakukan definisi terhadap database itu kembali. namun kita cukup menggunakan nama class itu untuk menggunakan database tersebut. oke contoh gampang!

ada sebuah class bernama cwxDatabase (ignore the cwx, karena prefix ini akan di hapus!)

pada controller untuk menggunakan class cwxDatabase, kita bisa saja menulis

$x = new cwxDatabase();
$x->connect();

dalam artian, kita membuat sebuah class database yang baru dan disimpan pada variable $x. namun dengan fitus “auto extends variable”, maka secara otomatis di buat sebuah variable bernama $database (menyesuaikan nama class). dan untuk menggunakannya pun anda cukup menulis:

$this->database->connect();

hemat code, dan mempermudah user!

menurut saya, cara ini akan enrich the user, lagipula saya lebih suka cara seperti ini, daripada saya melakukan pembuatan variable asal-asalan dan berlebihan. dan cara yang saya contek dari Code Igniter ini benar-benar membuat saya cukup berpikir malam ini…

entah karena saya memang sedang bingung, karena banyak hal yang belum terselesaikan, atau saya bingung karena saya tidak bisa tidur…atau saya bingung karena memang saya tidak tahun, atau mungkin saya bingung karena saya mulai merasakan kalau saya kehilangan dia…

oke, saya jadi ingat maliq…mari bernyanyi…

“diaaaaaa…seperti apa yang selalu ku nantikan aku inginkan
diaaaaa… melihatku apa adanya seakan kusempurna”

mungkin lagu itu harus di balik, dari “dia” menjadi “aku”, atau “saya!”…hehehehe….

see ya at another post! :) … wismilak! ;)

[project] code::wrox – released – prealpha

akhirnya setelah melakukan coding beberapa hari, mencoba menghalau beberapa mata kuliah, dan sibuk mengerjakan code::wrox. bahkan lupa kalau sebenarnya dalam masa ujian, akhirnya kemarin code::wrox resmi bisa digunakan… :D … yay!

walaupun masih dalam tahap dasar, dan konsep yang masih “raw” di beberapa tempat, tapi setidaknya saya sudah berhasil mewujudkan beberapa titik dasar dari initial release code::wrox, yaitu :

  1. database
    as I told, bagian ini yang menguras banyak hal dan keringat. saya sendiri bahkan sampai melakukan code hingga 700 baris hanya untuk sebuah “active records”. namun tentu saja hal ini sangat menyenangkan apalagi melihat berhasilnya active records, dan sampai saat ini belum di temukan bug yang berarti.
  2. security
    bagian ini sebenarnya tambahan, tetapi ternyata sukses dan berhasil cukup baik. kegunaanya hanya untuk melakukan proteksi pada suatu page dengan sebuah static password. namun nantinya user bisa saja menambahkan password tersendiri untuk halaman.
    hal ini tentu saja setelah saya selesai membuat MODULE news.
  3. manager
    ini komponen yang paling penting menurut saya. dia mengatur keluar masuknya variable di dalam framework. dia yang mengatur GET, POST, dan SESSION dalam sebuah variable static yang mudah di gunakan. :D
  4. controller
    model dasar dari template. masih terlihat sederhana, dan belum kompleks-kompleks amat. tetapi tentu saja setidaknya saat ini si controller sudah bisa memberikan “UI” kepada user dari class yang dimilikinya. OOP Concept everywhere…hehehehe…
  5. loader
    yang ini salah satu core dari code::wrox, dan tentu saja komponen ini sudah selesai pada beberapa bagian. misalnya dalam hal load model, ataupun load library. hanya saja masih ada beberapa titik yang harus di benahi.

dan setelah 5 komponen utama itu selesai, maka saya berani membuat sebuah web kecil, tanpa perlu berpikir dengan menggunakan code::wrox, and IT’S EASY! really!

mungkin karena saya yang menciptakan code::wrox, maka akan terlihat mudah bagi saya untuk membuat code::wrox, namun entah bagi orang lain…semoga saja, pengalaman menyenangkan saya dengan code::wrox bisa berpengaruh kepada orang lain…

nanti! ketika code::wrox benar-benar lahir! wismilak… :D

NB : untuk melihat initial release (pre-alpha) dari code::wrox, visit the link here

[project] code::wrox – Active Records!

setelah meneliti CI, saya melihat model yang benar-benar menarik dan mudah untuk diimplementasikan, dan tentu saja mempermudah user untuk enrich their methode ketika mencoba untuk membuat aplikasi web nya. oleh karena itu saya mencoba mengambil beberapa hal yang di miliki CI, dan saya baru sadar, kalao dokumentasi dari CI adalah dokumentasi framework terbaik, tentu saja Prado adalah sebuah kebingungan, Yii masih penuh kesesatan, namun CI memberikan pengalaman yang cukup menyenangkan terhadap Framework!

dan akhirnya saya mengambil salah satu konsep CI yaitu Active Records. sebenarnya AR juga ada pada Frame Work yang lain, dengan konsep yang sama tentu saja. dan kali ini saya menggunakan prinsip CI dalam pembuatan active records.

dalam prakteknya Active Records bisa digunakan untuk melakukan Select, Insert, Update, ataupun Delete. jadi sebenarnya AR ini adalah kemudahan dari Statement dan Statement Manipulate dalam 1 class. interfaces dan methode yang sederhana juga digunakan dalam AR, dimana hanya sedikit sekali SQL hard code yang digunakan.

berikut adalah contoh dari Active Records di code::wrox

$x = new cwxDatabase('localhost','root','');
$x->connect('db_epic');

$stmt = $x->prepareActiveRecords();
$stmt->select('username,password,lastlogin');
$stmt->select_sum('banyak','total');
$stmt->distinct();
$stmt->from('user','test','hasil');
$stmt->join('pasukan_detail','user.userid = pasukan_detail.userid');
$stmt->join('pasukan','pasukan_detail.pasukanid = pasukan.pasukanid');
$stmt->where('username','=','billy');
$stmt->where_or('username','=','yperkasa');
$stmt->group_by('username, password, lastlogin');
$stmt->having('SUM(banyak)','>','10');
$stmt->order_by('username','DESC');
$stmt->get();
$hasil = $stmt->result('object');

nantinya hasil dapat di ambil dalam 2 bentuk, yaitu “object” ataupun “array”. ketika kita memanggil fungsi “get” untuk melakukan compile terhadap query. maka seluruh variable query kita dihapus. dan setelah kita mengambil hasilnya dengan fungsi “result”, maka object result akan dihapus dari class.

mungkin saya terlalu banyak berpikir dalam memory management, dan saya setidaknya ingin sekali menerapkan “cache” pada AR. namun sepertinya saya masih belum begitu mengerti konsep cache…kecuali ada penjelasan yang mumpuni untuk mengatasi kekurangan dalam otak saya… :D

dalam penggunaannya sendiri “$hasil” nanti dapat di tulis seperti berikut:

while($row = mysql_fetch_assoc($hasil)) {
          print_r($row);
}

atau yang lain…

akhirnya saya tidak bergerak ke class security, namun masih berkutat pada library DB Core…mungkin masih banyak potensi DB yang belum saya ambil! tapi saya rasa, setelah saya menyelesaikan AR ini (tinggal Insert, Update, dan Delete), maka saya akan lanjut ke library yang lain! :)

[project] code::wrox – authentication

malam ini saya berusaha menyelesaikan 1 class dari code::wrox, mengingat besok adalah waktunya belajar untuk mempersiapkan diri tanggal 3 ujian Data Warehouse. so, saya mencoba mengerjakana class authentication untuk code::wrox malam ini, and luckily I did it! :)

sebenarnya library “auth” ini ada 2, ada class authentication, dan class security. dimana class security merupakan turunan dari class authentication. di-class security, kita bisa melakukan pengesetan level, mengeset page protected, atau private view, dll.

namun sayangnya, sepertinya untuk class security, saya tidak bisa kerjakan hari ini.

untuk authentication sendiri, menggunakan class database, dan class statement dari library dbcore dalam implementasinya.

untuk penggunaannya sendiri cukup sederhana…

$x = new cwxAuthentication();
$res = $x->getUserLogged();
if($user != '' && $password != '' && $res == false) {
$res = $x->authentication('user','username',$user,'password',md5($password));
}

hanya terdapat fungsi authentication dimana dengan argumen authentication(‘tablename’,'userfield’,'username’,'passwordfield’,'password’);

nantinya fungsi ini akan menghasilkan nilai TRUE dan FALSE, serta menyimpan data kita di SESSION. saya ingin sekali membuat sebuah class SessionManager, sehingga ketika saya ingin rubah modenya untuk cookie, atau session, saya cukup melakukan edit pada class tersebut, namun untuk sementara saya rasa, saya akan berjalan pada penggunaan session dari PHP.

oke…Authentication done…next is class Security! :D

[project] code::wrox – database class upgrade!

sambil mencoba mencari-cari referensi tentang pembuatan framework pada PHP yang berujung pada sebuah buku dari PACKT yang berjudul PHP 5 CMS Framework Development. saya dihinggapi sebuah kekecewaan, karena rupanya buku itu jauh dari bayangan saya…saya lebih menyukai pegangan seperti Advanced PHP5 dari SAMS, daripada buku ini untuk menahkodai saya dalam pembuatan Framework.

kenapa saya tidak suka?? mungkin tidak usah dibahas… ;)

namun dari hal itu, saya mencoba memikirkan tentang beberapa hal yang harusnya saya pikirkan ketika saya membuat sebuah class Statement, yang merupakan bagian dari DBCore di Code::Wrox, yaitu :

“cara insert, update, dan delete!”

sebuah pertanyaan sederhana…karena rupanya konsep Statement yang saya gunakan tadi begitu “user friendly” untuk urusan “select” pada database. namun rupanya masih memberatkan user, karena rupanya mereka perlu melakukan hardcode terhadap query yang ingin di insert. misalnya saja, saya ingin memasukan data :

user -> adi martha
password -> 12345

pada database db_test pada table user.

maka yang harus saya lakukan pada DB Core adalah (asumsi saya sudah melakukan load class terhadap db core)

$x = new cwxDatabase('localhost','root','');
$x->connect('db_test');
$stmt = $x->prepare("INSERT INTO user(user, password) VALUES('adi martha','12345')");
$stmt->execute();

masih terbilang sederhana memang…namun tetap saja menurut saya kurang “user friendly”. jadi saya memutuskan mengambil konsep PRADO (sekali lagi), dalam menghandle Insert, Update, dan Delete.

masalah muncul, karena ternyata class Statement bisa terdiri dari multi table, dan tentu saja menyulitkan saya untuk membuat sebuah upgrade kecil agar bisa melakukan insert, update, atau delete. karena pada dasarnya PRADO hanya melakukan load pada 1 table, yang di atur pada sebuah controller yang kita buat. pada bagian ini saya kurang menyukai “keluwesan” dari sebuah PRADO.

lalu akhirnya saya memutuskan untuk membuat sebuah class baru sebagai bagian dari DBCore, yaitu class StatementManipulate.

untuk itu di class Database saya menambah sebuah fungsi yaitu prepareManipulate.

seberapa mudah menggunakan class StatementManipulate?! let see. anggap saja kita sudah melakukan load terhadap class dbcore.

$x = new cwxDatabase('localhost','root','');
$x->connect('db_test');
$stmt = $x->prepareManipulate('user'); // memanipulasi tabel user
$stmt->setFields('user','adi martha');
$stmt->setFields('password','12345');
$stmt->insert(); // masukan data

lihat…bahkan tidak ada “hard code” SQL disana…begitu mudahnya, karena selain mengambil konsep prado, saya juga menggunakan konsep dan kebiasaan saya pada VB ketika memikirkan dan membuat class ini.

selain fungsi insert, dan setFields, terdapat juga fungsi setClause($key, $value), update(), dan delete(). jika kita menggunakan fungsi insert maka yang dilihat hanya fungsi setFields. jika kita menggunakan fungsi update maka yang dilihat adalah fungsi setFields dan setClause, sedangkan jika kita menggunakan fungsi delete maka yang dilihat hanya setClause.

any how…akhirnya class DBCore selesai dengan tuntas…dan sekarang saya sedang memikirkan class apa selanjutnya yang akan saya kerjakan. mungkin saya akan mengerjakan class Authentication. atau mungkin class-class lainnya, yang lebih mudah…apa?! saya sendiri tidak tahu… :D

[project] code::wrox – database class

well, akhirnya setelah kemarin sukses dengan loader, dan mengerjakan class Database sedikit, akhirnya hari ini saya merombak total class database yang saya buat kemarin. karena setelah saya pikir-pikir dengan standard function seperti itu, maka class database sepertinya tidak diperlukan, karena toh, dengan gaya “biasa”, atau “hard code” pun kita masih bisa melakukannya dengan panjang line code, dan kemudahan yang sama. akhirnya saya memutuskan untuk mencoba menambah fitur dari class database yang dibuat.

pikiran saya tertuju kepada PRADO dan beberapa framework yang membagi core DB menjadi 2, yaitu 1 yang melakukan handle terhadap koneksi, dan 1 lagi yang melakukan handle terhadap Statement, atau result.

jadi saya berkaca pada konsep itu dan mencoba membuat class database dan class statement. yang nantinya akan di-link menggunakan class dbcore, untuk mempermudah dalam import class.

setelah class database, dan class statement selesai, saya berpikir tentang penggunaan “binding” yang tentu saja mempermudah programmer dalam menentukan variable di dalam query yang akan diexecute. saya sendiri sering menggunakan binding di prado. dan tentu saja fitur ini sungguh mempermudah saya dalam merancang query, tanpa perlu memikirkan tanda ‘ (petik) di dalam query.

akhirnya saya rubah database saya dan menyisipkan fitur “prepare” yang bertugas sebagai perantara untuk membuat sebuah statement yang baru, dan fungsi execute saya pindah ke binding, dimana nantinya binding ini akan melakukan format query.

dan setelah beberapa lama, akhirnya class database dan class statement hari ini selesai. saya sudah membuat sebuah class exception, untuk menghandle custom error. sayangnya saya masih bingung dalam implementnya. karena tentu saja saya masih begitu baru dalam hal php… :”> …

akhirnya saya menggunakan class Exception built dari PHP untuk sementara. :)

any how, cara menggunakan database class sangat sederhana. kurang lebih seperti ini.

// masukan define! ;)
include("library/define.php");

// test 2...connect ke database
// retrieve data via statement

// load si loader
include("library/codewrox/loader/loader.php");
// load class-class yang perlu misalnya coreexception!

// kita load class database
CWXImport("codewrox.db.dbcore");

$x = new cwxDatabase('localhost','root','');
$x->connect('db_epic');
$stmt = $x->prepare("SELECT nama, banyak FROM pasukan_detail PD JOIN pasukan P ON PD.pasukanid = P.pasukanID JOIN user U ON PD.userid = U.userid WHERE U.username = :1 OR U.username = :2");
$stmt->execute('billy','yperkasa');

while($row = $stmt->fetch_assoc()) {
print_r($row);
echo("
");
}

bisa di lihat, saya melakukan binding 2 variable yaitu :1, dan :2 dimana nantinya :1 akan diisi ‘billy’, dan :2 akan diisi ‘yperkasa’.

untuk menampilkan hasilnya saya menggunakan fungsi yang saya buat sendiri pada class statement. yaitu “fetch_assoc“, selain fetch_assoc, terdapat juga fungsi fetch_row, dan fetchall_assoc yang akan melakukan return data dalam bentuk array.

hasilnya sendiri berbentuk seperti berikut:

Array ( [nama] => UFO [banyak] => 3 )
Array ( [nama] => Alien type I [banyak] => 1 )
Array ( [nama] => Alien II [banyak] => 1 )
Array ( [nama] => Alien IV [banyak] => 3 )
Array ( [nama] => The Destructor [banyak] => 3 )
Array ( [nama] => Fortress [banyak] => 13 )
Array ( [nama] => Grizzly Tank [banyak] => 2 )
Array ( [nama] => Pegasus Tank [banyak] => 2 )

result ini di dapat setelah melewati beberapa error, dan debugging…mungkin masih banyak flaw. namun saya rasa, setidaknya saya ingin menjadikan base class ini selesai dulu semua. membangun sebuah project sederhana sekalian mencari flaw dari framework yang saya bangun ini…

wismilak… :D

slightly movement of Code Wrox : The Loader

setelah tadi pagi saya diguyur oleh sebuah pertanyaan yang benar-benar “kurang ajar”, siksaan kekal dari dosen-dosen Teknik Kompilasi, karena saya harus mengerjakan state dari 0-18 lebih dari 30 menit…dan itu menghabiskan waktu saya, karena total ujian kali ini hanya 100 menit, dan 4 soal yang tampil bukan soal yang biasa-biasa saja…soalnya sungguh-sungguh panjang!

oke, mari kita lupakan sejenak…sambil mencuci baju, dan mengawasi nya, kalau-kalau ternyata sudah waktunya memasukan pewangi pakaian. saya mencoba untuk melepas sedikit, ide saya yang saya kumpulkan tadi pagi, ketika saya sedang mencoba untuk membuka mata secara penuh.

jadi saya membuat “sebuah langkah awal” untuk code::wrox.

langkah awalnya tentu saja sebuah LOADER, yang bisa digunakan untuk menload library, dan class-class yang digunakan nantinya pada framework yang akan saya buat. loader bertugas untuk mengatur, melakukan management, dll, terhadap library yang akan digunakan. nantinya saya harus membuat sebuah loader untuk component, dan bagian untuk merender nya.

begini bentuk awal penggunaan dari Loader di code::wrox,

include("library/define.php");
include("library/codewrox/loader/loader.php");
// kita load class database
CWXImport("codewrox.db.database");
CWXImport("codewrox.auth.authentication"); // test lagi! ;) ...
// gunakan class nya...
$x = new cwxDatabase;
$x->setTest("test aja!");
echo $x->getTest();
viewLoadClass();

dan ini yang kita dapat… :D

Result of code::wrox Loader Test

bisa di liat, kalau “test aja!” di dapat dari class database. dan bisa dilihat ada 2 class yang di load, yaitu class “cwxDatabase”, dan class “cwxAuthentication”… :D

selightly movement…tapi setidaknya ini memberikan sebuah harapan kepada saya untuk bisa mengerjakannya hingga tuntas! :D

the initial release of codename : ‘Code Wrox’!

entah kenapa, saya sedari kemarin begitu “exciting” berpikir tentang hal yang begitu megah. tentu saja bukan pesta pernikahan ataupun hal-hal sejenis…namun lebih kepada filosofi tentang “programming” yang saya anut.

beberapa hari ini saya memikirkan tentang situs KMH yang akan saya buat, ketika saya sampai di Bali nanti. saya ingin sekali merancang situs yang benar-benar “ajaib” dan benar-benar user friendly, serta full of costumization! :D

saya sempat berpikir untuk menggunakan CI (Code Igniter) untuk melakukan development. sekalian belajar, begitu pikir saya…lagipula kalau saya menggunakan PRADO maka situs ini akan sangat-sangat-sangat berat sekali untuk di LOAD, karena FRAMEWORK PRADO yang kompleks!

namun saya kembali mencoba menantang visualisasi saya, dan mencoba untuk mencari…

“seberapa jauh sebenarnya saya sudah berjalan”

dan 2 hari ini saya mencoba merancang sebuah “skema” dasar tentang FRAMEWORK yang saya namain “codewrox!”

dan hari ini ketika harusnya saya memikirkan tentang Augmented Tree, dan Grammar…saya malah berkutat dalam PHP, dan menciptakan sebuah initial release…dari 2 buah “core class” yang nantinya akan membangun CODEWROX! saya menciptakan sebuah class component, dan sebuah turunannya berupa “textbox”.

jadi pada initial release pertama CodeWrox hal yang bisa dilakukannya adalah melakukan “render” terhadap sebuah textbox…dimana untuk melakukan render pada textbox, saya cukup menuliskan…

$x = new TEXTBOX;
$x->init();
$x->setName("test");
$x->setType("text");
$x->render();

secara otomatis nantinya akan muncul sebuah object TEXTBOX ketika saya melakukan preview!! wew…saya pikir akan begitu sulit, namun sepertinya terlihat begitu mudah…walaupun sebenarnya tidak akan mudah!

there’s a long road ahead untuk Code Wrox…dan initial birth ini membuat saya begitu excited…hingga saya bisa bernafas tanpa udara! :D

wismilak, and hope this Code Wrox finish at the end of the vacation! ;)