Bikin sekrip untuk inspek sistem

June 23, 2011 Leave a comment

Kali ini ane mau bikin sekrip untuk mengetahui kondisi load memori, CPU dan IO disk di sistem linux. Kebetulan ane dapet tugas meneliti kondisi serper di client. Kali2 aje dikemudian hari berguna, begini sekripnye:

1. Sekrip untuk ngetahuin load CPU dan memori di linux Box. Sekrip ini cuma ngeliat top proses yang makan paling banyak (kagak semua).

#!/bin/bash

LOG_FILE="/home/hameed/Documents/WORK/CAT/script/topLog.txt"

echo "===================="`date +"%d-%m-%y"`"===================" >> $LOG_FILE
/usr/bin/top -n 1 -b | head -n20 >> $LOG_FILE
echo "=============================================" >> $LOG_FILE
echo "" >> $LOG_FILE

2. Sekrip buat ngetahuin load IO disk. Khusus buat sekrip yang eni, die make tools tambahan..namenye iostat.

#!/bin/bash

LOG_FILE="/home/hameed/Documents/WORK/CAT/script/iostatLog.txt"
INTERVAL=15

iostat -xtd $INTERVAL >> $LOG_FILE

Sekrip-sekrip ini masih culun dan sederhana banget. Ntar2 klo ade keperluan lebih, ane update tulisannye ye. Kurang lebih ane minta maaf, Wabillahi Taufik Wal Hidayat, Wassaalamu’alaikum.Wr.Wb.

Advertisements
Categories: Ngoprek

Ragam JAVA_OPTS untuk optimasi

June 23, 2011 Leave a comment

Berikut ini opsi-opsi JAVA_OPTS yang bisa digunakan untuk optimasi memori yang digunakan oleh JVM.

  • -Xms, mengatur besar inisialisai heap memori
  • -Xms, mengatur maximum heap memori
  • -XX:MaxPermSize, mengatur besaran heap space yang tidak akan kena gargage collector (GC)
  • -XX:+UseParallelGC, secara default JVM menggunakan GC dalam satu thread, namun dengan opsi ini GC bisa dijalankan dalam beberapa thread.
  • -XX:+AggressiveHeap, lebih optimal untuk long-running dan alokasi memori yang lumayan sering.

Sekian..semoga bermanfaat

Categories: Ngoprek, NyanyianKode

Remote debugging di Eclipse

June 15, 2011 Leave a comment

Bismillahirrahmaanirrahiim…

Udah lama tak terasa sekian tahun blog ini tak kukunjungi (haha, gaya kali kau meed). Kali ini aku ingin menuliskan tentang cara konfigurasi remote debugging di Eclipse.  Biar gak lupa..ku tuliskan saja disini, maklumlah boi aku ini agak2 payah dalam hal ingat-mengingat.

1. Tambahkan baris berikut di bagian parameter run-script dari aplikasi yang akan di debug:
-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=[PORT_NUMBER]

Sebagai contoh, yang akan didebug adalah aplikasi yang berjalan di JBoss (localhost). Maka di run-script JBoss nya kita tambahkan parameter diatas.


Sebagai contoh, nomor port yang akan digunakan oleh java agent sebagai “pintu masuk” debug adalah 9998. Nambahin parameternya tidak mutlak dari UI JBoss configuration yg ada di eclipse, ini cuma contoh saja. Dalam penerapan nanti bisa saja parameter di atas di tambahkan di dalam run.sh/run.bat ataupun run script bikinan sendiri.

2. Buat konfigurasi debug baru. Pillih menu Run->Debug configuration..lalu akan muncul form “Debug Configuration”.

Double click menu “Remote Java Application”, nanti akan ada form new debug configuration. Di bagian port, sila definisikan port mana si agent debug akan connect, di source project mana konfigurasi ini akan bekerja. Dari screenshot di atas, debug agent akan connect ke port 9998. Host bisa saja berupa komputer lain, namun pada contoh ini aplikasi yang akan didebug adalah di localhost.

Konfigurasi remote debugging sudah selesai. Kita bisa jalankan aplikasi yang akan didebug. Pastikan tidak ada firewall yang memblok port yang digunakan. Untuk melakukan debugging, pilih menu gambar kutu yang ada di toolbar eclipse, lalu pilih nama dari debug configuration yang telah didefinisikan pada point 2. Atau bisa melalui menu Run->Debug Configuration->Remote Java Application->[NAMA DEBUG CONFIGURATION]->debug.

Selesai – Semoga bermanfaat 🙂

Categories: NyanyianKode

Membaca event dari keypress

November 24, 2010 Leave a comment

Halo blog, udah lama kita ga ketemu. Kali ini aku mau menuliskan sedikit tentang nyanyian kode. Ini tentang membaca event dari keyboard, yang dipasang komponent.

                                   
function readKey(e) {
	var key;
	if(window.event)
		key = window.event.keyCode;     //IE
	else
		key = e.which;     		//Firefox
	if(key == 13)
		alert('enter boi');
	else
		alert('bukan enter');
}
       
<h:inputText value="#{bean.value}" onkeypress="readKey(event); return false;">

Semoga bermanfaat – salam;

Categories: NyanyianKode

Sampah kalian !!!

October 27, 2009 Leave a comment

Pagi ini aku membaca sebuah tulisan di salah satu situs news, judulnya “Kenaikan Gaji Korbankan Anggaran Gizi Buruk”. Isinya tentang kenaikan gaji di DepKeu, MA dan BPK. Sontak emosi ku naek..naek sekali..setinggi puncak Jayawijaya.

Sesuai titlenya, yang dikorbankan adalah anggaran gizi buruk. Woi hebat kali kalian ya, sudah enak-enak di “lahan basah”, kerja pun tak kunjung becus..sekarang kalian mengambil jatah rakyat miskin, rakyat jelata, anak-anak yang menderita busung lapar. Bukannya ber-terima kasih kepada rakyat dengan bekerja sebaik-baiknya, eh ini malah minta kenaikan gaji pulak!!. Masih kurang apa uang rakyat yang kalian makan selama ini??!!. Masih kurang “buncit” kah perut kalian tu woi?!!.

Semakin sedih Ibu pertiwi, menangis para pejoeang negara ini. Semakin hilang empati rakyat kecil kepada kalian. Hanya ada satu kata untuk kalian…SAMPAH!!!

Categories: SegalaRupa

Mencari semangat

October 12, 2009 Leave a comment

Pagi ini ku coba mencari semangat, berbagai site di internet ku kunjungi…namun semangat itu tak kunjung ku temui. Teringat aku akan tim-ku dulu yang penuh semangat dan full dengan energi tak terbatas, the greatest team..OpenCAMS. Kami punya mars yang bikin semangat, yang kami ambil dari Mars Slanker. Salah seorang saudaraku pernah menuliskan mars tersebut didalam blognya, aku pun meluncur kesana.

Disini tempat cari senang
salah tempat kalau kau cari uang
disini orang-orang penuh kreatifitas
tempat orang-orang yang survive.

Disini bukan anak-anak malas
tempatnya para pekerja keras
disini bukan anak-anak manja
sedikit kerja banyak mintanya.

Bali, siap bekerja keras!!!

Kerja..kerja..ayo kita kerja !!!

Nah..kembali lagi semangatku pagi ini, trims sodaraku.

Categories: SegalaRupa

Konfirmasi dialog popup di richfaces

September 9, 2009 3 comments

Kali ini saya mendapat tugas membuat konfirmasi dialog popup, yang menampilkan message tertentu..seperti “Are you sure..?” dilengkapi dengan tombol “Yes” atau “No”. Kebetulan teknologi web komponen yang dipakai kali ini adalah richfaces. Agar reusable, saya buat konfirmasi dialog popup tersebut sebagai komponen. Untuk itu dipakek lah teknologi facelets yang bisa bisa mendefine komponen dengan mudah. Dan kebetulan lagi, richfaces dan facelets tersebut sudah ada dan terkonfigurasi dalam JBoss Seam Framework, framework yang sedang saya gunakan sekarang. Untuk instalasi dan konfigurasi richfaces dan facelets, silahkan merujuk ke situs offi-sial-nya.

Langsung saja ke code nya y, daripada berpanjang lebar g jelas (talk is cheap, show me the code, Linus – 2000).

  • Buat satu page popup dialog konfirmasi. Kita beri nama confirmation.xhtml, kira-kira begini isinya:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    &ltui:component xmlns="http://www.w3.org/1999/xhtml"
       xmlns:h="http://java.sun.com/jsf/html"
       xmlns:a4j="http://richfaces.org/a4j"
       xmlns:rich="http://richfaces.org/rich"
       xmlns:f="http://java.sun.com/jsf/core"
       xmlns:ui="http://java.sun.com/jsf/facelets">
      
    <a4j:jsFunction name="#{submitName}" action="#{resolver.resolveMethodExpression(actionBean)}" reRender="#{listName}"/>
     
    <rich:modalPanel id="#{modalPanelId}" width="250" height="150">
       <f:facet name="header">#{messages['common.Confirmation']}</f:facet>
       <h:panelGrid>
          <h:panelGrid columns="2">
             <h:graphicImage value="/img/msginfo.png" />
             <h:outputText value="#{textMessage}" style="FONT-SIZE: large;" />
          </h:panelGrid>
          <h:panelGroup>
             <rich:spacer height="20px" />
    		 <input type="button" 
    		 value="OK" 
    		 onclick="#{rich:component(modalPanelId)}.hide();#{rich:component('wait')}.show(); 
                                 #{submitName}();return false;" />
    		 <input type="button" value="Cancel" onclick="#{rich:component(modalPanelId)}.hide();return false" />
          </h:panelGroup>
       </h:panelGrid>
    </rich:modalPanel>
    </ui:component>
                
  • Konfirmasi dialog akan menjalankan action tertentu jika jawaban dari user meng”iya”kan. Nah action tersebut kita jadikan parameter agar konfirmasi dialog yang kita pasang dapat memiliki action yang berbeda satu sama lain. Untuk keperluan ini maka kita buat backing bean Resolver. Resolver ini berfungsi me-resolve ekspresi EL berupa action atau method dari backing bean yang dijadikan parameter. Langkah berikutnya adalah membuat bean resolver tersebut. Berikut kodenya:
    /* Resolver.java */
    import org.jboss.seam.ScopeType;
    import org.jboss.seam.annotations.Name;
    import org.jboss.seam.annotations.Scope;
    import org.jboss.seam.core.Expressions;
    import org.jboss.seam.core.Expressions.MethodExpression;
    
    @Name("resolver")
    @Scope(ScopeType.APPLICATION)
    public class Resolver {
    	public Object resolveMethodExpression(String elStr) {
    		MethodExpression resolvedEl = Expressions.instance().createMethodExpression("#{" + elStr + "}");		
    		if (resolvedEl != null) {
    			resolvedEl.invoke();
    		}		
    		return resolvedEl;
    	}
    }
           

    Resolver mempunyai scope “application” karena bean ini akan digunakan berulang kali selama konfirmasi popup dialog digunakan. Sebagai catatan, Resolver diatas spesifik ke seam, karena menggunakan method yang dimiliki oleh seam.

  • Berikutnya tinggal membuat file definisi taglib atas komponen konfirmasi popup dialog dan mendefinisikan file taglib tersebut dalam web.xml.
                <!--- confirmation-taglib.xml --->
                <?xml version="1.0"?>
    <!DOCTYPE facelet-taglib PUBLIC "-//Sun Microsystems, Inc.//DTD Facelet Taglib 1.0//EN" "facelet-taglib_1_0.dtd">
    <facelet-taglib>
       <namespace>https://urangbiase.wordpress.com/ui</namespace>
    	<tag>
    		<tag-name>confirm</tag-name>
    		<source>confirmation.xhtml</source>
    	</tag>
    </facelet-taglib>
           
                 <!--- web.xml --->
                 <context-param>
                     <param-name>facelets.LIBRARIES</param-name>
                     <param-value>/WEB-INF/confirmation-taglib.xml</param-value>
                 </context-param>
            
  • Selesai sudah komponen konfirmasi popup dialog yang kita buat. Berikutnya adalah implementasi dari komponen yang telah kita buat.

    <!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <ui:composition xmlns="http://www.w3.org/1999/xhtml"
        xmlns:ui="http://java.sun.com/jsf/facelets"
        xmlns:f="http://java.sun.com/jsf/core"
       -------------cutted text-----------8<
        xmlns:urang="https://urangbiase.wordpress.com/ui">
        -------------cutted text-----------8<
        <a4j:form>
    	&lturang:confirm actionBean="transportationList.removeSelected()" modalPanelId="removeSelectedTransportation" 
    				   listName="transportationList" textMessage="Are you sure remove selected row?"
    				   submitName="submitRemoveSelectedTransportation"/>
        -------------cutted text-----------8<
        <a4j:commandLink id="comLinkRemoveSelected">
               <h:graphicImage value="/img/trash.gif" />
        </a4j:commandLink>
       <rich:componentControl attachTo="comLinkRemoveSelected" 
               for="#{removeSelectedConfirmation}"
               event="onclick" 
               operation="show"/>
       <rich:toolTip value="#{messages['common.RemoveSelected']}" for="comLinkRemoveSelected2"/>
       </a4j:form>
    </ui:composition>
    

    Dan inilah hasil tangkapan layar dari konfirmasi dialog popup.

    popupdialog

    Demikianlah, semoga bermanfaat. Kritik, saran dan THR amat dinantikan :).

    PS: tulisan ini dibuat ketika belum dapat kucuran THR.

    Categories: NyanyianKode, seam