<$BlogRSDUrl$>

Thursday, February 24, 2005

Macam2

Hibernate Performance Tips

Swing: Select text on focus gain

Jeff Gannon - seorang ass sucking kpd Bush yg menyamar sebagai pemberita dan menanyakan soalan2 mudah dan memihak kpd bush semasa sesi soal jawab.


SAP lagi

Minggu lepas saya telah berjumpa dgn 2 orang SAP, satu sales manager dan seorang lagi Senior Solution Architect. Mereka nak terangkan tentang SAP Netweaver, satu development environment yg setanding, jika tak lebih lebih hebat dpd development environment IBM dan BEA, mahupun Oracle.

Nampaknya impressive gak aa, di mana, semua application SAP boleh diaccess menggunakan module XI dlm Netweaver. Kiranya, semua application SAP boleh jadi ibarat 3rd party tools. Memang dasat la. Itu kelebihan mereka.

Saya ditugaskan utk menilai apa yg SAP ada dan utk memberi recommendation kpd bos saya. Apabila orang2 SAP ni tanya saya apa pendapat saya tentang produk mereka, saya kata OK, boleh jadi salah satu pilihan utk kami guna.

Sales Manager tu kurang puas hati. Dia cuba meyakinkan saya bhw, SAP adalah pilihan terbaik dan terbagus, semua syarikat2 besar guna, banyak standard yg ada dlm SAP ni, risiko sangat rendah krn begitu banyak syarikat besar guna dan dah begitu lama mereka guna, dan bermacam2 lagi.

Saya terasa macam kena serang dgn taktik Shock and Awe aje. Bertenang, saya cuba tenteramkan diri.

Saya membalas balik dgn mengatakan, kalau ikutkan hati, saya lebih suka develop sendiri system tu krn sistem tersebut bukan la besar sangat dan sistem yg terbaik pada saya ialah sistem yg dibina hasil dpd requirements domain expert dan proses syarikat yg terbaik. Kalau proses syarikat belum cukup bagus, maka domain expert / pakar hendaklah melakukan BPR terhadap proses sedia ada dan apabila proses sedia ada dah boleh diterima, maka barulah sistem dibina mengikut requirements baru tu. SAP ibarat overkill, besar dan mahal. Tapi, saya tidak menolak SAP dan tetap menyatakan bhw ia adalah salah satu pilihan, spt yg diarahkan oleh bos saya sebelum ini.

Sales Manager tu menyerang lagi menggunakan taktik FUD (fear, uncertainty, doubt). Antara FUD dia:

1. Kalau saya design dan develop sendiri sistem tu, sayalah yg paling mahir tentang architecture sistem tersebut. Takde sesiapa yg boleh ganti saya, menjadikan saya boleh demand kat syarikat utk dpt kenaikan gaji 2X ganda. Guna SAP, risiko ini tak berlaku krn SAP akan menjaga pelanggannya.

2. Sistem yg dihasilkan sendiri belum tentu berjaya disiapkan dan merupakan risiko yg tinggi kpd syarikat. Sistem SAP dah siap dgn begitu banyak syarikat besar menggunakannya dan track record dlm production yg begitu baik sekali.

3. Sistem yg dihasilkan sendiri kemungkinan besar tak proven dan tak mampu utk support lebih 400 juta transaction setahun, tanpa apa2 masalah kat production dan tak down. Jumlah 400 juta ni, mamat sales manager tu sendiri.

Jawapan saya:
1.1 Kalau guna SAP, kami kena employ pakar2 SAP dan mereka sememangnya dah mahal. Sales manager tu balas balik mengatakan developer SAP ni murah aje, tak mahal pun. Lagi penipuan manager tu. Lepas perbincangan tu, saya cari kat jobsdb dan memang tak mahal pun gaji mereka ni. 2 tahun pengalaman hanya RM5,000 sebulan aje. 5 tahun pengalaman hanya lebih RM10,000 aje. Hahahahahahahaha. Tak mahal kepala hotak!!!

1.2 Utk buat satu sistem yg kritikal, kita kena la guna methodologi yg sesuai utk nye. Dlm kes ini, saya akan memastikan documentation projek spt use case dan uml diagram adalah lengkap. Selain itu, saya akan memastikan unit test dan test suite adalah selengkap yg boleh utk bertindak sebagai safety net kpd orang seterusnya. Sales manager tu kata uml tak cukup. Saya potong kata2 dia dgn menyatakan betul, tapi dgn unit test, orang seterusnya boleh melakukan apa2 perubahan dgn yakinnya. Dia senyap, saya agak krn dia tak faham unit test tu apa.

2. Saya adalah software architect dan sekiranya projek ini betul2 jadi, saya yg akan bertanggungjawab utk menjayakannya. Ringkasnya, my neck is at stake. Jadi, risiko sesuatu projek itu merupakan risiko yg perlu saya ambil dan pertimbangkan. Pengalaman lebih 9 tahun buat sw dev mengajar saya risiko2 dlm sw dev ini. Sistem yg hendak dibina ini bukan la sistem yg besar dgn saya tak lihat mana2 bhgn yg mungkin boleh jadi technical hurdle kpd menjayakan sistem ini. Domain expert pun ada dan akan melakukan BPR terhadap proses syarikat dulu. Utk saya, risikonya adalah berbaloi utk diambil.

3. Saya adalah developer utama dlm membina satu sistem building automation utk syarikat S dulu yg mana syarikat S dah diploy kat 3 site, bermula dgn wisma mbsa. Sampai sekarang, iaitu dah lebih 4 tahun berjalan tanpa masalah. Proven atau tidak tu? Version baru yg dibina lebih 1 tahun lepas boleh support lebih 5,000 transaction sesaat. Ini bererti, boleh support lebih 400 juta transaction dlm masa beberapa hari aje. Sales manager tu macam tak percaya dan memang tak puas hati. Apa yg ada dlm setiap event tu? Timestamp aje? Saya jawab, selain ada time, ada juga jenis event spt nak on kan ke, kesan off ke, suhu ke, etc. Saya lupa bagitau dia, saya pump sampai 100 juta events ke dlm sistem tersebut secara single burst dan sistem 3 tier tersebut mampu buffer dan hantar dari satu hujung ke satu hujung tanpa masalah dgn selesainya dlm masa tak sampai 1 hari. Saya juga pump beberapa puluh ribu events setiap beberapa saat kpd dlm sistem selama beberapa hari dan sistem tersebut tak crash, masih maintain memory yg digunakan dan masih maintain performance dia. How's that for reliability and performance.

Sales manager tu tiba2 aje tak bercakap balik dah. Macam terkelu lidah dia. Saya cepat2 pujuk dgn menyatakan, saya yakin SAP lebih baik lagi dpd ini, mungkin boleh handle 100 ribu transaction sesaat, tapi point saya, custom development mampu menyokong keperluan syarikat yg sederhana ni. Tak perlu lebih2.

Sepanjang perbincangan, selain menerangkan Netweaver, solution architect tu kurang bercakap. Lebih kpd dengar aje. Perbincangan berakhir tak lama lepas tu.

Amik kaaauuu!!

(2) comments

Wednesday, February 23, 2005

Macam2

PL - provides a simple format to serialize object graphs into a textual representation, coupled with a set of standard data types as well as a free and open source implementation.

The Free Lunch Is Over: A Fundamental Turn Toward Concurrency in Software. Artikel menarik.


Bush

bushin30seconds.

(0) comments

Tuesday, February 22, 2005

Macam2

Practically Groovy: MVC programming with Groovy templates

IIOP Specification: A Closer Look
JavaTM RMI over IIOP
Java RMI over IIOP

Joda-Time 1.0 released - Replacing Date and Calendar

Exceptions: Unfurling Exceptions

(0) comments

Monday, February 21, 2005

Macam2

Mastering EJB 3rd Ed Published, Free Book PDF Available.

Annotations: Finding Annotations at Runtime.
Annotations: Evolving an Annotation - Part 1.
Annotations: Evolving an Annotation - Part 2.

Going Mobile with Duke.
Still on the Road with Duke.
Low-Level Display Access in MIDlets.

Handling file uploads dgn webwork 1.x. Rupa2nya kena download jar dpd projek MultipartRequest . Distribution webwork 1.4 tak de jar dia. Ini utk guna parser pell.

(0) comments

Thursday, February 17, 2005

Dajjal, Iman Mahdi dan Hari Kiamat

Banyak gak dengar cerita/berita tentang ini. Yg pertama tentang 2 gerhana dlm bulan ramadhan tahun ini. Cari punya cari kat internet, tak de plak. Yg ada ialah 2 gerhana dlm bulan ramadhan ialah pada ramadhan tahun 2003. Sila rujuk sini dan sini.

Terjumpa beberapa link menarik:
Hadith Database dan Sunnah and Hadith. Tambahan tentang Imam Mahdi oleh Sahih Muslim dan Sunan Abu_Dawud.
Eclipse in Ramadan and Imam Mahdi.

Keluarga Saud.

Hanya Allah yg lebih mengetahui.


POI

Lama dah tak godek2 poi ni. Sekarang kena godek2 balik krn perlu convert data lama dlm excel sebanyak 1640 consignments dan masukkan ke dlm db yg baru siap. Download dan guna ver 2.5.1. Best. Walaupun dah lama, tapi API depa memang kemas. Yg boringnya mereka guna short, walhal Java default kpd int. Jadi, asyik kena cast ke short aje.

Selain masalah kecik tu, yg lainnya amat memuaskan, termasuk documentation mereka. Saya rujuk "Busy Developers' Guide to HSSF Features". Ringkas dan padat. Best!


OOAD Study Group

OK, dah ada 11 orang. Nak email semua orang. Tengah tunggu email gunx krn saya hanya ada phone no dia aje.

Senarai setakat ini:
1. ryzam
2. mnajem
3. 1kHz
4. nunjimmimya
5. chatid
6. bekabox
7. linuxlah
8. farid
9. cairo
10. gunx
11. deffen

Saya akan email kpd semua tentang tarikh perjumpaan yg pertama, sama ada hari sabtu 26/2 atau ahad 27/2, dan juga tentang tajuk pertama yg nak dibincangkan.

Tunggu...


JGoodies Forms

Dah berjaya develop satu sistem matematik utk anak2 saya, menggunakan Java Swing dan JGoodies Form Layout masa cuti raya cina yg baru lepas. Pening gak baca manual JGoodies Form Layout ni. Nasib baik sample code yg datang sekali tu senang utk difahami. Copy, paste dan modify! Yay! Jalan!

Saya dah tak larat dah nak tanda soalan latihan matematik anak2 saya, terutama yg darjah 3 tu. Dah masuk beribu2. Sistem penjana soalan yg saya buat tu menghasilkan 20 soalan utk setiap 1 muka surat di mana, selain nombor dijana secara rawak, kedudukan jawapan pun adalah secara rawak spt A + B = _ atau A + _ = C atau _ - B = C, dan sebagainya. Pening lalat gak nak tanda bila dah mula masuk ribu2.

Dgn adanya sistem matematik terbaru ni, sistem akan terus bagi jawap dan keep track jumlah yg betul. Yay! Tak payah tanda dah. Next, kena convert problem solving kpd sistem spt ini plak.

Lama gak buat benda ni. Sistem yg baru siap dan menggunakan JGoodies Form Layout ni amik masa 6 ke 8 jam utk siapkan campur, tolak, darab dan bahagi, semuanya secara rawak. Tak pe la. Utk problem solving ni, masa utk belajar Forms Layout dah tara dah. Dan sepatutnya, banyak gak code2 yg boleh direuse. Problem sikit krn nak kena pastikan penjodoh bilangan, dan macam2 lagi grammer betul utk hasilkan soalan dlm BI tu.


Macam2

Annotations: Utilizing the Standard Annotations.

Enrich Java-based web apps with Pragmatic Controls 0.5.

jThinRich.


BMI
Body Mass Index calculator kat sini.

(2) comments

Tuesday, February 15, 2005

Macam2

eXo open source enterprise portal platform 1.0 released.

General: 5 Programs for/by Java Developers.

General: 5 Books for Java Developers. Yay! Saya tak keseorangan dlm menyukai buku Thinking in Java! Yay! Tapi, hampir semua rakan2 yg saya yg saya rekomen buku TiJ tu tak leh terima mereka, berat sangat. Ish! Ish! Ish!

General: 20 Sites for Java Developers.

JUnitScenario 0.1 released. Menarik testing tool ini, kalau betul la ia membolehkan scenario utk di uji dgn baik.

SwarmStream Public Edition: Caching/Fault-Tolerant URLConnection.


Iraq

shocking and awful menggantikan shock and awe.

(0) comments

Sunday, February 13, 2005

Tambahan

Monitoring and Management with J2SE 5.0.

Classworking toolkit: Cover your code with Hansel and Gretel. How complete are your unit tests? Code coverage tools let you find out.

AOP@Work: AOP tools comparison, Part 1. Language mechanisms.

AOP@Work: AOP tools comparison, Part 2. Development environments


OOAD/OOP

Perbincangan tentang OOP kat ittutor, minggu lepas. Input saya:

utk saya, inheritance ni tak mesti digunakan. terdpt cara utk 'memecahkan' sesuatu yg kelihatan spt inheritance kpd composition.

cthnya, sekarang ni, saya kena modelkan consignment note utk pos laju, tnt dan fedex.

satu cara ialah dgn memodalkan 1 base class consignment note dan pos laju, tnt dan fedex sebagai child class yg meng'inherit' base class consignment note tu di mana semua yg common berada dlm base class dan semua yg khusus berada dlm class masing2 (pos laju, tnt, etc)

cara lain ialah menggunakan composition di mana, saya hasilkan satu base class consignment note dan satu interface specific courier yg di implement oleh 3 class iaitu class pos laju, tnt dan fedex. object consignment note ini mempunyai hubungan 1 to 1 dgn salah satu object dpd 3 class ini.

class consignment note ini, kemungkinan besar mempunyai method signiture yg sama atau hampir sama utk kedua2 approach.

utk cth engine di atas, saya suka utk melakukan refactoring bila mendapati class engine yg lama tu, hendak di inherit oleh satu lagi class engine. semua yg common antara kedua2 class engine lama dan baru ini ditarik keluar kedlm satu base class engine dan class engine lama serta class engine yg baru ini, inherit dpd base class engine. ia lebih kemas sikit.



Macam2

Castor 0.9.6 has been released.

Trails video: 11 minute walk through.

TechTalk with Cameron Purdy on Caching.

AOP Tools Comparison.

Text: Freedom with Message Format - Part 1: Intro.

Text: Freedom with Message Format - Part 2: Choice Format.

Text: Freedom with Message Format - Part 3: Localization.

(0) comments

Monday, February 07, 2005

Macam2

Servlets: Generating Images on the Fly.

OpenSymphony Support Forums (Webwork, OSCache, dll).

SwingSet - an open source Java toolkit that allows the standard Java Swing components to be made database-aware.

Jeppers - full featured web-based spreadsheet editor written in Java. It also provides an LGPL grid component that can be used in Swing applications.

SwingGlue introduces a binding layer for Swing in order to get a better maintainable MVC desing an a java swing application. SwingGlue will make the UIDelegate principle simple and more transparent.

JDBC Manager - Java (Swing) front end to connect with every DBMS (Data Base Manager System) that has a JDBC driver.

JFreeChart is a free Java class library for generating charts.

JOpenChart Toolkit - an open source Java library and toolkit for creating different kinds of charts and embedding them into web applications or Swing applications.


(0) comments

Iraq

The Emperor's New Hump


Macam2

ActiveMQ 2.0 released with improved distributed & remote queues.

JSF for nonbelievers: Clearing the FUD about JSF. Open source JSF implementation: MyFaces

Preferences API dan artikel tentangnya di ibm.

FreeMarker is a "template engine"; a generic tool to generate text output (anything from HTML to autogenerated source code) based on templates. - Macam velocity. Dah lama tau benda ni. Posting sekadar for completeness.


(0) comments

Thursday, February 03, 2005

Gmail

Hmmm... Tiba2 aje ada 49 invitation lagi. Errr, sebenarnya 50, tapi baru guna 1. So, sape2 yg nak invitation, bagitau la.


Iraq

What I Heard about Iraq.

Wage Piece Movie. Dpd sini.


Macam2

JSP plugin utk eclipse, percuma utk masa terhad. Jumpa link kat ittutor.

Networked J2ME Applications.


(0) comments

Wednesday, February 02, 2005

Macam2

Write Eclipse JUnit Tests in Jython.

HtmlUnit 1.4 Released.

IO: Moving a Directory.

NIO: High Performance File Copying.

Enums: Advanced Enumeration Ideas.

Collections: Multivalue-per-key Maps.


(0) comments

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