Re: [JUG-Indonesia] barcode in J2ee

2010-09-07 Terurut Topik T Budi S
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

2010-04-28 Terurut Topik T Budi S
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-04-28 Terurut Topik T Budi S
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

2010-04-16 Terurut Topik T Budi S
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

2010-03-07 Terurut Topik T Budi S
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

2009-12-29 Terurut Topik T Budi S
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

2009-11-27 Terurut Topik T Budi S
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)

2009-11-10 Terurut Topik T Budi S
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)

2009-09-07 Terurut Topik T Budi S
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

2009-08-26 Terurut Topik T Budi S
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

2009-05-14 Terurut Topik T Budi S
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

2009-05-14 Terurut Topik T Budi S
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

2009-04-28 Terurut Topik T Budi S
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

2009-01-22 Terurut Topik T Budi S
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

2009-01-16 Terurut Topik T Budi S
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?

2008-11-04 Terurut Topik T Budi S
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?

2008-11-04 Terurut Topik T Budi S
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)

2008-11-04 Terurut Topik T Budi S
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

2008-11-03 Terurut Topik T Budi S
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

2008-10-26 Terurut Topik T Budi S
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

2008-09-04 Terurut Topik T Budi S
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-09-04 Terurut Topik T Budi S
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

2008-09-03 Terurut Topik T Budi S
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

2008-08-01 Terurut Topik T Budi S
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

2008-07-23 Terurut Topik T Budi S
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

2008-06-06 Terurut Topik T Budi S
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

2008-06-05 Terurut Topik T Budi S
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-06-05 Terurut Topik T Budi S
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

2008-06-04 Terurut Topik T Budi S
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

2008-06-04 Terurut Topik T Budi S

 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-06-04 Terurut Topik T Budi S
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

2008-06-04 Terurut Topik T Budi S
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

2008-06-03 Terurut Topik T Budi S
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

2008-06-03 Terurut Topik T Budi S
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

2008-06-03 Terurut Topik T Budi S
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