05.22.06

Eclipse Problem

Ditulis dalam Java, komputer pada 5:05 am oleh fuad

Dua hari yang lalu saya coba make Fedora Eclipse dengan Java Virtual Machine Sun Java sangat cepat memang, tapi sayang proprietary jadi saya coba ganti pakai yang free. Pertama coba SableVM(http://www.sablevm.org) tapi sangat lambat trus coba punyanya GNU, GIJ lebih cepat dari SableVM tapi tetap lebih lambat dari Sun Java. Tapi waktu windownya sudah terbuka jadi hang kenapa ya..? trus coba coba liat di lognya ndak ada apa apa.

Coba buka Eclipse pake root, ternyata sama aja tetap saja hang. Ingat ingat beberapa hari yang lalu sempat install plugin webtools. Coba hapus semua plugin baru yang kuinstall, akhirnya Eclipse ku jalanyya lancar. Tapi masih penasaran masak pake Sablevm bisa lancar tapi pake GIJ tidak lancar. Liat liat opsionnya java ada opsion verbose:class. Jadi aku coba jalanin Eclipse dengan Sablevm dan GIJ dengan opsion verbose ini. ternyata kalau kita jalanin Eclipse pake GIJ itu yang diload library Java yang native sedang kalo pake GIJ tidak native pantas dengan GIJ Eclipse lebih cepat dari GIJ.

05.20.06

BenchMark Java dan Mono

Ditulis dalam Java, komputer pada 9:21 am oleh fuad

Hari ini lagi pengen benchmark jva virtual machine dengan mono(.NET virtual machine). Untuk benchmark ini saya cuma pake algoritma mergesort. Supaya perbandingannya kelihatan data yang dipake random dari 400 data sampai 409600 data

Benchmark ini dilakukan di AMD Athlon Xp 2000+, RAM 512MB, pada OS Fedora Core 5

Hasil:

Lihat Grafik Benchmark

Ternyata Sun Java masih unggul unggul sedikit dari mono, sedang untuk Java yang dicompile native ada diperingkat tiga cuma untuk yang satu ini cepat di data data yang sedikit tapi kalo datanya makin banyak tidak efisien. Jamvm di peringkat ke empat punya keunggulan hemat memori dan kecil tapi tidak bisa jalanin fedora eclipse. selanjutnya ditempati sablevm sedikit lebih boros dari JamVM tapi bisa untuk jalanin fedora eclipse walaupun lebih lambat dari Sun. Yang paling buruk GIJ javanya GNU tapi buat saya ini punya nilai lebih soalnya ini satu satunya JVM yang bisa jalanin Fedora Eclipse dengan cepat lebih cepat dari SableVM walaupun sedikit lebih lambat dari Sun Java

05.16.06

Jadi Astronom Tanpa Teleskop

Ditulis dalam Linux, komputer pada 10:29 am oleh fuad

Jadi Astronom tanpa teleskop Bisa ndak yaaa, bisa pake Kstar nya KDE, bisa liat liat bintang, planet, ngukur jarak tahun cahaya antar planet atau bintang , dan banyak perhitungan perhitungan lain yang saya nggak ngerti(bukan astronom soalnya).jadi yang cita cita jadi Neil Armstrong, Yuri Gagarin, Bruce Wiliis di armageddon tapi ndak kesampaian bisa make ini

Untuk bisa make KStars ini harus milih dulu kita akan make stasiun yang mana, pilihan stasiunnya sangat sangat lengkap mulai dari stasiun di Amerika sampai stasiun jatiluhurnya Indonesia di Bandung juga ada(keren kan), nah setelah itu kita bisa liat bintang dari perspektifnya teleskop stasiun yang kita pilih. trus ada fitur konek ke ‘real’teleskop, jadi kalo kita punya teleskop bisa disambungin langsung ke Kstars. Ada juga fitur navigasi otomatis, untuk pake yang ini tinggal pilih objek yang pengen kita liat misal pengen liat andromeda tinggal pilih Andromeda nanti layarnya akan bergerak langsung ke galaksi Andromeda.

Tapi kelemahannya ada juga sih, gambarnya belum terlalu bagus dan fasilitas zoomingnya masih payah tapi lumayanlah untuk komputer kelas low-end. Tapi karena ini proyek open source kita bisa liat sourcenya trus bisa dikembangin sama sama, kalau blum bisa kontribusi kode, bisa kontribusi laporan bug aja, atw request fitur juga bisa, pokoknya hidup open source lah.

05.09.06

Port nefprox ke Java

Ditulis dalam Java, komputer pada 9:56 am oleh fuad

Beberapa bulan yang lalu saya berhasil memport nfident, nefprox(algoritma neurofuzzy) yang diimplementasikan dengan C ke bahasa favoritku Java. Sebenarnya proyek pribadiku ini hampir ku tunda atau bahkan batal, akibat satu dan lain hal. Tapi karena saya pindah kos dari kos-kosan keluarga dengan fasilitas lengkap ke kos yang sekarang, saya jadi kehilangan tv. Hilangnya tv ini membuat saya tidak memiliki pengisi waktu lagi sepulang kuliah, jadi terpaksalah saya melanjutkan proyek porting ini.
Sebenarnya proyek ini hanya memport nfident bagian nefprox saja tidak keseluruhan kode nfident soalnya terlalu panjang dan sangat sangat rumit , jadi proyek ini lebih tepat jika dikatakan implementasi Nefprox pada Java dengan meniru nfident.

Hasil porting nefprox saya beri lisensi GPL, nah tentang lisensi ini juga saya sempat bingung apakah software yang diporting dari GPL licensed harus GPL juga. Setelah mencari, browsing, surfing, dll ternyata tentang porting ini tidak disebutkan dalam draft GPL. Jadi kesimpulannya saya bisa melisensikan software saya itu dengan lisensi apa saja. Awalnya mo komersil, trus turun ke LGPL.

Setelah sempat didistribusikan ke seorang teman, saya jadi tidak enak soal lisensi tadi. Masak iya software yang telah susah susah dibuat algoritmanya dibuat setengah mati, eh setelah diporting bahkan ucapan terima kasihpun tidak diberikan. Jadi saya melakukan ijtihad akhirnya software hasil prting tadi kubuat jadi GPL. Kalau pingin liat liat software hasil portingku ini, bisa email ke fuadkiki@yahoo.com, soalnya belum ku upload. Tapi mungkin beberapa hari lagi akan ku taruh ke kleq.web.ugm.ac.id di menu download. Kode itu sudah beberapa kali mengalami refactoring(mengubah kode tanpa mempengaruhi interfacenya dengan dunia luar) sekarang sudah lebih terstruktur dan sudah ada dokumentasinya. Sekarang saya lagi berencana membuat GUI intefacenya sekarang sudah jadi 10%, kalu yang ini niru <strong>nefclassj</strong> saya menamakannya JNefprox. Tapi kayaknya bakal ditunda lagi pengambangannnya soalnya sibuk. kalo ada yang mo bantu silahkan

Untuk Source code dan program bisa download di kleq.web.ugm.ac.id

05.08.06

Wiser & Spring Framework Integration

Ditulis dalam Java, komputer pada 5:40 am oleh fuad

As Java lightweight framework, Spring is widely used in Java world. it is because Spring is simple, light, and easy to integrate with other frameworks. Widget Server Framework, as one of Xml Gui Implementation with Java, gives us a great solution, that is when we make an application, we can use it as a standalone, Thin Client ,and web based app without changing the code.

The main idea when we want to integrate this two frameworks (using Widget Server at Presentation Layer and Spring at Bussines Layer) is we have to make Widget Server call Spring Application Context/Bean Factory(i.e file applicationContext.xml) when Widget Server Servlet is initialized by Servlet Container.

First thing we should do is creating Widget Server mandatory directory in spring project directory

for example at Spring “DistroSystem” Project i have war/ and src/ directory

DistroSystem
        |—-src
           |
        |—war–
            |
            |–WEB-INF
            |
            |—lib
            |
            |—classes

Widget Server Mandatory directory is

|
        |–*.xml
        |—start
        |     |
        |     |–src
        |
        |–WEB-INF
              |
              |—lib
              |
              |—classes

Next, move Widget Server’s “start” directory to Spring’s “war” directory, After that move all file (not directory just file) under to “war” directory. Move all Widget Server library under “lib” to Spring’s “lib”. For Widget Server “src” directory, move all its content to spring’s “src” directory.

After that directory structure must like this:

DistroSystem
    |
    |—-src
    |     |
    |     |–Wiser Java Source
    |     |–Old Bussines and/
    |                  or persistence Java source
    |—war–
        |
        |–start
        |
        |–WEB-INF
            |
            |—lib
            |       |–Spring And Wiser library
            |                 dependency
            |
            |—classes

Step 2 is modifying piccolo.jar, theWiser library dependency. Extract piccolo.jar . Remove all piccolo’s xml parsers package(folder javax). and compress piccolo again. So in this new piccolo.jar only exist “com” and “META-INF” folder. After this you can write your web.xml.

Step 3 is developing your presentation layer and Listener code. In order to make Listener code get bean from Spring, We must make parent listener for all listeners which we want it to call Spring bean code. Here is my code
package Listeners;

import de.ug2t.unifiedGui.service.UnBasicServlet;
import de.ug2t.kernel.KeRegisteredObject;
import javax.servlet.*;
import javax.servlet.http.*;

import org.springframework.web.context.*;
import org.springframework.web.context.support.*;

public abstract class BasicListener{
  private WebApplicationContext wac ;

public BasicListener()
  {
    ServletConfig sg=
    (ServletConfig)KeRegisteredObject.pcmf_getGlobalObjByName
    (UnBasicServlet.SERVLET_CONFIG);
    ServletContext sc =sg.getServletContext();
    wac = WebApplicationContextUtils.getWebApplicationContext(sc);
  }

public WebApplicationContext getWebApplicationContext()
  {
      return wac;
   }
}

This is one of my Widget Server listener code which use Spring’s Bean

package Listeners;

import de.ug2t.kernel.*;
import de.ug2t.unifiedGui.*;
import de.ug2t.unifiedGui.interfaces.*;
import de.ug2t.unifiedGui.loader.*;

import java.util.*;
import DistroSystem.Stock.DAO.*;
import DistroSystem.Stock.Logic.*;
import DistroSystem.*;

import org.springframework.web.context.*;

public class BarangGetAll_li extends BasicListener implements IUnGuiEventListener
{

private BukuManager buku_man;

public void pcmf_execListener(UnComponent xParam) throws Exception
  {
    WebApplicationContext wac = getWebApplicationContext();
    buku_man=(BukuManager)wac.getBean("bukuManager");
    // get all relevant widgets from the registry
    IUnTable l_table = (IUnTable) KeRegisteredObject.pcmf_getObjByName("atable");
    UnTableLoader l_load = (UnTableLoader)  KeRegisteredObject.pcmf_getObjByName("tableLoader");

List list = buku_man.getAll();

// insert row
    ((BukuTableModel) l_load.pcmf_getModel()).setBuku(list);
    l_table.pcmf_repaint();

return;
 }
}

When we want to get beans’s Spring we just must extend BasicListener class. To get a bean first call super method getWebApplicationContext(), this method will return “WebApplicationContext” object. With this object you can get all beans from Spring’s Application Context

05.02.06

Hello world!

Ditulis dalam Tak Berkategori pada 3:53 am oleh fuad

Welcome to WordPress.com. This is your first post. Edit or delete it and start blogging!