Re: [JUG-Indonesia] barcode in J2ee
Setahu saya, output dari barcode reader adalah string. Sama seperti input dengan keyboard. Kalau mau generate barcode bisa coba library seperti barcode4j. Jasper Report juga bisa embed barcode image. regards, T Budi S 2010/9/7 Then Toni Hidayat tonyjab...@gmail.com Guys, nanya dunk, bisa ngak yah aplikasi java (web base) baca output dari barcode reader? Ada yg pernah coba or punya liks2 bagus untuk di explore? Thanks Tony
Re: [JUG-Indonesia] Referensi tentang java Bluetoth
Coba mulai explore dari sini: http://www.jsr82.com/jsr-82-basics/ Code yg dibuat menggunakan jsr-82 api bisa dijalankan di pc ataupun handset yg mempunyai runtime Java. regards, T Budi S 2010/4/14 Sofyan sofyan.rachma...@yahoo.com Hallo rekan-rekan Jug, Mohon bantuannya dari rekan - rekan jug sekalian untuk memberikan referensi tentang java bluetoth yang nantinya membantu saya untuk mengerjakan tugas membuat aplikasi yang menggunakan bluetoth. terima kasih sebelumnya, Sofyan
Re: [JUG-Indonesia] Re: OOT: Biaya Hidup di malaysia
2010/4/29 Frans Thamura fr...@meruvian.org F born as slave forever slave.. Kata2 ini maksudnya apa yah ? tipikal orang yg merasa jadi bos itu segalanya, dan jadi bawahan itu hina kelana, hahaha. regards, T Budi S
[JUG-Indonesia] OracleDialect: setMaxResults conflicts with LockMode.UPGRADE
Dear juggers, Saya menggunakan Hibernate 3.3.2.GA tapi masih menjumpai masalah yg sama seperti di bawah ini: http://opensource.atlassian.com/projects/hibernate/browse/HB-1467 Mohon sharing dari rekan2 yg punya solusinya. thanks, T Budi S
Re: [JUG-Indonesia] ask - parameter web services
Jax-ws akan menggunakan jaxb utk convert javabean object ke dlm representasi xml-nya. Jadi bisa langsung bikin web service interface dgn parameter atau return value berupa class. Kalau web service tester bawaan netbeans memang tdk bisa dipakai utk input object krn hanya berupa text field component. Regards, T Budi S On 3/8/10, Roberto Fernandez if07...@students.del.ac.id wrote: Iya tipe kelas. Tp contoh nya (yg saya tau) untuk di test web service nya. Aplg saya pake netbeans, nah pd saat di test di browser, misalnya tipe parametrnya adalh objek. Nnt apa yg saya isi??? - Original Message - From: Eko Kurniawan Khannedy echo.khann...@gmail.com To: jug-indonesia@yahoogroups.com Sent: Monday, March 8, 2010 7:59:54 AM GMT +07:00 Bangkok, Hanoi, Jakarta Subject: Re: [JUG-Indonesia] ask - parameter web services Pada 8 Maret 2010 07:53, Roberto Fernandez if07...@students.del.ac.id menulis: Dear all, Saya mau bertanya, saya terbiasa membangun web service menggunakan jax-ws. Yang saya ingin tanyakan bisakah sebuah web service mempunyai parameter yg tipe nya objek. Misal : Student, Lecture etc. Setau saya dalam hal ini baru kita menggunkan file XML schema (XSD). Nah jika membangunnya menggunkan jax-ws (dicode service nya), bgmn membuat xsd yg diperlukan??? Thanks before regard, Roberto Fernandez maksudnya tipe kelas kan, bisa! tar kan sama jax-ws nya di generate jadi XML CMIIW -- Eko Kurniawan Khannedy - twitter : @echo_khannedy - phone : +6285292775999 -- Sent from my mobile device
Re: [JUG-Indonesia] [ask] masalah identity di ORM
Hi Faris, Ada artikel bagus di https://www.hibernate.org/109.html Intinya ada perbedaan antara database identifier (primary key) dan business key. Misal ada tabel Barang dengan kolom ID, KODE, NAMA. Database identifier biasanya adalah ID, dan business key bisa menggunakan KODE saja atau kombinasi dari ID, KODE, dan NAMA. Kita tidak bisa menggunakan ID saja sbg business key karena object yang baru dibuat belum di-persist biasanya belum mempunyai ID. Salam, T Budi S On 12/25/09, Faris milanistic...@yahoo.com wrote: Hai jugers, Di java kan dikenal istilah identity dan equal, sedangkan pada basisdata relasional menggunakan primary key, lalu knp? bukannya langsung bisa mengacu ke primary key untuk membedakan objek yang diambil? Sebenarnya kapan sih masalah identity di ORM pada suatu aplikasi itu muncul?? (bingung mode on) -- Sent from my mobile device
Re: [JUG-Indonesia] ask - JPA
Dear Roberto, Sepertinya library mysql connector perlu ditambahkan ke server Glassfish. Bisa diletakkan di GLASSFISH_HOME/domains/domain1/lib Justru library mysql connector tersebut tidak perlu dimasukkan ke dalam project, karena JPA sudah meng-abstraksi akses ke database. salam, T Budi S 2009/11/26 Roberto Fernandez if07...@students.del.ac.id dear all, saya mempunyai masalah dengan JPA. Exception [TOPLINK-4002] (Oracle TopLink Essentials - 2.1 (Build b60e-fcs (12/23/2008))): oracle.toplink.essentials.exceptions.DatabaseException Internal Exception: java.sql.SQLException: Error in allocating a connection. Cause: Class name is wrong or classpath is not set for : com.mysql.jdbc.jdbc2.optional.MysqlDataSource Error Code: 0 MySql conenctor sudah saya tambahkan ke project. Error itu disebabkan kenapa ya? Saya pake Glassfish v2 Akan tetapi anehnya JPA mau jalan, kadang2 mau ga jalan. Mohon pencerahan. Thanks B4.
Re: [JUG-Indonesia] Re: Log4J - File Log Tidak Ter-Generate (UNSOLVED YET)
Coba cek apakah sudah ditambahkan inisialisasi logger-nya: // initialize logger URL url = Main.class.getResource(/log4j.properties); PropertyConfigurator.configure(url); salam, T Budi S 2009/11/10 putri_chairina putri.chair...@gmail.com Ok. Terima kasih untuk tutorial dari pak Endy. Saya sudah betulkan file konfigurasinya menjadi seperti ini : ## log4j.rootLogger=INFO,konsole,Roll log4j.appender.konsole=org.apache.log4j.ConsoleAppender log4j.appender.konsole.layout=org.apache.log4j.PatternLayout log4j.appender.konsole.layout.ConversionPattern=%d [%t] %-5p %c - %m%n log4j.appender.Roll=org.apache.log4j.RollingFileAppender log4j.appender.Roll.File=D:/tesLog/tes.log log4j.appender.Roll.MaxFileSize=10KB log4j.appender.Roll.MaxBackupIndex=2 log4j.appender.Roll.layout=org.apache.log4j.PatternLayout log4j.appender.Roll.layout.ConversionPattern=%d [%t] %-5p %c - %m%n ## Kemudian dipanggil dalam class sebagai berikut : import org.apache.log4j.Logger; public class TestLogging { private static Logger logger = Logger.getLogger(TestLogging.class); public static void main(String arg[]){ logger.info(test on info); logger.warn(test on warning); logger.error(test on error); } } ### Saya coba buat project baru hanya untuk testing log4j dengan konfigurasi dan pemanggilan seperti di atas. Hasilnya, sukses. Baik itu di konsole maupun file, logging tergenerate. Nah, ketika saya buat di project saya dengan langkah-langkah yang sama, logging tidak berhasil! Tidak ada pesan error, running file berjalan sukses, dan TIDAK ADA pesan logging-nya. :( Duh, kira-kira kenapa ya? Saat ini yang terpikirkan, mungkin ada konflik dg jar lainnya.. Tapi ini juga baru perkiraan. (sok tahu.. :p) Terima kasih atas bantuannya. Putri Chairina http://putrichairina.wordpress.com --- In jug-indonesia@yahoogroups.com jug-indonesia%40yahoogroups.com, putri_chairina putri.chair...@... wrote: Urghh.. Gitu ya.. (garuk2 kepala) Sip lah. Terima kasih, pak. Langsung meluncur ke TKP. Putri Chairina http://putrichairina.wordpress.com --- In jug-indonesia@yahoogroups.com jug-indonesia%40yahoogroups.com, Endy Muhardin endy.muhardin@ wrote: 2009/11/5 PUTRI CHAIRINA putri.chairina@ Hasilnya, ternyata file log tidak ter-generate. File konfignya salah. Pelajari lagi konsep dasar log4j http://endy.artivisi.com/blog/java/menggunakan-log4j/ -- Endy Muhardin http://endy.artivisi.com Y! : endymuhardin -- life learn contribute --
Re: [JUG-Indonesia] Code Coverage (Cobertura vs Emma)
Hi Endy, Apakah pernah bereksperimen dgn UI testing tool seperti SWT Bot (untuk SWT) ? Saya belum tahu apa tool yg bagus utk Swing, apakah ada yg pernah coba ? regards, T Budi S On 8/27/09, Endy Muhardin endy.muhar...@gmail.com wrote: 2009/8/24 uud ashr uuda...@gmail.com uudashr%40gmail.com: Cool emang. Klo di topcoder dulu si yang gw tau harus pake cobertura. Code coverage harus diatas 80%, klo gak segitu gak lolos, jadi tingkat keyakinan component bebas error lebih tinggi (klo testing-nya bener tapi) Sebetulnya tidak menjamin juga. Ada 2 pitfall utama dalam menggunakan test coverage tools : 1. Coverage itu adalah perbandingan antara total test dibandingkan dengan total code dalam scope tertentu. Sedangkan scopenya ditentukan sendiri. Jadi bisa saja terjadi LOC 1000, coverage 80%, tapi yang ditest cuma 80 baris. Gimana caranya? Ya jalankan aja coverage tools di 10% kode. Misalnya, kode untuk UI dan domain model tidak ditest. 2. Coverage tools hanya melihat apakah suatu baris kode sudah pernah dipanggil oleh automated test. Bagaimana cara memanggilnya tidak diperiksa. Bisa saja coverage 80%, tapi hanya happy path yang dijalankan. Karena 2 hal di atas, saat ini di ArtiVisi kita tidak memberlakukan coverage test. Soalnya mostly aplikasi yang kita buat adalah aplikasi bisnis yang UI intensive. Sedangkan kode UI sendiri justru adalah yang paling sulit untuk diautomate testnya. Baik desktop (Swing) apalagi web (HTML + JS). Dalam suatu aplikasi bisnis, kode yang bisa diotomasi testnya biasanya adalah implementasi query database. Ini persentasenya relatif kecil (kira2 20% - 30%) saja dari overall code. Sisanya adalah koding UI, yaitu enable/disable komponen, validasi, parsing input, formatting output, workflow, yang mana sulit untuk diautomate. Kita balik ke old fashion yet proven technique. Test scenario menggunakan spreadsheet dan bug tracker. -- Endy Muhardin http://endy.artivisi.com Y! : endymuhardin -- life learn contribute --
Re: [JUG-Indonesia] interaksi JComboBox
Angel, Mungkin bisa pakai method2 fireContentsChanged, fireIntervalAdded, etc di class javax.swing.AbstractListModel regards, T Budi S On Sat, Aug 22, 2009 at 9:56 PM, Angel Dreamirungk.ubu...@gmail.com wrote: Maaf kepencet Enter (kesend :hammer:) lanjut: lalu KotaComboModel nya: public class KotaComboModel extends AbstractListModel implements ComboBoxModel { private KotaModel kotaModel; private ListKotaModel kotaModelList; private static final String STR_ALL = Pilih Kota; public KotaComboModel() { } public KotaComboModel(ListKotaModel kotaModelList) { this.kotaModelList = kotaModelList; } public ListKotaModel getKotaModelList() { return kotaModelList; } public void setKotaModelList(ListKotaModel kotaModelList) { this.kotaModelList = kotaModelList; } public void addListDataListener(ListDataListener l) { } public void removeListDataListener(ListDataListener l) { } public int getKotaModelId() { if (kotaModel == null) { return -1; } return kotaModel.getIdKota(); } public Object getElementAt(int index) { if (kotaModelList == null) { return null; } if (index == kotaModelList.size()) { return STR_ALL; } return kotaModelList.get(index).getNamaKota(); } public Object getSelectedItem() { if (kotaModel == null) { return STR_ALL; } return kotaModel.getNamaKota(); } public KotaModel getSelectedKotaModel() { return kotaModel; } public int getSize() { if (kotaModelList == null) { return 0; } return kotaModelList.size() + 1; } public void setSelectedItem(Object anItem) { if (kotaModelList == null) { return; } if (anItem == null) { kotaModel = null; return; } if (((String) anItem).equals(STR_ALL)) { kotaModel = null; return; } for (KotaModel tempKotaModel : kotaModelList) { if (tempKotaModel.getNamaKota().equalsIgnoreCase((String) anItem)) { this.kotaModel = tempKotaModel; break; } } } } -- Forwarded message -- From: Angel Dream irungk.ubu...@gmail.com Date: 2009/8/22 Subject: interaksi JComboBox To: jug-indonesia@yahoogroups.com Rekans, Butuh bantuan ni, aku lg stuck buat gimana caranya nge-refresh model yang dipunyai JComboBox, seperti yg dilakukan di modelnya JTable (AbstractTableModel) yg punya fireDataChanged. aku pnya: JComboBox cb = new JComboBox(); lalu aku inisialisasi model: comboModel = new KotaComboModel(kotaList); permasalahannya ketika ada frame lain yg ingin ngrefresh tu combo box ga pernah berhasil. Mohon bantuannya. Thx Rgrds, angel
[JUG-Indonesia] [ASK] JPA Query
Dear juggers, tanya tentang JPA query nih. Ada table utk menyimpan data penjualan dgn kolom2: - nomor_transaksi - kode_barang - qty - harga Misalkan ada transaksi sebagai berikut: - Transaksi 1, nomornya J1, barang yg dijual adalah 2 barang kode A dgn harga 1000 dan 1 barang kode B dgn harga 3000 - Transaksi 2, nomornya J2, barang yg dijual adalah 1 barang kode A dgn harga 1000 dan 3 barang kode B dgn harga 3000. Record yg ada di tabel penjualan adalah: nomor_transaksi | kode_barang | qty| harga J1| A |2 |1000 J1| B |1 |3000 J2| A |1 |1000 J2| B |3 |3000 Saya ingin membuat report penjualan per kode barang yg hasilnya seperti ini: Kode Barang Qty Total Harga --- A3 3000 B412000 Kalau menggunakan native SQL, saya bisa menggunakan query seperti ini: SELECT kode_barang, SUM(qty), SUM(qty * harga) FROM penjualan GROUP BY kode_barang Pertanyaannya, gimana cara melakukan query yg sama dgn JPA ? Karena query seperti ini tidak bisa dilakukan: SELECT e.kode_barang, SUM(e.qty), SUM(e.qty * e.harga) FROM penjualan e GROUP BY e.kode_barang Error ada di sini: SUM(e.qty * e.harga) Karena di daftar BNF query JPA, operasi aritmatika tidak bisa dilakukan di dalam operator SUM Apakah ada rekan2 yg tau solusinya tanpa menggunakan native query ? thanks, T Budi S
Re: [JUG-Indonesia] [ASK] JPA Query
Fyi, pada kasus gw, kalo pake native query melibatkan 4-5 tabel. Padahal kalau ekspresi aritmetika di atas bisa dilakukan, querynya sangat sederhana. Gw sdh sering pakai native query (misal utk menghitung count), tapi utk yg satu ini gw ga rela pake native query, he he T Budi S On 5/15/09, Samuel Franklyn sfrank...@gmail.com wrote: T Budi S wrote: Dear juggers, tanya tentang JPA query nih. Ada table utk menyimpan data penjualan dgn kolom2: - nomor_transaksi - kode_barang - qty - harga Misalkan ada transaksi sebagai berikut: - Transaksi 1, nomornya J1, barang yg dijual adalah 2 barang kode A dgn harga 1000 dan 1 barang kode B dgn harga 3000 - Transaksi 2, nomornya J2, barang yg dijual adalah 1 barang kode A dgn harga 1000 dan 3 barang kode B dgn harga 3000. Record yg ada di tabel penjualan adalah: nomor_transaksi | kode_barang | qty| harga J1| A |2 | 1000 J1| B |1 | 3000 J2| A |1 | 1000 J2| B |3 | 3000 Saya ingin membuat report penjualan per kode barang yg hasilnya seperti ini: Kode Barang Qty Total Harga --- A3 3000 B412000 Kalau menggunakan native SQL, saya bisa menggunakan query seperti ini: SELECT kode_barang, SUM(qty), SUM(qty * harga) FROM penjualan GROUP BY kode_barang Pertanyaannya, gimana cara melakukan query yg sama dgn JPA ? Karena query seperti ini tidak bisa dilakukan: SELECT e.kode_barang, SUM(e.qty), SUM(e.qty * e.harga) FROM penjualan e GROUP BY e.kode_barang Error ada di sini: SUM(e.qty * e.harga) Karena di daftar BNF query JPA, operasi aritmatika tidak bisa dilakukan di dalam operator SUM Apakah ada rekan2 yg tau solusinya tanpa menggunakan native query ? Ini yang namanya maksa. Kenapa ada native query di JPA? Karena tidak semua pengolahan RDBMS bisa dilakukan dengan JPAQL. Kalau memang tidak bisa pakai JPAQL ya pakai native query itu pendekatan yang benar.
[JUG-Indonesia] Lowongan HR Payroll Services Implementer
Dear all, Ada titipan lowongan dari rekan di PT GASI. Benefit yang ditawarkan cukup bagus, tergantung dari kualifikasi kandidat. Lamaran harap dikirimkan via email ke bu Inge (ingsihwati dot setiawan at ptgasi dot com). regards, T Budi S = HR Payroll Services Implementer Job Description To support M-Resource Services Manager for Initial Implementation of M-Resource HR Payroll Services Projects, M-Resource HR Payroll Post Implementation Services, other outsource related services, and support presales activity. Job Category System Analyst, Consultant, Customer Services, Small Team Projects Manager Responsibility 1. Learn and master in using software or tools for the job 2. Document systems related processes or project activities 3. Become Subject Matter Expert in all payroll outsource related services 4. Develop team unit become independent and evaluate team's performance from time to time 5. Involve in knowledge sharing across organization unit 6. Become an anchor person between client, solution architects and operations support 7. Learn and keep up-to-date in HR Payroll world (business processes, concept, rules, cases, and technology) 8. Perform following tasks for Initial Implementation of M-Resource HR Payroll Services Project a. Prepare/setup project environment b. Prepare and maintain Project Schedule c. Conduct customer requirement gathering (Interview customer for requirements) d. Document discussions into a Requirement Definition document e. Prepare a presentation material before a meeting f. Follow-up issues and outstanding items g. Propose or recommend design and/or solution for customer requirements h. Coordinate with supporting team (project admin, developers, etc) i. Regularly reports to M-Resource Services Manager j. Keep project on schedule k. Escalate un-solved issues 9. Perform following tasks for Post Implementation of M-Resource HR Payroll Services a. Prepare/setup post implementation environment b. Keep-track on Annual Service Agreement periods and status c. Document issues, discussions into a support document d. Follow-up issues and outstanding items e. Coordinate with supporting team (project admin, developers, etc) f. Regularly reports to M-Resource Services Manager g. Escalate un-solved issues 10. Supervise HR Payroll Services Staff in providing payroll services to GASI customer 11. Support Sales Department for M-Resource Services pre-sales assignment Qualification 1. Male or female 28 years old or younger 2. Minimum of 3.0 GPA will be an advantage 3. Understand and experienced in HR Payroll business processes 4. Involved in Systems Implementation, Sox, QS9000, BSC, ISO or other quality systems will be an advantage 5. Knowing or understanding of SDLC and WBS, experienced in one Computer Programming, involved in IT Integration project will be a significant advantage 6. Involved in pre-sales, marketing, operations support will be an advantage 7. Understand most HR Payroll concepts 8. Understand and keep up-to-date with government regulation (especially related to Income Tax) 9. Computer Literate 10. Experienced in using following software a. Microsoft Windows b. Advanced Microsoft Excel (basic formula function, filter, lookups, pivot, etc) c. Microsoft Word d. Microsoft PowerPoint e. Microsoft Project f. Microsoft Outlook or Outlook Express g. Adobe Acrobat h. WinZIP i. Microsoft Query Analyzer j. Crystal Report 11. Good communication and analytical skill 12. Able to write and/or speak in English 13. A self starter with positive attitudes 14. Willing to be assigned at customer office 15. Willing to work extra working hours without overtime allowance 16. Able to work under pressure to meet deadline with minimum errors 17. Honest, reliable, good integrity, trustworthy and have strong interpersonal. 18. Able to work independently as well as in a team 19. Able to manage multiple jobs/assignment effectively and efficiently Commitment 1. To learn and keep up to date for HR Payroll world (business processes, concept, rules, regulations, cases, and technology) 2. Not to disclose confidential information to unauthorized person during working hours, non working hours, and even if no longer as GASI employee 3. To be contracted for 1 (one) year period before becoming a permanent or another contract extension or contract termination, depending on overall performance 4. To submit resignation 3 months before effective resignation date Compensation and Benefit 1. Gross Basic Salary 2. Gross Transportation Allowance after 3 months or already assigned
Re: [JUG-Indonesia] Banyuangi in Action
Frans, kq ga mampir di salatiga ? Mahasiswa IT di sana lumayan banyak lho, tanya aja ama Hendro. Ntar gw temenin deh kalo mau, hehe. regards, T Budi S 2009/1/15 Frans Thamura fr...@meruvian.org: hehe makin remote aja gue sekarang tapi lumayan MOU technopreneurship tiap bulan ada aja yang daftar ;) F mampir semarang kan ? CMIIW yah lah, dari jakarta-semarang-kendal-semarang-jakarta makan nasi pindang lagi yah tapi tiap gue makan, asam urat gue naik
[JUG-Indonesia] Peluang onshore contract Sun Sparc Sun Solaris
Dear all, Apakah ada rekan2 juggers yg expert di Sun Sparc Sun Solaris, khususnya bagian access identity ? Ada peluang pekerjaan onshore contract di overseas selama 1-2 thn. Yg berminat silakan japri ya. thanks, T Budi S
Re: [JUG-Indonesia] HQL (HIbernate SQL), sebaiknya kapan dipakai?
kalo maunya pakai SQL Native ya jangan pake Hibernate :) regards, T Budi S 2008/11/4 martinus j wahyudi [EMAIL PROTECTED]: Kenapa pak harus selalu HQL? apa pernah mengalami suatu kasus? siapa tahu bisa buat tambah knowledge ni.. Sincerely, Martin From: Ifnu bima [EMAIL PROTECTED] To: jug-indonesia@yahoogroups.com Sent: Tuesday, 4 November, 2008 16:39:05 Subject: Re: [JUG-Indonesia] HQL (HIbernate SQL), sebaiknya kapan dipakai? Enaknya pake HQL atau SQL Native? selalu gunakan HQL, jangan pernah menggunakan SQL native!!
Re: [JUG-Indonesia] Re: HQL (HIbernate SQL), sebaiknya kapan dipakai?
afaik, jarang ada proyek yg fix ke 1 DB tertentu. seringnya itu hanya di awal2 proyek (saat design). di tengah perjalanan atau pada saat implementasi, seringkali ada permintaan utk ganti DB (nah lhoo). kalaupun mau pakai native sql, penggunaan non standard sql sebaiknya dibatasi spy migrasinya gampang. menurut saya, ORM seperti hibernate cocok digunakan utk aplikasi yg hubungan antar tabelnya kompleks. regards T Budi S 2008/11/5 martinus j wahyudi [EMAIL PROTECTED]: yupe, skrg jadi lebih terang lagi. jadi sebenernya untuk proyek2 yang memang didesain fix architecture (DB selalu pakai 1 jenis saja), ga harus selalu pakai hibernate kan? ini jadi masukan juga buat aku buat mendesain suatu spek software. thx bgt bro.. NB: selama ini sih, aku pikir harus selalu pakai hibernate. ternyata klo jdbc aja cukup, jdbc biasa aja boleh juga kan... Sincerely, Martin From: Donny A. Wijaya [EMAIL PROTECTED] To: jug-indonesia@yahoogroups.com Sent: Tuesday, 4 November, 2008 22:33:08 Subject: [JUG-Indonesia] Re: HQL (HIbernate SQL), sebaiknya kapan dipakai? Tujuan makai ORM kaya hibernate tuh buat bikin aplikasi elo lebih portable antar database platform... sebisa mungkin pakai built-in object querynya... jadi kalau elo makai Hibernate sebisa mungkin elo mau pakai HQL nya Kalau soal speed, elo bisa increase performance elo pakai cache. Cache gak cuma applicable buat aplikasi yg makai ORM aja, tapi untuk segala aplikasi yg makai database. Best Regards, Donny
Re: [JUG-Indonesia] efek unistall install java eclipse (3.4)
hi nasrul, mungkin bisa setting default JRE-nya dulu di Windows - Preferences - Java - Installed JREs. seharusnya masing2 project menggunakan library JRE_CONTAINER, jadi acuan akan terupdate secara otomatis. regards, T Budi S 2008/11/5 Nashroulloh [EMAIL PROTECTED]: Dear all, Kebetulan baru unistall jdk lama, dan install jdk baru Tetapi ketika buka eclipse, semua project jadi error, ternyata lib nya mengacu ke jdk yang tdk ada (uninstall) solusiku: tiap project musti diperbaiki acuan lib nya maunya kan tidak perlu merubah semua project satu2, ada saran ? regards, Nasrul -- Menikmati Hidup Mempersembahkan yang Terbaik -Nashroulloh
[JUG-Indonesia] FREE BETA: Sun Certified Developer for Java Web Services 5 Certification Exam
Sori kl repost. Masih ada waktu 1 hari utk register, buruan. regards, T Budi S == http://saloon.javaranch.com/cgi-bin/ubb/ultimatebb.cgi?ubb=get_topicf=80t=001543 FREE BETA: Sun Certified Developer for Java Web Services 5 Certification Exam Are you a Developer who is responsible for creating web services applications using Java technology components such as those supported by the Glassfish Metro Web service stack and the Java Enterprise Edition 5 platform? If so, this is your opportunity to get involved in the creation of the Java Web Services exam! As a beta tester, you officially test the test and will be able to provide Sun with valuable comments and technical feedback about the Java Web Services questions. The Sun beta exam counts towards official SCDJWS 5 Certification! Beta Dates: October 31st, 2008 thru November 21st, 2008 Registration Exam Start Date: October 29th, 2008 - November 5th, 2008 Passing the exam entitles you to the full status of Sun Certified Developer for Java Web Services 5, and you will receive a Sun certification kit. A certification kit will have your certificate, Logo Agreement and Letter. Candidates will have 240 minutes to complete 160 questions, which should allow you time to respond to all questions and provide your valuable comments while taking the exam. This beta exam is offered Worldwide at any Authorized Prometric Testing Center! Recommended Prerequisites: **Prior to attempting this certification, candidates MUST be certified as a Sun Certified Programmer (SCJP), any edition **Candidates should have at least six to twelve months experience developing Java Web Services BETA EXAM REGISTRATION PROCEDURE Unlike other SUN Microsystems certification exams, this exam does NOT require a voucher. To register for the Sun Certified Developer for Java Web Services 5, exam number (311-230) Beta exam, you may register online at www.prometric.com and follow the prompts. Or, you may register by phone, by calling your regional Prometric registration office, listed at http://www.prometric.com/Sun/default.htm. Asia/Australia 61-2-96405830 Europe 31-320-239-800 Japan 81-0120-107737 Latin America* Contact your local Prometric testing center, listed at www.2test.com USA/Canada 1-800-795-3926 Please contact [EMAIL PROTECTED] for any questions EXAM TESTING OBJECTIVES Section 1: XML Web Service Standards 1.1 Given XML documents, schemas, and fragments determine whether their syntax and form are correct (according to W3C schema) and whether they conform to the WS-I Basic Profile 1.1. 1.2 Describe the use of XML schema in Java EE Web services Section 2: SOAP 1.2 Web Service Standards 2.1 List and describe the encoding types used in a SOAP message. 2.2 Describe the SOAP Processing and Extensibility Model. 2.3 Describe SOAP Message Construct and create a SOAP message that contains an attachment. Section 3: Describing and Publishing (WSDL and UDDI) 3.1 Explain the use of WSDL in Web services, including a description of WSDL's basic elements, binding mechanisms and the basic WSDL operation types as limited by the WS-I Basic Profile 1.1. 3.2 Describe how WSDL enables one to separate the description of the abstract functionality offered by a service from concrete details of a service description such as how and where that functionality is offered. 3.3 Describe the Component Model of WSDL including Descriptions, Interfaces, Bindings, Services and Endpoints. 3.4 Describe the basic functions provided by the UDDI Publish and Inquiry APIs to interact with a UDDI business registry. Section 4: JAX-WS 4.1 Explain JAX-WS technology for building web services and client that communicate using XML 4.2 Given a set of requirements for a Web service, such as transactional needs, and security requirements, design and develop Web service applications that use JAX-WS technology 4.3 Describe the Integrated Stack (I-Stack) which consists of JAX-WS, JAXB, StAX, SAAJ 4.4 Describe and compare JAX-WS development approaches 4.5 Describe the features of JAX-WS including the usage of Java Annotations 4.6 Describe the architecture of JAX_WS including the Tools SPI that define the contract between JAX-WS tools and Java EE. 4.7 Describe creating a Web Service using JAX-WS. 4.8 Describe JAX-WS Client Communications Models 4.9 Given an set of requirements, design and develop a Web service client, such as a Java EE client and a stand-alone client, using JAX-WS. 4.10Given a set of requirements, create and configure a Web service client that accesses a stateful Web service. Section 5: REST, JSON, SOAP and XML Processing APIs (JAXP, JAXB and SAAJ) 5.1 Describe the characteristics of REST Web Services. 5.2 Describe the characteristics of JSON Web Services. 5.3 Compare SAOP web services to REST Web Services. 5.4 Compare SAOP web
[JUG-Indonesia] Tanya Unit Testing untuk Eclipse RCP
Rekan2 juggers, Saya ingin melakukan unit test pada aplikasi GUI yang dibuat dgn Eclipse RCP. Apakah ada saran test framework/tool apa yg bisa dipakai ? Saya baru melakukan evaluasi kilat pada framework/tool berikut: 1. PDE JUnit Test - paling mudah digunakan, krn sdh built in. tapi ada 1 serious drawback, yaitu visibility dari field2 GUI yang mau ditest harus dibuat 'package protected' 2. TPTP - sekilas terlalu kompleks 3. SWTBot - sepertinya bagus, tp lebih ke functional testing, bukan unit testing Mohon sharing dari rekan2 yg sdh berpengalaman di bidang ini. thanks, T Budi S
Re: [JUG-Indonesia] Re: OOT - Review tempat kerja
Hahaha, Joshua kan yg ngurusin Code Camp kemaren. Siapa tau bisa organize, ntar gw ikutan :) Coz sekarang lagi ga bisa komitmen untuk ngurusin another project. Btw, kenapa review disamakan dengan menjelekkan ? Apakah owner2 yang ada di sini takut di-review karena jelek ? :D Toh, walaupun kenyataan memang pahit, at least ada yang ngasih tahu jadi bisa diperbaiki. Daripada diem aja, kasak kusuk di belakang, turn over kayak kursus aja: ganti tahun ajaran ganti employee, haha. regards, T Budi S 2008/9/4 Frans Thamura [EMAIL PROTECTED]: Ada yang tertarik untuk bikin open source project? (hi Josh) kenapa gak lo aja bud ;) menurut gue kalau jelekin perusahaan, jelekin juga pemeirntah, atau buat jadi LSM glassdoor.or.id F
Re: [JUG-Indonesia] Re: OOT - Review tempat kerja
2008/9/4 Frans Thamura [EMAIL PROTECTED]: Technically tidak sulit ... instal any CMS will do. Yang harus dipikirkan adalah, gimana cara menghadapi tuntutan hukum pencemaran nama baik. ;p haha :) kritis ;) sebab endi kan ada perusahaan, ayo yang jelekin nanti dilaporin nanti bayarnya iklan di kompas, seuprit aja 15 juta keluar duit tuh F Iya, bener. Btw, glassdoor kenapa bisa yah? Bukankah lawsuit di US lebih ngeri ? Manfaatnya tetap ada. Contohnya kalo liat review Google: http://www.glassdoor.com/Reviews/Google-Reviews-E9079.htm Kalau reviewnya benar, ternyata Google tidak seenak yg dibayangkan, ada Cons-nya jg. Jadi reviewnya seimbang, apalagi ada bagian Advice. Pada skala lokal, mungkin hampir sama dengan Balicamp. Kelihatan enak, apalagi lokasi di Pacung yang bagus, suasana kerja yang mendukung, dll. Tapi tetap ada cons-nya yg calon employee perlu tahu, sebelum terlanjur menandatangani kontrak, hence lost 1-2 years of their precious time. Pros Cons pasti selalu ada, paling tidak employee punya pertimbangan untuk membuat keputusan, dan employer mendapatkan masukan yang berarti, akhirnya semua happy. regards, T Budi S
Re: [JUG-Indonesia] Re: OOT - Review tempat kerja
Hi Endy, Saya pernah makan di restoran, ada tulisan gede dibingkai, Kalau Anda puas, beritahu teman Anda. Jika Anda tidak puas, beritahu kami Jika anda tidak puas, apakah anda tidak ingin memperingatkan teman agar tidak ada uang (sedikit) waktu yang terbuang ? Nah, waktu jadi karyawan dulu, prinsip ini saya ikuti. Jika ada hal baik, ya silahkan dishare. Jika ada keluhan, sampaikan ke manajemen. Jika ada keluhan, apakah anda tidak ingin memperingatkan teman agar tidak ada (banyak) waktu yang terbuang ? Bagaimanapun juga lebih baik mencegah daripada mengobati, hehe. Kalau perusahaannya memang busuk, siapa pun berhak tahu. glassdoor.com bagus tuh, siapa tau bisa diterapkan di Indonesia. Ada yang tertarik untuk bikin open source project? (hi Josh) regards, T Budi S
Re: [JUG-Indonesia] Re: Java Outsourcing Nightmare.. gimana ngatasinya
On 7/30/08, Joshua Jackson [EMAIL PROTECTED] wrote: Kemarin bos gw ketemu Frans, dan dia seneng dengan movement yang dibikin Frans. Karena movement-nya Frans bisa ngejatuhin harga programmer Java di Indonesia yang semakin melambung tinggi. Kalau dah gini yang jago malah jadi pada kabur ke negeri jiran dong yah? Gw programmer Java, gw ga suka kalo harga programmer Java jatuh -- so gw ga suka movement-nya Frans, hahahaha (just kidding). Kalau memang programmernya punya kualifikasi yg bagus, apa salahnya digaji tinggi ? Kalau mindsetnya cari programmer bagus dgn harga yg murah, jgn harap dunia IT (khususnya Java) di indo bisa maju ... regards, T Budi S
Re: [JUG-Indonesia] OOT Sedih
gw org semarang nih. memang di semarang bisnis IT-nya garing, dl setelah lulus kuliah sempet ngerasain 1 thn tapi ga betah akhirnya kabur ke jakarta, hehe. utk UKM di semarang kelasnya masih desktop app web based yg pakai VB atau PHP aja cukup (CMIIW). perkecualian adalah bank2 perusahaan2 besar yg jumlahnya ga banyak, itu pun ISV-nya dari jakarta. saya akan di semarang selama 1 minggu entah minggu 1 atau 2 di bulan agustus. kalau mau ngadain acara kayak jamu kontak2 yah. regards, T Budi S On 7/21/08, Frans Thamura [EMAIL PROTECTED] wrote: 2008/7/21 toni [EMAIL PROTECTED] honocoroko%40gmail.com: Saya kadang merasah sedih banget melihat perkembangan java di joglosemar ini kenapa ? di jogya, salatiga,solo udah ada jamu sedang di semarang sekali pun belum pernah, apalagi peminat nya sangat sedikit jadi nya pusing juga rasanya, padahal kalau di lihat member jug-joglosemar udah di atas 200 dan sayangnya lagi aku tidak punya acces ke kampus2, maklum lah gak pernah makan kampus . susah, mau belajar aja koq ya susah nya setengah mati ya di jug ada orang semarang gak yah :) tapi ubuntu semarang juga garing kan :) semarang emang garing nih biz IT aja disana garing :) surabaya aja pindah F
Re: [JUG-Indonesia] [Challenge] String to double conversion
Iya, untung sdh ada anggota tim yg khusus menangani masalah ini. Thanks utk semua tanggapannya, kalau sdh ada solusi utk masalah ini akan saya share. regards, T Budi S 2008/6/6 sm96 [EMAIL PROTECTED]: kalo udah main proses data segitu gedenya, mesti berani bikin yang kompleks-kompleks dan berat-berat. tapi hasilnya jadi bagus. memang untuk masalah bulk processing, sangat-sangatlah kompleks urusannya. gak bisa sembarangan pake cara ini dan itu. dan pastinya gak bisa lagi pake cara-cara tradisional dan konvensional. 2008/6/5 T Budi S [EMAIL PROTECTED]: 2008/6/5 Adelwin Handoyo [EMAIL PROTECTED]: Khan tadi katanya langkah berikutnya yaitu optimasi pembacaan dari database khan? Jadi bongkar JDBC dong? :p Maksudnya scr high level :D Bayangan gue bikin nya gini... For each row { String param = rs.getString(1); New SubProcess(param); } Class SubProcess ini akan extends Thread atau implement Runnable... tergantung mana yang lebih baik sih... Jadi while si SubProcess ini baru launch... iteration udah restart lagi dari atas... Lebih cepet... Yang perlu di itung adalah SubProcess ini akan jalan berapa lama... Dan iteration nya sendiri akan seberapa cepet... We don't want too many SubProcess(s) running at the same time... maybe a few hundred shoud be good lah.. Apakah maksudnya ada semacam Process pooling gitu ? Jadi kompleks donk ... Tapi kalo ga dibatasi takutnya OutOfMemory, krn iterasi minimal aja udah 10 ribu. Prosesnya sendiri relatif cepat. No need to worry lah ... Skr overhead justru ada di pembacaan databasenya. thanks anyway :) T Budi S -- syaiful.mukhlis gtalk:[EMAIL PROTECTED]
Re: [JUG-Indonesia] [Challenge] String to double conversion
Hi Feris, Thanks utk info-nya :) Saya belum sempat explore skr. Tapi ini ide yg bagus utk pengembangan ke depan. Ditunggu artikel ETLnya ;) regards, T Budi S 2008/6/5 Feris Thia [EMAIL PROTECTED]: Hi T Budi S, Wow keren, bikin search engine. Ntar boleh info artikelnya :) Kalau dulu saya buat DMS kecil indexingnya pake Lucene, nah karena masih berkaitan dengan Lucene.. akhirnya gue sampe ke Hadoop - sister projectnya ! Mana tau resource ini bisa menambah ide atau fitur di project : 1. Apache Lucene (http://lucene.apache.org/) 2. Apache Hadoop (http://hadoop.apache.org/) 3. Apache Lucene Nutch - web crawling and searching Konsepnya tidak menggunakan relational database, karena kalau prinsip searching nya adalah full text maka konsep dari aplikasi di atas lebih oke. Walau index jg bisa disimpan di db system tapi strukturnya sudah beda. Regards, Feris 2008/6/4 T Budi S [EMAIL PROTECTED]: Lagi bikin search engine :) Untuk detilnya akan saya ekspos ke JUG setelah produknya di-release. Proses intinya kompleks, tp tdk butuh wkt lama. Overheadnya justru ada di database konversi. Mohon maaf detil prosesnya tdk bisa saya ceritakan krn ada Non Disclosure Agreement. regards, T Budi S -- Thanks Best Regards, Feris PT. Putera Handal Indotama A Business Intelligence Company Jl. K.H. Moh Mansyur No. 11 B 8 - 12 Jakarta - Indonesia Phone : +6221-30119353 Fax : +6221-5513483 Mobile : +628176-474-525 http://business-intelligence.phi-integration.com http://blog.komputasiawan.com
Re: [JUG-Indonesia] [Challenge] String to double conversion
2008/6/5 Adelwin Handoyo [EMAIL PROTECTED]: Khan tadi katanya langkah berikutnya yaitu optimasi pembacaan dari database khan? Jadi bongkar JDBC dong? :p Maksudnya scr high level :D Bayangan gue bikin nya gini... For each row { String param = rs.getString(1); New SubProcess(param); } Class SubProcess ini akan extends Thread atau implement Runnable... tergantung mana yang lebih baik sih... Jadi while si SubProcess ini baru launch... iteration udah restart lagi dari atas... Lebih cepet... Yang perlu di itung adalah SubProcess ini akan jalan berapa lama... Dan iteration nya sendiri akan seberapa cepet... We don't want too many SubProcess(s) running at the same time... maybe a few hundred shoud be good lah.. Apakah maksudnya ada semacam Process pooling gitu ? Jadi kompleks donk ... Tapi kalo ga dibatasi takutnya OutOfMemory, krn iterasi minimal aja udah 10 ribu. Prosesnya sendiri relatif cepat. No need to worry lah ... Skr overhead justru ada di pembacaan databasenya. thanks anyway :) T Budi S
Re: [JUG-Indonesia] [Challenge] String to double conversion
Hi Adelwin, 2008/6/4 Adelwin Handoyo [EMAIL PROTECTED]: Kalo mo optimize car abaca dari DB sih wah ok juga.. tapi berarti bongkar JDBC gitu? Waduh .. kalo berhasil kabar2i yah... Hehehhehe Did I say JDBC ? hehehe On the top of my head sih idea nya pembagian tugas menjadi subprocess kecil2 yang masing2 di jadiin thread... Missal nya bisa di bagi2 jadi 3 subprocess... Load value dari database, Parsing string nya... Conversion nya... Jadi pada saat batch kedua mulai parsing... ada subprocess baru yang udah bisa mulai read value dari database nya... Get the idea?? Nice idea. Tapi pseudo code skr: for every row read from the database { parse string convert do some quick calculations } Saat ini pun iterasi langsung akses ke ResultSet object, bcause in the future data bisa sampai 1 juta, jd ga memungkinkan utk disimpan di memory. Ada saran gimana cara mecah2 ke subproses? thanks, T Budi S
Re: [JUG-Indonesia] [Challenge] String to double conversion
Performance database seharusnya sdh cukup bagus. Tapi masalah konversi ini muncul sbg hasil dr profiling yg dilakukan, di mana konversi dilakukan kira2 7 jt kali setiap kali proses djalankan. Ck..ck..ck.. setiap kali proses 7 jt kali? Abis itu cuma dipakai sebentar? Bisa di-cache for future use ga? Maksudnya 7 juta kali konversi :D Saya lihat sendiri di profiling tools-nya. Data gak bisa di-cache krn in the future data bisa mencapai ratusan ribu bahkan jutaan, memorynya bisa jebol :D regards, T Budi S
Re: [JUG-Indonesia] [Challenge] String to double conversion
2008/6/4 sm96 [EMAIL PROTECTED]: biasanya 70 itu yg hancur performance akses databasenya. apa gak ada cara lain, supaya gak perlu 7 jt kali setiap kali proses apa gimana gitu apa kita juga gak boleh tahu nih, sebenarnya mau bikin apaan sih? prosesnya ngapain aja sih? Lagi bikin search engine :) Untuk detilnya akan saya ekspos ke JUG setelah produknya di-release. Proses intinya kompleks, tp tdk butuh wkt lama. Overheadnya justru ada di database konversi. Mohon maaf detil prosesnya tdk bisa saya ceritakan krn ada Non Disclosure Agreement. regards, T Budi S
Re: [JUG-Indonesia] [Challenge] String to double conversion
Wow, thanks a lot Felix. Memang test yg dilakukan quick dirty. Cuma run aja berulang2, ambil hasil yg paling konsisten, hahaha. Double.valueOf memang lbh flexible krn dia melakukan byk pengecekan - krn itu jadi lambat. Saya lupa menyebutkan di awal, bhw ada asumsi yg dipakai utk input: - pasti data numeric, - 100 - tanda negatif titik optional, Krn itu saya bisa menggunakan konversi bikinan sendiri. thanks, T Budi S 2008/6/5 Felix Halim [EMAIL PROTECTED]: Trus, tentang kenapa Double.valueOf bisa lebih lambat itu mungkin karena Double.valueOf lebih flexible: Double.valueOf bisa terima input dalam berbagai macam format: System.out.println(Double.valueOf(1e-2)); System.out.println(Double.valueOf(1.282e-2)); System.out.println(Double.valueOf(38282.11717e-7)); System.out.println(Double.valueOf(38282.11717e7)); System.out.println(Double.valueOf(238476239487623324234234.1231231231243324234234E-19)); Gak heran jalannya lebih lambat, pasti banyak pengecekan di dalamnya. Felix Halim 2008/6/4 Felix Halim [EMAIL PROTECTED]: Untuk yang lain yang ingin melakukan micro-benchmark, kalau bisa test-casesnya di-random. Jangan hanya menggunakan single value seperti: -12.3456 Hasilnya akan sangat bias dan tidak akurat. Untuk T.Budi, saya bikinin testcases random nya. Kamu bisa benchmark menggunakan itu, hasilnya harusnya lebih applicable. Dan, berdasarkan pengalaman benchmark sebelumnya (puts vs. println), Jumlah testcasesnya harus cukup besar sehingga runtimenya adalah hitungan DETIK. Kalau masih ukuran milliseconds masih blum bisa dianggap akurat! (masih bias dengan overhead aneh2). Saat ini hasilnya seperti ini: Double.parseDouble = 1.120404 secs Double.valueOf = 1.146029 secs stringToDouble = 0.502698 secs stringToDoubleFH= 0.467788 secs Double.valueOf itu consistently lebih lambat daripada toDouble bikinan sendiri... Entah kenapa itu... ada yang tahu? Kalau menurut saya, mungkin saja ada pengecekan lain yang membuat Double.valueOf lambat. Entah pengecekan lain itu critical atau tidak (demi precision)? Felix Halim
[JUG-Indonesia] [Challenge] String to double conversion
Dear juggers, Mumpung lg hot2nya bahas thread puts vs System.out.println, gw ada 1 challenge utk optimize string to double conversion method dari class java.lang.Double: public static Double valueOf(double d) Kenapa gw butuh utk optimize ini? Krn di project yg sedang gw kerjakan skr, method valueOf memakan 90% ! process time dr keseluruhan process. FYI, data yg dibaca sekitar 10 ribu (nantinya akan jadi ratusan ribu), setiap row terdiri dari 8 column, di mana setiap column-nya berisi data seperti ini: 13.4375:17.1875:22.5:22.8125:23.4375:3:5:4:3:3:3:5:5:3:4:4:5:3:2:6:2:5:3:6:4:2:5:6:3:5:3:2:7:6:5:2:3:6:5:5:2:4:6:4:6:5:3:4:5:3:3:3:5:6:5:2:2:6:7:5:1:3:4:7:6:4:2:1:5:4:3:3:4:5:6:3:1:6:3:5:1:4:2:3:3:3.5:3.75:3.75:4:3.75:3:3.25:5.25:5:5:2.75:2.75:5.25:4.25:5.25:1.5:4:3.75:5:4.75:3:5:3.75:3.5:4.25:2.25:3.5:6.25:4.5:5.25:2.75:2.75:4.75:6.25:4.75:2.75:2.5:3.25:4:4.5:2.75:4.25:5.5:3.75:4.25:2.5:4.25:4.5:4.25:5.25:3.75:2.75:3.5 Waktu yg dibutuhkan utk meload semua data ini adalah 4547 ms. Kemudian saya mencoba utk menggantikan Double.valueOf method dgn method bikinan saya sendiri, mendapatkan hasil 3718 ms. Code-nya adalah sbb: == public class ConversionHelper { public static double stringToDouble(String s) { char[] cc = s.toCharArray(); int length = cc.length; if (length == 0) return 0; int i = 0; double negation = 1; if (cc[0] == '-') { negation = -1; i++; } int point = -1; int value = 0; for (; ilength; i++) { if (cc[i] == '.') point = i; else value = value * 10 + cc[i] - '0'; } int divider = 1; if (point -1) divider = pow10(length - point - 1); return negation * value / divider; } private static int pow10(int n) { int result = 1; for (int i=0; in; i++) { result *= 10; } return result; } } == Ditest dengan looping 1 juta kali: == @Test public void testPerformance() { long t1 = System.currentTimeMillis(); for (int i = 0; i 100; i++) { //Double.valueOf(-12.3456); ConversionHelper.stringToDouble(-12.3456); } long t2 = System.currentTimeMillis(); System.out.println(Elapsed time = + (t2 - t1) + ms); } == Hasilnya adalah: - Double.valueof(String): Elapsed time = 344 ms - ConversionHelper.stringToDouble: Elapsed time = 157 ms Sori panjang banget :D Thx kalo udah baca smp di sini. Skr saatnya utk menerima challenge utk mendapatkan hasil yg lebih optimal ;) regards, T Budi S
Re: [JUG-Indonesia] [Challenge] String to double conversion
Wow, it works ! Gw ga ngeh kalo implementasi method toCharArray seperti itu, ternyata method charAt langsung akses ke array of char yg jd storage. Thanks, Kong Putra ! regards, T Budi S 2008/6/4 Kong Putra [EMAIL PROTECTED]: Hi budi, dari hasil code yang gw lihat, mungkin ada sedikit yang bisa dioptimize. public class ConversionHelper { public static double stringToDouble(String s) { char[] cc = s.toCharArray(); int length = cc.length; if (length == 0) { return 0; } int i = 0; double negation = 1; if (cc[0] == '-') { negation = -1; i++; } int point = -1; int value = 0; for (; i length; i++) { if (cc[i] == '.') { point = i; } else { value = value * 10 + cc[i] - '0'; } } int divider = 1; if (point -1) { divider = pow10(length - point - 1); } return negation * value / divider; } public static double stringToDoubleModified(String s) { int length = s.length(); if (length == 0) { return 0; } int i = 0; double negation = 1; if (s.charAt(0) == '-'){ negation = -1; i++; } int point = -1; int value = 0; for (; i length; i++) { char c = s.charAt(i); if (c == '.') { point = i; } else { value = value * 10 + c - '0'; } } int divider = 1; if (point -1) { divider = pow10(length - point - 1); } return negation * value / divider; } private static int pow10(int n) { int result = 1; for (int i = 0; i n; i++) { result *= 10; } return result; } public static void main(String args[]) { long t1 = System.currentTimeMillis(); for (int i = 0; i 100; i++) { //Double.valueOf(-12.3456); //ConversionHelper.stringToDouble(-12.3456); ConversionHelper.stringToDoubleModified(-12.3456); } long t2 = System.currentTimeMillis(); System.out.println(Elapsed time = + (t2 - t1) + ms); } } Memang tidak ada perubahan logic, hanya menghindari penggunaan String.toCharArray(), karena method ini cukup boros, didalamnya terdapat proses melakukan pembuatan char array baru, dan peng-copy-an char array dari String ke char array baru. Hasilnya cukup signifikan, dari test gw sktr 30-45 persen lebih cepat dari yang terakhir. -:regards:- Kong Putra T Budi S wrote: Dear juggers, Mumpung lg hot2nya bahas thread puts vs System.out.println, gw ada 1 challenge utk optimize string to double conversion method dari class java.lang.Double: public static Double valueOf(double d) Kenapa gw butuh utk optimize ini? Krn di project yg sedang gw kerjakan skr, method valueOf memakan 90% ! process time dr keseluruhan process. FYI, data yg dibaca sekitar 10 ribu (nantinya akan jadi ratusan ribu), setiap row terdiri dari 8 column, di mana setiap column-nya berisi data seperti ini: 13.4375:17.1875:22.5:22.8125:23.4375:3:5:4:3:3:3:5:5:3:4:4:5:3:2:6:2:5:3:6:4:2:5:6:3:5:3:2:7:6:5:2:3:6:5:5:2:4:6:4:6:5:3:4:5:3:3:3:5:6:5:2:2:6:7:5:1:3:4:7:6:4:2:1:5:4:3:3:4:5:6:3:1:6:3:5:1:4:2:3:3:3.5:3.75:3.75:4:3.75:3:3.25:5.25:5:5:2.75:2.75:5.25:4.25:5.25:1.5:4:3.75:5:4.75:3:5:3.75:3.5:4.25:2.25:3.5:6.25:4.5:5.25:2.75:2.75:4.75:6.25:4.75:2.75:2.5:3.25:4:4.5:2.75:4.25:5.5:3.75:4.25:2.5:4.25:4.5:4.25:5.25:3.75:2.75:3.5 Waktu yg dibutuhkan utk meload semua data ini adalah 4547 ms. Kemudian saya mencoba utk menggantikan Double.valueOf method dgn method bikinan saya sendiri, mendapatkan hasil 3718 ms. Code-nya adalah sbb: == public class ConversionHelper { public static double stringToDouble(String s) { char[] cc = s.toCharArray(); int length = cc.length; if (length == 0) return 0; int i = 0; double negation = 1; if (cc[0] == '-') { negation = -1; i++; } int point = -1; int value = 0; for (; ilength; i++) { if (cc[i] == '.') point = i; else value = value * 10 + cc[i] - '0'; } int divider = 1; if (point -1) divider = pow10(length - point - 1); return negation * value / divider; } private static int pow10(int n) { int result = 1; for (int i=0; in; i++) { result *= 10; } return result; } } == Ditest dengan looping 1 juta kali: == @Test public void testPerformance() { long t1 = System.currentTimeMillis(); for (int i = 0; i 100; i++) { // Double.valueOf(-12.3456); ConversionHelper.stringToDouble(-12.3456); } long t2 = System.currentTimeMillis(); System.out.println(Elapsed time = + (t2 - t1) + ms); } == Hasilnya adalah: - Double.valueof(String): Elapsed time = 344 ms - ConversionHelper.stringToDouble: Elapsed time = 157 ms Sori panjang banget :D Thx kalo udah baca smp di sini. Skr saatnya utk menerima challenge utk mendapatkan hasil yg lebih optimal ;) regards, T Budi S
Re: [JUG-Indonesia] [Challenge] String to double conversion
Hi Syaiful, 2008/6/4 sm96 [EMAIL PROTECTED]: kalo emang waktu konversinya sejelek itu, mesti dilakukan secara paralel. bisa pake thread juga. dan kadangkala untuk memproses data semacam ini, tidak selalu harus menggunakan solusi iterative konvensional. coba difikirkan cara-cara alternatif yang lain yg tidak lagi menggunakan cara-cara konvensional seperti ini. Puluhan ribu data tersebut dibaca dari database. Jadi mungkin setelah optimasi konversi ini, langkah berikutnya adalah optimasi pembacaan data dr database. Ada saran utk ini ? Saya jadi bertanya-tanya, bisa bisa masalahnya bukan di Double.valueOf(), tapi di proses selain itu. Apa baca filenya udah bagus performancenya, atau gimana? Performance database seharusnya sdh cukup bagus. Tapi masalah konversi ini muncul sbg hasil dr profiling yg dilakukan, di mana konversi dilakukan kira2 7 jt kali setiap kali proses djalankan. thanks, T Budi S