<$BlogRSDUrl$>

Wednesday, March 31, 2004

Kesesuaian AOP

Senarai kesesuian AOP:
1. caching.
2. logging.
3. mengesahkan nilai pembolehubah berada dlm julat yg dibenarkan.
4. attribute yg dijana oleh sistem (system generated value). Selepas code generator, selitkan aspect utk jana nilai ini betul2 sebelum insert berlaku. Cukup cantik krn code asal tak berubah, jadi kalau kena ubah class ini dan memerlukan dijana semula, code yg diselitkan ini tak hilang dan tetap diselitkan semasa compilation.
5. nilai 'mentah' yg perlu diproses terlebih dahulu sebelum di assign kpd sesuatu attribute. Sama kesnya macam no 4.

Salah satu kelemahan penggunaan code generator ialah, code yg telah dijana tu, seboleh2nya jgn diubah krn katakan kalau perlu tambah attribute, kita perlu jana semula dan code yg telah diubah sebelum ini akan kena overwrite. Kalau nak masukkan semula ke dlm code yg dijana secara manual, setiap kali penjanaan berlaku adalah teramat la lecehnya dan tak produktif. Setakat ini, AOP nampaknya memudahkan yg susah dan menutup kelemahan code generator.

bersambung...

(0) comments

Monday, March 29, 2004

Webwork
Perrgh! Dasat gak gabungan jasper reports dan webwork. Senang betul nak outputkan PDF, CSV, Excel, XML mahupun HTML sebagai report. Yg penting, report kita dah didesign dgn cantik dan sepuas hati, lalu dicompile dpd .xml kpd .jasper. Buat la action class yg mempunyai method yg return Map ke, List ke, dan suruh webwork refer kat method tu dlm view.properties atau kita bubuh terus dlm url.

Bila PDF dah berjaya, yg lain2nya secara automatik diconvertkan, tak payah nak buat apa2 dah. Best gak.

(0) comments

Perbincangan tentang J2ME
kat Javalobby. Ada tips2 yg baik utk memilih telefon mana, serta link ke web site yg informatif.

Lain2 perbincangan
JBossCache ver 1.0
Groovy
Eclipse M8

(0) comments

Java Web Start
1 artikel menarik tentang Java Web Start.

(0) comments

J2ME
3 artikel menarik tentang J2ME:
Java 2 Micro Edition - artikel lama, ok sebagai pengenalan.
Enabling the Wireless Enterprise.
Wireless Messaging.

Nampaknya, J2ME ni secara teorinya, tak la susah sangat. Boleh cuba ni. Mungkin boleh pakai kat tempat kerja. Bolehlah saya perkenalkan nanti.

(0) comments

Sunday, March 28, 2004

AOP

Hehehe, baru je belajar penggunaan this dlm AspectJ. Punya la basic, tapi sebelum ni tak faham kegunaan this. Hanya apabila ada scenario yg memerlukannya, baru terperasan kegunaannya.

this dlm AspectJ ialah utk menghadkan sesuatu pointcut kpd hanya class yg dinyatakan dlm this spt this(rnd.aop.Test) yg menghadkan pointcut ini kpd hanya class Test shj. Kita boleh setkan parent class dan semua child classnya dgn this(rnd.aop.ParentTest+) yg menghadkan pointcut ini kpd hanya class ParentTest dan semua sub class nya.

(0) comments

Tutorial J2EE 1.4
Sun dah hasilkan tutorial baru utk j2ee ver 1.4.
Perbincangan tentangnya di theserverside.

Web software utk hantar CV/resume
Agaknya macam jobstreet kot. jCV. Depa menggunakan MVC framework bernama sofia.

(0) comments

Thursday, March 25, 2004

Spring Framework, doing, doing

OK, spring ver 1.0 dah release. Saya bercadang utk gabungkan, antaranya spring, webwork, aspectj, groovy, dan, sudah tentu, code generator saya :-)

Wow! Besarnya file download spring dgn full dependencies, hampir 20MB! Tapi, ini yg lebih baik dan mudah supaya tak payah susah2 nak download semua file dependencies yg diperlukan. Tak pening kepala.

(0) comments

Wednesday, March 24, 2004

Groovy

Memang best. Artikel tentang groovy di web site The Java News Brief memang best. Jauh lebih mendalam dan lebih mudah difahami dpd docs rasmi groovy sendiri.

Selepas khatam artikel tersebut, saya yakin groovy adalah script yg amat sesuai utk java. Ia lebih power dpd beanshell dan mencampurkan idea2 dpd ruby dan python, sambil mengambil segala yg java boleh beri. Laju pun laju krn script groovy dicompile ke java byte code. Cukup menarik dan power.

(0) comments

Tuesday, March 23, 2004

AOP

AspectWerkz ver 0.10 rc dah release. Al kononnya, terdpt sedikit perubahan kpd cara nak buat aop, dan al kononnya, kelajuannya dah meningkat mangatasi kelajuan aop yg diimplement oleh jboss.

(0) comments

Web site menarik
Tengah baca artikel tentang Groovy (linknya dah diberi sebelum ini) dan dapati artikel tersebut amat baik sekali. Senang2 10x ganda lebih baik dpd artikel yg saya sendiri buat :)

Saya pun check out web site dia dan dapati punya la banyak artikel2 lain tentang Java. Amat menarik web site The Java News Brief ini. Check it out!

(0) comments

Object Oriented

Semasa sedang membaca artikel tentang method equals dlm Java, terbaca tentang Class Employee dan Class Student yg extend Class Person. Termenung sat. Nampaknya, masih ada orang dan mungkin masih ramai yg menggunakan cara design sedemikian iaitu extend/inherit di mana:
Person ialah abstract kpd orang itu sendiri dan
Role ialah abstract peranan yg dimainkan oleh orang tersebut, cthnya peranan pekerja dan peranan pelajar.

Utk saya, saya lebih suka kpd hubungan association antara Orang dan Peranan, bukan hubungan inheritance. Antara sebabnya ialah krn orang boleh ada 1 atau banyak peranan. Saya adalah 1 object orang dgn pelbagai peranan, spt Muslim, Bapa, Suami, Anak, Adik, Pekerja, dll. Walaupun peranan yg mana perlu wujud tu bergantung kpd konteks sistem (ingat, betapa pentingnya kontek ini), tapi, adalah amat mudah utk kebanyakan application mempunyai pelbagai peranan yg perlu dimainkan oleh seseorang.

Pendapat saya ni dipengaruhi, walaupun tak secara exclusive, oleh mamat peter coad dan martin fowler. Kira, mazhab sendiri la krn ikut faham2 sendiri. Betul atau tidak, setakat ini, masih berguna utk saya.

(0) comments

Setahun dah Iraq kena tawan. Kisah sedih seorang kanak2 kat iraq.

(0) comments

Monday, March 22, 2004

Hangat! Pilihanraya dah tamat, tapi kehangatannya masih membara, bahkan macam semakin meningkat, terutamanya kat Terengganu. Apa dah jadi?

(0) comments

Sunday, March 21, 2004

Pada 21/03/2004, berlangsung pilihanraya Malaysia yg ke 11. Buat kali pertamanya, saya percaya saya terjumpa 'hantu' diwaktu pagi. Isteri saya plak, terjumpa sepasang 'hantu' diwaktu petang.

Alangkah baiknya, jika pihak yg berkenaan, menjalankan tugas dgn menahan dan memeriksa 'hantu'2 ini. Instead of tutup sebelah mata shj.

Ish! Tak de plak terjumpa hantu2 ini masa pilihanraya tahun 1999 dulu. Apa dah jadi agaknya yek?

(0) comments

Friday, March 19, 2004

Shooot! Saya dah terlepas 3 good developer. Alhamdulillah masih ada seorang lagi yg masih berminat, tapi ntah bila saya boleh dpt lampu hijau utk ambil dia. Frust gak rasanya. Tak pe la... kena banyak bersabar. Ada hikmah disebalik ini semua.

Semoga projek tu betul2 launch, max sebulan lagi. Kalau jadi, nampaknya kena ambil orang baru... kena bina team baru... sekali lagi.

(0) comments

Thursday, March 18, 2004

Cerita / bincang / membebel tentang OO (Object Oriented) - diambil dpd postings saya kat ittutor

Soalan: ...berkenalan dengan rational rose...tuturial camne nak design....software guna tool2 nie...

...tahap OOAD saya hanyalah sederhana aje. dan, saya tak pandai ajar OOAD ni. dlm salah satu pekerjaan saya sebelum ini, selama lebih 1 tahun saya cuba ajar 2 developer berkeupayaan yg agak baik, tapi, mereka tak faham2 gak.

walau bagaimanapun, beberapa tip saya:
1. case tool spt rational rose dan together cc, hanyalah tools. kemahiran dlm menggunakan tools ini, mahupun kemahiran dlm uml, tidak sedikitpun menjamin kemahiran dlm OOAD.

2. seorang yg mahir dlm OOAD, mampu buat design yg dasat walaupun dgn white board (lebih baik ialah electronic whiteboard, boleh print, tak yah salin), mahupun dgn kertas dan pensil aje.

3. ROI (return on investment) yg maximum utk sesuatu case yg mahal spt rational rose / together cc, ialah apabila sw designer tu, sudah agak mahir dlm OOAD. maka, kemahiran dlm uml dan case tool tersebut menjadi skill sokongan kpd skill utama sw designer iaitu kemahiran OOAD. dikala ini, syarikat mendapat pulangan maksimum atas pelaburan mereka dlm membeli case tool.

4. seorang yg baru nak belajar buat sw design menggunakan OOAD dgn notation uml, di masa yg sama nak guna case tool yg sememangnya agak komplek spt rational rose dan together cc, mungkin menghadapi rintangan yg lebih besar berbanding seorang yg fokus kpd hanya OOAD dan minimal uml, di atas kertas / white board.

5. sekiranya, approach yg terpaksa dilalui ialah bukan dgn menguasai OOAD dulu, tapi menguasai case tool dan uml (ini yg paling kerap berlaku), maka, harapan saya, fahamlah situasai sebenar iaitu uml case tool tidak menjamin design yg baik. anda sebagai sw designer la yg perlu bekerja keras utk hasilkan design yg baik. sambil2 belajar uml case tool, berusaha keraslah utk kuasai OOAD. semoga berjaya.



Soalan: ...bahan rujukan ape dalam OOAD nie...

saya cuba belajar OOAD sekitar tahun 96-97 dulu. masa tu masih guna vb. pi kursus dan beli buku, bahkan beli training CD mamat bernama peter coad sekali. kantul. berpindah ke java yg dikhabarkan lebih oop dpd vb. pun kantul. rasa frust betul. dah lebih 1 tahun belajar OO, tapi masih terkial2 spt:
- ok selepas step ini, nak kena buat apa plak yek?
- betul ke apa yg aku buat ni? spt dlm buku ke, atau syok sendiri? tapi... macam tak betul aje.
- ok, aku dah buat spt dlm buku. rasanya dah betul, tapi sekarang apa plak. dan, mana faedah yg dijanjikan oleh OO ni? tak nampak pun? mana dia janji2 manis mu? penat lelah buat dan pecah kepala, tak dpt pun saya merasai dan menikmati faedah OO yg digembar gemburkan? aku tertipu ka???!!!!

alhamdulillah, syarikat tempat saya kerja ambil seorang OO consultant/mentor. orang tempatan. dia buat OOAD dlm satu projek bersama2 dgn saya. dia guide saya spt semasa go thru user requirements, dia guna use case dan activiti CRC. dlm bulan pertama, lampu dlm kepala saya di'on'kan. alhamdulillah. lepas itu, bahan2 yg saya telah lama beli spt buku dan training CD, membawa makna kpd saya. walaupun tak terus faham, tapi, bila lampu itu di'on'kan, ia ibarat kunci kpd ilmu OOAD yg terpendam dlm buku2 dan pelbagai bahan lagi.

cara yg sama saya cuba dgn kedua2 'apprentice' saya tu, tapi saya gagal.

ringkasnya, saya guna OO mentor utk belajar OOAD ini.


Tambahan chatid kpd jawapan saya dgn menyenaraikan buku2 yg beliau gunakan, menyedarkan saya yg saya ni dah membebel lebih2 plak, tapi tak benar2 jawap soalan. So, saya tambah lagi dgn jawapan tentang buku yg saya guna. Masalahnya, diri ini masih bersemangat lagi nak kongsi pengalaman, akibatnya, membebel lagi...


Kalau buku, yg saya suka antaranya (selain yg chatid nyatakan):
1. Object Modeling in color by peter coad (faham, hayati dan implement kurang dpd 50% aje, tapi tahap yg saya faham tu, saya rasa dah cukup power dah)
2. Analysis Patterns by Martin Fowler (pun sama kesnya spt no 1)
3. Design Patterns by GoF (faham 70%, hayati 50%, selalu implement 30%)
4. OOA in plain english by tak ingat siapa, tapi tak famous. Yg saya ingat pensyarah universiti ntah negara mana, UK rasanya. Basic OOA, membantu dlm memahami asas object modeling.

Satu perkara penting dlm mengharingi kehidupan sebagai seorang sw designer / architect ialah, keyakinan diri yg munasabah. Tak boleh saya tekankan betapa pentingnya keyakinan diri ini.

Yg dimaksudkan dgn munasabah ialah:
Tahu kelemahan kita dan tahu kekuatan kita. jgn pi terlalu jauh dgn ilmu yg belum pernah diterokai sampai susah atau tak boleh nak patah balik. nanti merana. jgn plak takut mencuba, krn takut mencuba akan membantut horizon kita.

Sekiranya ilmu OOAD yg dicuba gagal, atau tidak memberikan hasil yg memuaskan, lebih baik kembali kpd cara yg biasa kita buat, walaupun tak canggih, krn menghasilkan design / object model hanyalah satu bhgn, coding dan maintenance adalah bhgn yg memerlukan usaha yg jauh lebih besar. Lebih baik back track sekarang and fight another day menggunakan ilmu itu dlm projek lain di masa hadapan.

Resort kembali kpd cara lama krn masa coding dan maintenance kelak, kita lebih yakin disebabkan dah pernah buat dan tahu kelemahannya. Kalau semasa mencuba ilmu OOAD yg baru, dan dah terlajak sampai coding, baru 'sesat', pun saya cadangkan back track semula dan mula sekali lagi dgn cara lama. Cara ini adalah lebih rendah risikonya. Biar terlewat sedikit sekarang, dpd terpaksa mengharungi kepahitan dgn design dan code yg kurang difahami, krn api yg disangka kecil mungkin menjadi besar dikemudian hari dan menimbulkan jauh lebih banyak masalah dan kesusahan.

Pengalaman menggunakan ilmu2 OOAD ini sangat berguna utk projek2 dimasa hadapan.

Utk saya, ilmu OOAD yg paling berharga ialah ilmu OOAD yg saya faham dan hayati, yg berjaya dilakukan dlm projek DAN saya dpt rasakan faedahnya. Ilmu OOAD yg paling dasat sekali pun, oleh guru OO yg paling utama sekali pun, tapi, kalau saya tak dpt kuasai, tak faham dan tak yakin masa mencubanya, serta tak dpt merasakan faedahnya, adalah kurang berguna kpd saya.

Dan, fahamlah, so called guru2 OO ni pun mengakui, bhw ilmu2 OOAD berkembang dari masa ke semasa. As time goes on, as more experience diperolehi melalui applying ilmu tersebut dlm projek, ilmu itu sendiri melalui pelbagai bentuk perubahan dan penambahan. Cthnya artikel di ibm developerworks tentang masa depan Use case oleh Ivar Jacobson, pengasas Use case itu sendiri. Maaf, lupa link.

Maksud semua ini ialah, ilmu OO tak statik. Ia sentiasa melalui proses continuous improvement, dari masa ke semasa, mengikut pengalaman yg dilalui oleh practitioner. Oleh itu, kenapa mesti kita ambil bulat2 ilmu ini, walhal ia mungkin berubah lagi dan lagi. Kalau kita sendiri merasakan, semasa applying ilmu tersebut, kita nak ubah sedikit supaya mendapat faedah yg lebih, maka silakan. Jgn takut2. Lakukan krn jika faedah yg diperolehi adalah nyata dan dibukti melalui kejayaannya dlm projek, maka tiada siapa dlm dunia ini yg boleh pertikaikannya.

Inilah keyakinan diri yg saya maksudkan. Yakin utk terokai jln baru, variasi baru. Berani utk keluar dpd landasan yg telah ditetapkan oleh ilmu OO kini. Krn, kayu pengukurnya ialah kejayakan kita dlm projek, bukan banyak mana kita ikut isi kandungan buku2 atau artikel2 OOAD. Kita boleh ikut sebiji macam dlm buku2 dan artikel2 ini, tapi projek mungkin kantol gak.

Tak semua yg ada dlm buku2 dan artikel2 itu baik utk kita guna bagi mengharungi projek kini. Gunalah berpada2, mana2 yg ngam betul dgn kita, gunalah lagi di projek lain. Mana2 yg kantol dgn kita, cepat2 buang dpd projek kini, utk dicuba semula dikemudian hari, di projek yg lain. Mungkin masa kesesuaian belum tiba dan ia mungkin mendatangkan lebih banyak mudharat dpd kebaikan jika diteruskan dlm projek kini.

Yg dimaksudkan dgn kantol ialah, design dan/atau code yg dihasilkan tidak difahami, lebih kpd teragak2, "betul ke ni...?". Usahlah percaya bulat2. Usahlah meletakkan kepercayaan membabi buta walaupun ilmu OO yg dicuba itu dpd maha guru OO. Saya tak menyatakan ia tak berguna. Hanya, mungkin keadaan dan situasi, mungkin tahap dan keupayaan kita belum sampai lagi.

Ini semua pendapat saya aje. Lain orang, lain cara dan keselesaannya. Itu tak salah, bahkan amat sihat krn ia memperkayakan style dunia sw dev.

(0) comments

Wednesday, March 17, 2004

Webwork
Nampaknya tiada apa2 soalan tentang tutorial webwork saya tu. Tak pe la. Rancangan saya utk hasilkan bhgn terakhir tu, saya tarik balik. Cukup la dulu setakat ini. Saya harap setakat yg ada ni, dpt membantu sesiapa yg mencubanya. Kalau ada apa2 soalan, boleh email saya atau post kat ittutor atau raudah.

Artikel2 tentang webwork ini juga boleh digunakan utk belajar tentang:
1. apache ant
2. setup apache tomcat

(0) comments

Tuesday, March 16, 2004

Groovy - scripting dlm Java
Groovy dah disubmitkan ke JSR, supaya dijadikan standard dlm Java. Perbincangannya terdpt di sini.

Artikel2 intro kpd groovy:
Groovy - Scripting for Java
Groooooovy Babe: Jazzing Up Plain Old Java

(0) comments

Monday, March 15, 2004

Alhamdulillah. Notebook saya selamat kembali ke pangkuan. Huray! Dah laju utk run eclipse, tomcat, firefox, dan beberapa dos window. Best!

(0) comments

Seksaan yg dihadapi oleh mereka dlm tahanan di Guatanamo. Semoga Allah memberi kekuatan kpd mereka yg masih ditahan.

Umat Islam terus diseksa dan dianiaya. Kenapa kita masih, dgn rela hati membeli barang2 buatan umat yg hanya mahu menggunakan keuntungan mereka utk teruskan penyeksaan dan kekusaaan mereka ke atas umat Islam? Sudahkah kita mencari alternative?

hmmm... kat mana nak cari pizza yg boleh tahan sedap, dan buatan tempatan? KFC dan McD dah teramat la kurangnya. 2 ke 3 bulan sekali, dpd sebelumnya hampir setiap minggu sekali.

Dlm bidang sw development plak, saya amat menyukai apa yg saya dpt dpd Java. Teknologi2 sekitar Java, sama ada yg rasmi dpd sun atau yg tidak rasmi, yg dibuat oleh 3rd party spt OR mapper hibernate dan castor, AOP AspectJ, Ant, dll, terdpt dgn begitu banyaknya dan powernya, bahkan free dan open source lagi. Utk sistem yg kecil ke sederhana besar, tiada 1 sen pun yg perlu dikeluarkan.


(0) comments

Notebook saya telah dibawa pergi,
meninggalkan saya seorang diri.
Dibawa pergi ke suatu tempat,
untuk meningkat, menambah memory.

Pinjam notebook member sat. Harap cepat2 dpt notebook saya kembali, in one piece, safe and sound.

(0) comments

Sunday, March 14, 2004

Code Generator

Usaha pertama dlm menghasilkan CRUD yg menggunakan webwork dah selesai. Tak perfect, tapi bolehlah. Ada sikit lagi nak buat iaitu nak hasilkan jsp yg boleh digunakan hanya utk view atau read only shj, tak leh modify. Itu sekejap aje.

Lepas ni, saya nak fokus kpd idea tentang code gen generasi ke2. Idea saya ialah utk menjana module dan bukan shj class. Cthnya, saya nak module pengguna yg merangkumi keupayaan CRUD pengguna, pengguna boleh ubah profile mereka, pengguna login, semua data pengguna dah ada spt Orang, Alamat, Email, Telefon, login info, dll. Module pengguna ni boleh ada pelbagai 'model'. Ada yg basic, ada yg menekankan logging setiap tindakan pengguna, dll. Tahap mengancam ialah spt module Building Automation System. Configure aje, lepas tu dia janakan segala yg diperlukan utk hasilkan satu sistem building automation yg lengkap. 1 ke 2 hari boleh siap. Tapi sudah tentu kena ada base code dulu utk sistem tersebut.

Hehehe, berangan2 mat jenin aje la.... ehem, ehem....

(0) comments

Jawapan2 yg dipost kat forum2 tempatan

Soalan apa hardware+software yg perlu ada kalau nak buat satu aplikasi untuk antar sms

Pengalaman saya sendiri:
1. wavecom gsm modem beserta manual AT command nye (lebih kurang rm 1800.00)
2. sim card dpd service provider pilihan kita (celcom ke, digi ke)
3. javacomm.jar utk os yg digunakan.
4. kepakaran utk kawal state semasa melakukan sms serta ambil kira kemungkinan masa hantar sms tu, ada incomming sms lak krn ia akan membatalkan usaha hantar sms kita tu.
5. PC yg lengkap dgn serial port dan JDK.

Kelebihan:
Ini aje yg diperlukan. Tak payah susah payah kena letak server kita kat service provider, bayaq beberapa ribu sebulan, etc.

Kelemahannya:
Slow. Merangkak. 1 sms 1 masa. 1 sms lebih kurang 5-10 saat rasanya. Kalau low volume atau pada peringkat awal, ok la.


Citer dpd kawan saya:
1. Perjanjian atau yg sewaktu dgnnya dgn service provider pilihan kita. Katanya kena bayar lebih kurang rm5,000 sebulan.
2. Service provider bagi interface web service kpd kita. So, kena letak pc / server kita kat LAN service provider utk berinteraksi dgn web service depa.
3. kepakaran utk guna web service ini utk hantar dan terima sms.

Kelebihannya:
laju, lajuuuuu boleh hantar dan terima banyak sms dlm satu masa.

Kelemahannya:
kena sediakan lebih banyak duit dan perlu mohon kat service provider.

Ini info yg saya ada dan dpt tahun lepas. Mungkin sekarang dah outdated.



Soalan Yee Java still dipegang oleh Sun, tapi .NET language tidak dipegang oleh sesiapa sbb ia telah di register di ECMA dan ISO. Jadi puak lain pun boleh buat asal kan ia ikut standard ECMA. Sehingga kini Java masih belum di register lagi.

yup, java masih dipegang oleh sun dari segi copy rightnya, dan hala tuju core teknologinya. siapa yg suka kpd standard, mungkin merasakan ini tak best. terpulang. utk saya, ia bukanlah faktor utama dlm memilih platform utk saya buat development.

utk saya, saya lebih suka ia dipegang oleh sun dpd melepaskannya kpd standard body sampai membolehkan usaha mencemarkannya sehingga menyebabkan java apps tak leh run kat platform2 lain, berjaya dilakukan oleh pihak2 tertentu spt yg berlaku kpd C++.

utk saya, saya suka kebebasan memilih implementation kpd sesuatu standard spt J2EE, dpd yg free spt tomcat dan jetty kpd yg commercial spt orion dan web logic, tanpa risau adakah apps saya masih boleh run 100% atau tidak, menyebabkan saya terpaksa ubah source code. dan yg bestnya, ini tak perlu kpd standard body utk mencapainya.

saya tak tau banyak tentang .net. yg saya faham, .net the language ialah clr. yg diregister kat ecma ialah c#. agaknya clr pun diregisterkan sekali. ntah la. malas nak check.

yg saya faham dpd pelbagai posting dlm internet berbulan2 ke bertahun2 lepas, .net the platform TIDAK diregisterkan sepenuhnya, hanya sebahagian dpd .net the platform shj. saya ingat terbaca tentang 3 core lib/teknologi yg tidak diregisterkan. lupa dah apa ketiga2nya. dah lama dah . dan 3 core lib/teknologi ini adalah antara lib2 yg tidak dpt dibuat oleh implementation .net yg lain spt mono krn ia tidak distandardkan. kalau depa buat juga, ia adalah atas ihsan, bukan kebenaran sepanjang hayat. tak tau la plak perkembangan terkini. dah berubah kot.

saya harap, .net developer berjaya runkan full blown enterprise apps dlm .net windows dan mono. saya harap, semua latest lib/teknologi dpt diperolehi dgn cepatnya di os lain, selepas dikeluarkan di .net windows sendiri. dgn ini, boleh dikatakan, terbuktilah bhw ms memang ikhlas dlm membenarkan os lain juga mempunyai .net platform.

semoga berjaya menuju ke arah bebas os. saya tak keberatan utk join bila ini berlaku.

(0) comments

Friday, March 12, 2004

Artikel dan lain2

Artikel intro kpd SiteMesh, satu tool yg boleh digunakan utk 'mencantumkan' pelbagai view menjadi satu web page. Ia menggunakan Design Pattern Decorator.

Artikel intro kpd 6 scripts yg boleh digunakan dlm Java apps. Saya hanya tahu tentang beashell aje, dan sikit2 tentang groovy. Belum sempat nak mencuba jython.

Produk Roxes ini merupakan Ant task utiliti yg khusus kpd windows spt windows registry and unix properties.

(0) comments

Thursday, March 11, 2004

Artikel dan lain2

Perbincangan tentang Java Generics di TheServerSide. Menarik dan hangat.

Perbincangan tentang Job Scheduling menggunakan lib Quartz dan Java Timer di TheServerSide.

Perbincangan tentang tool bernama JRetroweaver yg berfungsi utk compile code jdk version 1.5 kpd code jdk version 1.4 di TheServerSide.

Kuiz tentang Java Generic.

Artikel tentang menghalang web application dpd dikuasai. Amat menarik. Harap sesiapa yg membuat web apps membacanya.

Artikel tentang sokongan JavaMail terhadap pelbagai jenis protocol. Juga amat menarik. Sesuai kpd sesiapa yg nak keupayaan hantar dan terima email dlm apps mereka.




(0) comments

Wednesday, March 10, 2004

OK, dah berjaya download jdk 1.4.2_04. Come and get it! :-)

(0) comments

Artikel dan lain2

Tiada artikel baru yg telah saya baca hari ini yg boleh saya rekomenkan. Ini krn artikel dlm beg saya dah kehabisan. Lupa nak isi semula semalam. Termenung aje la kat dlm train tadi...

Walau bagaimanapun, terdpt artikel yg macam menarik:
XA Exposed bhgn 3

Selain itu, kononnya jdk 1.4.2_04 dah direlease oleh sun. Ini adalah maintenance release, yg bermaksud, bugs fixes dan sebagainya. Info saya dpt kat javalobby, tapi tara pun. Yg ada ialah jdk 1.4.2_03 yg lama tu. Kena check back lain kali nampaknya.

(0) comments

Tuesday, March 09, 2004

Javaassist

Artikel ke 2 dan artikel ke 3 tentang projek Javaassist. Pun fening baca kedua2 artikel, tapi sedikit sebanyak dpt la idea yg nak disampaikan. Dpd apa yg saya faham, kedua2 artikel ini tidak memberi kesan yg baru utk saya. Saya akan capai kesan spt dlm artikel ini menggunakan AOP implementation spt AspectJ.

Artikel semalam, iaitu tentang Javaassist yg pertama adalah lebih baik dan mampu complement apa yg AOP kurang sesuai.

Idea saya gini:

Step 1: utk sesuatu module, hasilkan object model utk module berkenaan yg mengandungi data dan kelakuan. Guna code generator, tak kira la sape punya. Orang lain punya pun boleh spt AndroMDA. Utk saya, saya guna code gen saya utk jana semua data class module berkenaan. Maka, semua data dah disokong oleh class yg dijana.

Step 2: utk sokong semua kelakuan yg khusus kpd module tersebut, guna Javaassist utk 'gam'kan method2/kelakuan2 kpd data class yg telah dijanakan. Ini menjadikan class tersebut bukan lagi data class, menjadikan ia lebih 'wholesome' atau seimbang. Maka, suka la OO purist/guru spt Martin Fowler :D

Step 3: utk sokong semua kelakuan yg merupakan aspek merangkumi keseluruhan application spt access rights, caching, logging, personalize menu, dan macam2 lagi, guna la AOP yg di'gam' pada kedua2 jenis method iaitu method get/set data dan method kelakuan khusus.

Semua usaha 'gam' ini boleh dilakukan dgn begitu mudah sekali. Masalahnya ialah, dgn kuasa yg hebat, datang sekali tanggungjawab yg besau. Perlu amat berhati2 menggunakan power dasat ini.

Saya yakin, saya dah jumpa the missing link. Masa hasilkan code gen dulu, memang syok krn banyak yg digenerate dgn cun nye. Tapi, masih kantul apabila nak tambah pelbagai kelakuan. Bila berjinak2 dgn AOP, merasa seronok krn boleh tambah pelbagai kelakuan pada method2 get/set dlm data class. Tapi masih kantul krn kelakuan khusus susah dimasukkan ke dlm class. Memasukkannya melalui code generator tu boleh, tapi agak terhad. Dgn keupayaan menambah pelbagai method kpd mana2 class dgn mudah dan transparentnya, maka, hubungan yg terputus ini, rasanya dah dihubungkan.

Yang tinggal, ialah mencubanya, dgn sebenar2 cubaan dan mencari kelemahan yg mungkin ada, serta mendapatkan best practice dlm menggunakannya.

(0) comments

Monday, March 08, 2004

Java - enjin dan magik

Pening sikit baca artikel tentang Java bytecode ini. Faham 50% aje. Tapi, menarik gak, bhgn awal2 tu, serta perbezaan byte code yg dihasilkan dlm 2 penggunaan synchronization, satu kat method declaration dan satu sync block kat dlm method body.

Sekarang ni masih tengah baca artikel tentang menghasilkan magik dgn java byte code menggunakan Javaassist, tapi ia cukup menarik walaupun baru baca 2 ms. Javaassist ini digunakan oleh jboss sebagai enjin utk implementation AOPnya. Kalau tak nak guna AOP, kita masih boleh godek2 spt tambah constructor, tambah method, tambah attribute, tambah dan ubah macam2 lagi pada class yg telah dicompile, masa runtime, sebelum jvm loadkannya.

Selain Javaassist, terdpt juga lib2 yg sewaktu dgnnya spt BCEL, JMangler, dll. Tapi, saya nak cuba Javaassist dulu. Tujuannya ialah utk mencari cara2 utk ubah byte code masa runtime, yg tidak disokong oleh AOP. Saya tak nak terkongkong dgn hanya AOP kalau saya boleh dpt lebih lagi, walaupun AOP shj pun dah teramat la powernya.

(0) comments

Sunday, March 07, 2004

Lagi AOP 3
Lagi artikel tentang AOP, kali ini tentang static crosscutting. Ini adalah keupayaan utk menambah interface, attribute dan method kpd mana2 class kita yg kita mahu. Menggabungkan ini dgn code generator, maka, pelbagai requirements pengguna mampu ditambah dgn mudah. Cara ini menggunakan kekuatan code gen dan dimasa yg sama, menampung kelemahan code generator.


Lain2
Anak lelaki saya dah mencecah 2 bulan usianya. Dah semakin montel. Berat badan sekarang dah naik dpd 3.1 kg semasa lahir kpd 5.4 kg masa timbang hari sabtu lepas. Alhamdulillah.

Hari sabtu lepas pi ke toys r us. Cari2 tak jumpa. Bila tanya kat kaunter, depa kata, produk Lego Mindstrom tu ada, tapi pelanggan kena booking baru depa order. Harganya, hampir RM1,000.00!!! Wow!! Mahal nye! Kena kumpul duit la nampaknya. Ingatkan 3 ke 4 ratus aje. Hmmm, setahun dua lagi kot baru beli. Demi utk ajaq anak2 java programming dgn menjadikan lego mindstorm sebagai learning aid, kena ikat perut la skit. Boleh bapak mereka tumpang sekali :) Selain 1 unit robot, katanya ada sekali dgn 1 kamera dan sensor. Menarik2.

(0) comments

Thursday, March 04, 2004

Lagi AOP 2
Satu lagi penggunaan AOP yg semakin meluas ialah dlm unit testing. Penggunaan AOP dan unit test guna mock objects nampaknya menarik. Mock objects ni mampu mengurangkan kesakitan buat unit test dgn agak banyaknya krn semua kepayahan spt nak setup db utk test sesuatu code bahavior yg memerlukan data dpd db, disimulate je guna mock objek ini. Bahkan, kalau ada socket connection ke, http connection ke, semuanya di'mock'kan.

Kesimpulannya, AOP, unit test guna konsep mock objeks (penggunaan Ant adalah semestinya, tak payah nak sebut pun) adalah satu kombinasi yg mampu menyenangkan developer yg malas buat unit test, dan akibatnya mampu meningkatkan kualiti sesuatu sistem.

Hmmm... tapi.... kombinasi AOP (aspectj), Code Generator (merangkumi OR mapper), Webwork, IoC dan Spring, unit test dan mock objects, dan scripting (groovy, ognl) utk code yg volatile iaitu mudah berubah, biasanya utk code2 business rules dan logic yg pakar (domain expert) masih kurang pasti, beserta berpuluh2 lib\tools FTP (free tapi power), mampu menggegarkan dunia software development! Ceh!

Hehe. Betul gak kata cairo. Depa dan keluarga depa sibuk2 dgn MDA, kita kat sini dah ada macam MDA. Depa dan keluarga depa sibuk2 kata produktiviti depa meningkat sampai 37%, kita kat sini, errrr.... berapa peratus agaknya yek?! Huh cairo? Farid? Yg saya tahu ajakv6 masih guna code gen kita lagi kat SE, ibarat dah 'ketagih' dgn code gen ini setelah diperkenalkan kpdnya. Dia dah malas nak buat sql statement semula.

Ya atau tidak, kita tunggu dan lihat. Saya harap saya berpeluang utk mencuba kombinasi baru ini dlm satu projek yg mencabar. Semoga Allah terus membimbing saya dlm perjuangan ini.


Code Generator

Sibuk meng'upgrade' code generator saya supaya menghasilkan class action dan jsp utk CRUD (create, retrieve, update, delete) spt mana yg saya sudah hasilkan utk struts, bersama2 cairo dulu semasa kat SE. Kali ini buat sorang2. Yg sakitnya bila kena buat bhgn yg tak mahir spt java script. Ish. Nasib baik tak susah sgt. Main hentam keromo pun boleh jalan. Jadi la...

Setakat ini masih tengah convert class action dan jsp utk single object. Model code utk class dan jsp yg menggunakan webwork ini, sebenarnya dah sampai 1 to many, takat 2 layer, single parent. Dah a ok. Yg masih ko nya ialah utk 2 atau lebih layer yg memerlukan support 'kembali ke parent', yg mana parent ada banyak. Masih mencari cara yg lebih senang dpd cara yg saya guna utk struts.


Spring
Dah habis khatam manual dia lebih 2 kali dah. Tapi tengah tunggu depa release ver 1.0 final baru nak godek betul2 utk integratekan spring dgn webwork, dll.


Commuter
Best gak print semua document ni dlm format booklet dan baca kat dlm train. Kalau tak membazir aje 1/2 jam setiap hala.

Kesian dan takziah kpd mereka yg mengalami kemalangan tempoh hari dlm laluan rawang - seremban. Alhamdulillah, tiada kemalangan jiwa.

(0) comments

Wednesday, March 03, 2004

Lagi AOP
Satu yg menarik dlm artikel tentang AOP ialah point dia tentang bagaimana kita boleh ibarat setkan sesuatu standard spt logging atau time stamp kan semua data objects dlm development team kita, yg memberi kesan sekarang dan dimasa hadapan, tanpa developer2 dimasa hadapan perlu kisah atau risau tentangnya. Ini krn aspect yg telah ditulis dan akan terus dicompile bersama dlm application ant build, sentiasa diupdatekan kpd semua class dlm projek, walaupun utk class2 yg akan ditambah oleh developer baru dimasa hadapan.

Jadi, aspect boleh digunakan sebagai .... hehehe .... 'penunggu' utk projek ini. :-)

(0) comments

AOP

2 article manarik tentang asas AOP yg saya terjumpa dan menemani saya kat dlm train:
Improve modularity with aspect-oriented programming
A look at aspect-oriented programming


OO

Semalam, semasa tunggu train dan sedang membaca tentang list dlm python, saya teringat kembali akan hubungan dlm OO. Baru saya teringat kekeliruan yg saya hadapi sampai la ni, tentang hubungan aggregation dan composition. Kedua2nya adalah hubungan yg lebih kuat dpd association.

Cth composition ialah hubungan badan dgn bhgn badan spt jantung, kepala, dll. Tanpa bhgn badan ini, badan tersebut bukan lagi badan yg sempurna. Tanpa badan, bhgn badan ini pun tak berfungsi. Badan dan bhgn badan saling memerlukan.

Cth aggregation ialah hubungan kereta dgn parts kereta spt enjin, tayar, gear box dll. Tanpa parts ini, kereta bukanlah kereta lagi. Tapi, parts2 ini boleh hidup dgn sendiri. Masih dikira lengkap. Boleh digunakan dlm kereta lain.

Inilah cth aggregation dan composition dan selalunya ia boleh diterima oleh pemikiran saya. TAPI...

Saya berpendapat, ia mestilah ada konteks. Ia mesti bergantung kpd konteks.

Dlm konteks sistem pakar bedah, badan dan bhgn badan bukanlah composition, tapi aggregation! Pakar bedah mampu menyimpan bhgn badan tertentu spt buah pinggang dan masukkan ke dlm orang lain, atau menyimpannya (mungkin) utk orang yg sesuai kelak.

Dlm konteks sistem penjual kereta baru, kereta dan parts kereta bukanlah aggregation, tapi composition! Boleh ke penjual kereta jual kereta yg dah walaupun tanpa wiper cermin kereta? Sudah tentu tidak. Pembeli takkan nak terima walaupun penjual kata "ala encik, satu skru je yg tak de, boleh la..."

Jadi, pendapat saya ialah, usahlah kisah sangat definasi aggregation dan composition ini. Yg penting, kita tahu hubungannya adalah kuat dan mampu mendapat faedah dpd menggunakannya dlm model application kita.

Pendapat saya je.

(0) comments

Monday, March 01, 2004

Webwork Bhgn 4

OK, saya dah update file forum.zip. Sila download file terkini, bersaiz hampir 3MB. Ia lengkap dgn jakarta ant yg telah dibuang lemak2 lebihan. Jika terdpt masalah utk mendownload file ini bila diclick, cuba dgn right click kat link tersebut dan pilih Save link to disk atau yg sewaktu dgnnya.

Selepas siap download, unzipkan forum.zip ke, katakan drive d. Ubah semula env.bat spt arahan dlm bhgn 3. File forum.zip kali ini sudah pun mengandungi jakarta ant dlm dir forum\common\lib\development. Jadi, tak perlu download jakarta ant lagi bagi mereka yg belum download.

Arahan tambahan:
1. Dlm dir forum\apps, edit file build.xml yg digunakan oleh ant. Ubah
<property name="tomcat.home" value="c:/jakarta-tomcat-4.1.29"/>
supaya dir jakarta tersebut merujuk kpd dir sebenar dlm pc anda. Save.

2. Laksanakan arahan ant dlm dir forum\apps. File forum.war yg dihasilkan dlm dir forum\assemble\forum\war akan dicopy secara auto ke dir <dir jakarta>\webapps.

3. Upkan jakarta spt arahan dlm bhgn 3.

4. Bila siap jakarta diupkan, buka browser dan masukkan url ini.

5. Image spt di bawah kelihatan selepas saya masukkan beberapa topik.


6. Image spt di bawah kelihatan selepas saya masukkan beberapa message utk satu2 topik.



Penerangan
Sistem forum ringkas dan mudah ini terdiri dpd 3 bhgn utama:
1. Java source code
2. JSP (Java Server Pages)
3. Konifgurasi

Java source code
Terdpt 3 file java shj utk sistem forum ini iaitu 2 data class dan 1 action class. 2 data class ini ialah Topik.java dan Message.java, kedua2nya dlm package forum. 1 action class ini ialah Forum.java, juga dlm package forum. Class action ini diperlukan oleh webwork yg mengimplement konsep MVC (Model View Controller).

Class action merupakan class controller dlm MVC utk framework webwork ini. Kawalan forum ini dilakukan dlm class Forum. Apa shj perubahan dihadkan kpd hanya class ini, tak perlu mencari2 kat merata2 tempat.
Class Forum ini memproses semua request dpd pengguna spt meminta senarai topik yg ada, insert topik baru, meminta senarai message utk topik yg dipilih, dan insert message utk topik yg dipilih. Keempat2 permintaan yg boleh dibuat oleh pengguna, dilaksanakan oleh controller Forum ini. Selain itu, controller juga menentukan View apa yg hendak dipaparkan selepas memproses permintaan pengguna.

Class Topik dan Message plak adalah class Model dlm MVC. Ketiga2 class ini boleh dilihat dlm dir forum\apps\src\forum.

JSP (Java Server Pages)
Terdpt 2 file jsp yg berada dlm dir forum\apps\jsp iaitu ww_forum_topic_list.jsp dan ww_forum_message_list.jsp. Kedua2 file ini menggunakan banyak tag libraries kepunyaan webwork utk memudahkan kerje. JSP bertindak sebagai View dlm MVC.

Konifgurasi
Terdpt 1 file konfigurasi iaitu view.properties dlm dir forum\apps\xmlfiles\classes. File konfigurasi ini amat penting. Kita declare semua class2 action dan semua view sebenar.

Bhgn ke 5 (dan terakhir rasanya) akan menerangkan lebih terperinci tentang class Forum sebagai controller dan kedua2 JSP sebagai View dan serba sedikit bagaimana nak tambah kpd sistem forum ini.

Begitu banyak lagi yg boleh ditambah kpd sistem forum ini. Harapnya ada yg berusaha utk mencuba.

(0) comments

This page is powered by Blogger. Isn't yours?