Java Addicted Programmer

my escape way from the addiction……..

CoreAPI WebKits

with one comment

Minggu yang sibuk, setelah membuat demo untuk Wiew, testing initial code dari CoreAPI akhirnya bisa diupload ke google code :-) so check this out guys

Apa itu CoreAPI WebKits ??  singkatnya kumpulan tool pengembangan web untuk java yang ringan,cepat yang mendukung dependency injection,MVC sebagai media pembelajaran maupun prototyping hinga developing tool.

Mungkin banyak yg bertanya mengapa membuat sebuah framework lagi padahal sudah banyak framework lain yg udah siap pakai dan matang diluar sana ???  apa mencoba reinvent the wheel ?

sebenarnya saya suka frameworknya yg telah ada struts,spring etc… tapi mereka sudah terlalu kompleks dengan banyak features yg kadang tidak semua kita butuhkan sehingga sulit sekali untuk newbie pada umumnya untuk mulai mempelajarinya apalagi yang awam design pattern seperti dependency injection serta MVC.

Saya membutuhkan sebuah lightweight framework yang bisa digunakan dalam development terutama untuk prototyping, coba bayangkan anda membuat prototyping dengan spring/struts  untuk demo architecture system ke client, effort yang anda keluarkan pasti sama ketika nantinya anda mulai development process. Dengan CoreAPI saya bisa develop lebih cepat dan ringan untuk running di sebuah demo box .

Last but not least sampai saat ini belum ada framework yg bisa dijadikan alat pembelajaran mengenai webtechnology khususnya JAVA, dengan CoreAPI saya harapkan bisa memudahkan newbie untuk lebih cepat mempelajari web tecknologi dengan mudah tanpa mengesampingkan teknologi yg telah ada.

CoreAPI WebKits masih merupakan work in progress, features features baru akan masih ditambahkan sehingga memungkinkan CoreAPI menjadi lightweight framework untuk belajar, prototyping atau menjadi development tool dimasa depan …. :-) . Cek repository di goggle code,  review code CoreAPI tolong kritik dan jika ada features features yang anda inginkan dalam CoreAPI WebKits tolong sarannya.

“keep simple,complex is possible”

Written by luvj

April 24, 2009 at 12:20 am

Posted in CoreAPI, Framework

Wiew sneak peak

with 2 comments

prepiew awal awal guys…..

view_on_xp

running on xp next mac OS X and linux…., please comment and suggestion…

Written by luvj

April 17, 2009 at 3:51 am

Posted in Uncategorized

Mintandleaf product

leave a comment »

Setelah berkutat dengan pekerjaan, sekarang waktunya santai mencurahkan keinginan dan hobby untuk mintandleaf.com beberapa produk siap release antara lain

  1. CoreApi WebKits
  2. Wiew- Enterprise Widget Platform
  3. Wiew for iphone
  4. Mintandleaf course

mohon doa restu dari semua agar lancar stay tune guys…………

Written by luvj

April 16, 2009 at 2:58 am

Posted in Uncategorized

Continuous Integration -prolog-

with one comment

Betapa indahnya jika kita developer tidak perlu memikirkan lagi masalah integrasi ketika bekerja di proyek yg melibatkan banyak module/sub module serta banyak team member, kita tinggal cek in ke repository (cvs/svn) dan otomatis proyek terintegrasi. apakah mungkin itu semua ???

Mungkin jawab saya, sebetulnya banyak tersedia tool tool open source yg dapat kita manfaatkan untuk mewujudkan cita cita diatas, pada intinya yang kita butuhkan adalah bagaimana cara integrasi pada sebuah proyek dilakukan secara otomatis dan berkesinambungan sehingga kita bisa mendapatkan snapshot terkhir dari hasil kerja kolaborasi tersebut (sering disebut nightly build).Untuk diperhatikan bahwa untuk mendapatkan sebuah nighly build ada beberapa proses yg kita perlu lakukan

  1. Compile
  2. Unit Test
  3. Build
  4. Integration

dan untuk keperluan diatas programming toolnya sudah banyak tersedia antara lain : ant untuk automatically compile and build, junit untuk unit testing dan lain lain.

Ok bagaimana dengan integrasinya ??  ada tool open source bernama CruiseControl (http://cruisecontrol.sourceforge.net/ yang dapat kita gunakan   untuk Continuous Integration. Untuk beberapa seri kedepan kita akan coba bagaimana mengaplikasikan Continuous Integration untuk proyek kita menggunakan CruiseControl.

cruisecontrol1

contoh dalam sebuah proyek

Stay tune….

Written by luvj

March 17, 2009 at 4:50 am

Free Workshop update

with one comment

Setelah brain stroming dan mengumpulkan kandidat trainer yg  memungkinkan melakukan kerja sosial untuk free workshop maka mintandleaf.org akan memberikan workshop untuk materi materi :

- Java Fundamental

- Spring Framework

- Hibernate

- GWT

- dot Net

pasti timbul pertanyaan mengapa dot Net diikut sertakan ? walaupun mintandleaf.org fokus pada opensource, kami tidak menutup mata bahwa dot net framework juga merupakan development tool yg banyak dipakai di industri software, sejalan dengan visi mintandleaf.org  “free training for everyone” maka kami bersifat netral dengan tidak memihak antara proprietary ataupun open source. Fokus kami bagaimana memberikan pengetahuan seluas luasnya mengenai teknologi yang ada khususnya di bidang software development.

Untuk mintanleaf.org site kami masih mengusahakan funding untuk segera merealisasikanya , sementara ini dengan bantuan salah satu contributor kita mintandleaf studio yang akan menyediakan space untuk kita sementara, setelah siap akan jadi access point untuk mintandleaf.org

untuk informasi pengadaan free training untuk organisasi anda sekali this is really free, no cost at all (akomodasi,uang saku etc), anda siapkan tempat dan waktunya kami akan datang.  untuk informasi lebih lanjut hubungi teguh.hardiansah@mintandleaf.com

Written by luvj

March 16, 2009 at 2:34 am

Free workshop

with one comment

Hampir 8 tahun berkecimpung dalam software engineering , banyak yg memanfaatkan aplikasi open source akan tetapi akhir akhir ini ada sesuatu yang mengganjal di benak dan pikiran saya,  sampai saat ini belum ada kontribusi sebagai pengguna open source ke dalam komunitas open source malu rasanya hidup dari open source tanpa ada kontribusi balik T_T ….

Setelah melewati brain storming tentang apa yang bisa saya lakukan, saya teringat suatu kutipan “knowledge belong to the world” entah siapa dan kapan saya lupa, menyadarkan saya bahwa sumbangsih ke komunitas tidak hanya bisa berbentuk materi,  sharing knowledge juga merupakan bentuk kepedulian kita pada komunitas.

Dengan berbekal keinginan berbagi dan wujud terimakasih kepada komunitas open source hari ini 23 February 2008 merupakan titik awal pendirian MintAndLeaf.org organisasi nirlaba yang akan memberikan free workshop/training di bidang teknologi open source untuk kalangan umum  dengan harapan memberikan pintu selebar lebarnya untuk masyarakat umum untuk memanfaatkan teknologi open source.

Written by luvj

February 23, 2009 at 12:19 am

Posted in said a loud

GWT UI designer

with one comment

work in progress…

gui-designer

tunggu release nya

Written by luvj

February 18, 2009 at 4:08 am

Posted in Uncategorized

GWT-ext validator untuk spring ( Part -2 .2)

leave a comment »

waktunya turun ke koding,untuk test case kita coba buat form dengan GWT-ext dengan textfield untuk nama dan email, tanpa validasi.

/*
*code form Gwt-ext 

*/

public void onModuleLoad() {
Panel panel = new Panel(); 
panel.setBorder(false); 
panel.setPaddings(15); 
//setup error reader to process from submit response from server 
RecordDef errorRecordDef = new RecordDef(new FieldDef[]{ 
                       new StringFieldDef("id"), 
                       new StringFieldDef("msg") 
               }); 
XmlReader errorReader = new XmlReader("field", errorRecordDef); 
errorReader.setSuccess("@success"); 
final FormPanel formPanel = new FormPanel(Position.RIGHT); 
formPanel.setFrame(true); 
formPanel.setTitle("Test GWT Form"); 
formPanel.setWidth(400); 
formPanel.setLabelWidth(75); 
 // error reader 
formPanel.setErrorReader(errorReader); 
//add some fields 
FieldSet fieldSet = new FieldSet("Contact Information"); 
fieldSet.add(new TextField("nama", "nama", 190)); 
fieldSet.add(new TextField("email", "email", 190));
formPanel.add(fieldSet); 
final Button submitBtn = new Button("Simpan", new ButtonListenerAdapter() { 
                   public void onClick(Button button, EventObject e) { 
                       formPanel.getForm().submit("saveData", null, Connection.POST, 
                                                   "Simpan Data...", false); 
                   } 
               }); 
formPanel.addButton(submitBtn); 
panel.add(formPanel); 
RootPanel.get().add(panel); 
}

untuk validasi kita gunakan VALANG dari spring

<bean id="messageSource"
        class="org.springframework.context.support.ResourceBundleMessageSource"
        p:basenames="errors"/>

    <bean id="customValidators" class="org.springmodules.validation.valang.ValangValidator">
       <property name="valang">
          <value><![CDATA[
            { nama : ? is not blank :'' :'User.nama[not.blank]' }
            { nama : length(?) > 4 :'' :'User.nama[min.length]' }
            { email : ? is not blank :'' :'User.email[not.blank]' }
            { eEmail : email(?)=true :'' :'User.email[not.valid]' }

          ]]></value>
       </property>

    </bean>

Lalu unruk resource bundle kita berisi(errors_EN_US.properties)

User.nama[not.blank]=Please fill user name.
User.nama[min.length]=user name must more than 5 char.
User.email[not.blank]=Please fill email address.
User.email[not.valid]=Please fill with valid email address.

Lalu untuk form controller spring overide the showForm method

protected ModelAndView showForm(HttpServletRequest request,
            HttpServletResponse response, BindException errors)
            throws Exception {
        ModelAndView modelAndView = new ModelAndView("error");
        Map<String, Object> myModel = new HashMap<String, Object>();
        myModel.put("error",XmlJsonBuilder.getErrorXml(errors,getMessageSourceAccessor()));
        modelAndView.addObject("result",myModel);
        return modelAndView;
    }

Lalu untuk XMLJsonBuilder code

import java.io.IOException;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;

import org.springframework.context.support.MessageSourceAccessor;
import org.springframework.validation.BindException;
import org.springframework.validation.FieldError;
import java.lang.reflect.Field;
import java.lang.reflect.Modifier;
import esubmission.module.main.domain.ItemMenu;
import esubmission.module.user.domain.User;

public class XmlJsonBuilder {

    public static String getErrorXml(BindException errors,MessageSourceAccessor messageSource) {

        String errorStr="<response success=\"false\">";
        errorStr+="<errors>";
        Iterator<FieldError> listFieldError=errors.getFieldErrors().iterator();
        while(listFieldError.hasNext())
        {
            FieldError field=listFieldError.next();
            errorStr+="<field>";
            errorStr+="<id>"+field.getField()+"</id>";
            errorStr+="<msg><![CDATA["+messageSource.getMessage(field.getCode());
            errorStr+="]]></msg>";
            errorStr+="</field>";
        }
        errorStr+="</errors>";
        errorStr+="</response>";
        return errorStr;
    }
}

Dan server validation kita selesai dibuat

Written by luvj

January 21, 2009 at 3:25 am

Posted in Ext, Gwt, Spring

GWT-ext validator untuk spring ( Part -1 )

leave a comment »

cuma ide aja

gwt-validator-for-spring4

/*
*  base interface untuk validator

*/
public interface GwtBaseValidator {
    public boolean validate(Object objectToValidate);
    public String getErrorString();
}

Kenapa repot repot bikin validasi lagi ?? khan di GWT-ext khan udah ada perlu diingat yang disediakan GWT-ext adalah client side validation, dengan firebug dan sedikit javascript bisa menjadi security hole untuk itu server side validation juga diperlukan.

kita bisa gunakan apache-common-validator untuk menciptakan server-side validasi seperti currency, tanggal, etc.. atau bahkan validasi yang terhubung dengan data source kita.

ada komentar ??

Written by luvj

January 21, 2009 at 12:18 am

Posted in Ext, Gwt, Spring

Why go and reinvent the wheel?

leave a comment »

I prefer to write my own code whenever possible. It may not be the best code, nor the most efficient, but at least I understand it – and I don’t, I can rip it out in giant chunks and rewrite everything that doesn’t work. There are times when I have to use someone else’s modules, but I try very hard to avoid that: if I can possibly write it, even if it doesn’t work as well as that other code would, I’d rather. I feel safe that way.

If other programmers don’t understand why it’s so critically important that i sit down and write that bit of code — well, that’s their problem.

They’re probably too busy shopping to understand.

why go and reinvent the wheel ? The Question will be yours….

Written by luvj

January 20, 2009 at 6:14 am

Posted in said a loud

Follow

Get every new post delivered to your Inbox.