Subscribe:

Main Menu

Senin, Juni 30, 2008

Konfigurasi Struts.xml

Kalo anda pernah mencoba Struts2 tentu anda sudah tahu apa fungsi file Struts.xml. file ini adalah konfigurasi utama dari FrameWork Struts2. File ini seharusnya di letakkan di classpath dari webapp. umunya sech di /WEB-INF/classes. dalam File Konfigurasi ini harus di dahului tag utama yaitu tag. dan selanjutnya di ikuti 4 tag yaitu.
  1. package tag
  2. include tag
  3. bean tag
  4. constant tag.


and constant.

1. The Package Tag :
Tag ini di pakai untuk mengroupkan atan mengelompokkan action, result, result types, interceptors dan interceptors-stacks kedalam logika konfigurasi yang di inginkan. pada konsepnya package dalam java sama dengan object / class dimana objek itu bisa di extends dan memiliki bagian sendiri yang dapat di pakai sendiri oleh paket itu.

Atribut-atribut dari tag ini antara lain :

Attribute Kebutuhan Keterangan
name Harus ada ID untuk membedakan package
extends Tidak perlu ada kalo mau extends ke package lain
namespace Tidak perlu ada di gunakan untuk me mapping package pada url ( untuk memanggil package )
abstract Tidak perlu ada seperti tipe abstract pada java umumnya. yang nantinya butuh di extends oleh package lain

2. The Include Tag:
Tag ini di pakai untuk membuat Struts.xml lebih modular. gampangnya lebih enak untuk di baca lah. jadi misalnya project kita sangat luas. tentu nantinya Struts.xml nya akan sangat banyak. dan ini akan sulit untuk membaca nya langsung jadi satu file. lebih baik di pisah menjadi beberapa file agar lebih mudah di cerna :D, contoh Sintaknya kayak gini









3. The Bean Tag

Kebanyakan Projek jarang untuk memakai tag ini. tag ini butuh atribute class yang spesifik untuk membuat dan memakainya. tag ini biasanya di butuhkan karena kebutuhan dari framework untuk melakukan hal tertentu.

Contoh :





...




4. The Constant Tag
tag ini di gunakan untuk menyimpan constanta2 yang nanti akan di butuhkan dalam project. bisa constanta apa saja. misalnya : aturan tanggal gimana, terus maximum upload file dll. constanta dapat di deklarasikan dengan beberapa file. defaultnya Struts secara berurutan akan mencari konstanta pada file-file ini.

* struts-default.xml
* struts-plugin.xml
* struts.xml
* struts.properties
* web.xml
pada struts.properties setiap isian akan di anggap sebagai konstanta. pada web.xml inisialisasi FilterDispatcher dianggap sebagai konstanta, pada file xml lain constanta butuh dua atribute utama yaitu : name dan value, contoh :

Pada (struts.xml)





...



Pada (struts.properties)

struts.devMode = true

Selasa, Juni 24, 2008

Enterprise Java Beans ( EJB )

Enterprise Java Beans ( EJB ) adalah komponen server­side yang menyimpan business logic dan dapat
diakses secara remote.

EJB relatif sulit untuk dibuat, dideploy, dan dimaintain. Jadi, penggunaannya harus dipertimbangkan dengan matang dan seksama. Jangan lupa bahwa EJB dibuat untuk menangani aplikasi bisnis yang tersebar di banyak tempat dan membutuhkan interaksi antar aplikasi.

EJB tidak ditujukan untuk end­user. Client dari aplikasi EJB adalah aplikasi lain, bukan user. Bila aplikasi yang ingin Anda kembangkan diinstal di satu komputer, menggunakan satu database, sebaiknya pikirkan alternatif lainnya.


Ada beberapa jenis EJB, masing­masing dengan tujuan, fungsi, dan
kemampuan yang berbeda, sebagai berikut:
● Session Beans
● Entity Beans
● Message Driven Beans
Session beans ditujukan untuk menangani interaksi dengan aplikasi client. Ada
dua jenis session beans, yaitu stateless dan stateful. Stateless, sesuai dengan
namanya, tidak menyimpan variabel yang sedang digunakan user. Variabel
apapun yang dipassing ke stateless session beans akan hilang pada saat
method selesai dijalankan. Stateful, sebaliknya, mirip dengan aplikasi web yang
mengaktifkan dukungan session. Stateful session beans dapat menyimpan data
user.
Entity beans, tidak ditujukan untuk dipanggil langsung dari aplikasi client. Entity
beans adalah solusi EJB untuk menyimpan data ke database. Aplikasi yang
menggunakan entity beans tidak perlu menulis sendiri SQL query untuk
memanipulasi database. Semua kode dan koneksi ke database ditangani oleh
EJB container.
Message Driven Beans adalah EJB yang ditujukan untuk melakukan messaging.
Ini biasanya digunakan untuk proses yang membutuhkan waktu lama, sehingga
client yang memanggilnya tidak perlu menunggu sampai selesai untuk dapat
melanjutkan pekerjaannya.
Sebelum terus belajar tentang EJB, harap diperhatikan bahwa untuk memahami cara kerja
EJB, konsep mengenai Remote Method Invocation wajib dikuasai. EJB
digunakan secara remote, dan semua pemanggilan method dari client dilakukan
melalui mekanisme RMI. Bagi yang belum menguasai konsep dan implementasi
RMI, silahkan pelajari RMI dulu.



The import javax.servlet cannot be resolved

Hari ini mau nyoba-nyoba EJB3 eh ada error di servletnya :(. Errornya kayak gini The import javax.servlet cannot be resolved jadi bingung.. musti gimana ini :/. kelihatannya sech dari errornya eclipse itu belum ngenalin servlet :\. terus gimana ya cara agar eclipse bisa ngenalin. mau aku tambah library langsung gitu? tapi library apa ya?.
Setelah di otak-atik akhirnya ketemu juga. eclipsnya itu butuh library javaee dari glassfish. jadi perlu aku tambahin plugin glassfish di eclipsnya :). download aja pluginny di sini nech
https://glassfishplugins.dev.java.net/download/




Senin, Juni 23, 2008

The Java Application Monitor (JAMon)

JAMon, adalah Java API yang memudahkan para developers untuk memonitor produksi dari aplikasi yang dikembangkannya. JAMon ini free, simple, high performance, dan thread safe, jadi enak kalo misalnya kita ingin melihat kecepatan dan performa dari aplikasi yang sedang kita kembangkan :).sehingga nantinya kita bisa menghasilkan sebuah produk aplikasi yang sangat bagus :).

Cara penggunaannnnya mudah. tingal kita nambahin aja kode-kode sedikit dimana kita ingin melihat performanya :). paling cuma dua baris :D. caranya gini nech :)

Pertama. download dulu aplikasi JAMon nya :). downloadnya disini nech...
Terus kita coba contoh sederhana dulu ya. coba kamu jalanin program ini :)


import com.jamonapi.*;

public class MonitorTest {
public static void main(String[] args) throws Exception {
Monitor mon=null;
for (int i=1; i<=10; i++) {
mon = MonitorFactory.start("myFirstMonitor");
Thread.sleep(100+i);
mon.stop();
}
System.out.println(mon); // toString() method called
}
}

Cobak lihat hasilnya :), saya rasa dari melihat hasilnya udah keliatan apa maksudnya :).

udah gitu aja.. :D hehehe


Jumat, Juni 20, 2008

JAXB

JAXB... :) JAXB ini kayak Castor tadi. Jadi JAXB itu untuk XML Parser. Metodenya agak beda :). mungkin juga lebih mudah kali ya.. :D. Caranya gini nech.. misalnya kita mau buat XML kayak gini :).


<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<todolist>
<item>
<name>Clean room.</name>
<priority>4</priority>
<task>
<description>Pick up clothes.</description>
<timeEstimate>10</timeEstimate>
</task>
<task>
<description>Straighten magazines</description>
<timeEstimate>20</timeEstimate>
</task>
</item>
<item>
<name>Get kids.</name>
<priority>10</priority>
<task>
<description>Pick up kids at school at 1525.</description>
<timeEstimate>30</timeEstimate>
</task>
</item>
<item>
<name>Bastomi</name>
<priority>1</priority>
<task>
<description>Tidur</description>
<timeEstimate>300</timeEstimate>
</task>
</item>
</todolist>



Sebelumnya perlu di ketahui dulu bentuk xsdnya.. bentuk xsd dari xml itu adalah sbb :

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="todolist">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" minOccurs="0" name="item" type="entry"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:complexType name="entry">
<xs:sequence>
<xs:element name="name" type="xs:string"/>
<xs:element name="priority" type="rank"/>
<xs:element minOccurs="1" maxOccurs="unbounded" name="task" type="subentry"/>
</xs:sequence>
<xs:attribute default="0" name="totalItemTime" type="xs:int"/>
</xs:complexType>
<xs:complexType name="subentry">
<xs:sequence>
<xs:element name="description" type="xs:string"/>
<xs:element default="0" name="timeEstimate" type="xs:int"/>
</xs:sequence>
</xs:complexType>
<xs:simpleType name="rank">
<xs:restriction base="xs:int">
<xs:minInclusive value="1"/>
<xs:maxInclusive value="10"/>
</xs:restriction>
</xs:simpleType>
</xs:schema>


Setelah itu Generate file xsd di atas, kita kasih nama filenya item.xsd misalnya. kita generate dengan cara sbb :


java -jar jaxb-xjc.jar item.xsd


eh iya seblumnya kalian harus punya dulu jaxb-xjc.jar dan jaxb-impl.jar :).

OK lanjut :)..

Setelah di generate. akan ada direktori generate. nah kita pake source ini untuk project kita :)
kita buat project baru dan jangan lupa untuk menambahkan generate tadi ke project kita :).

Buat class dengan Nama TodoList dengan isi sbb :


package jaxb2;

import generated.ObjectFactory;
import generated.Todolist;
import generated.Entry;
import generated.Subentry;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Unmarshaller;
import javax.xml.bind.Marshaller;
import java.io.File;
import java.io.FileOutputStream;
import java.io.FileNotFoundException;
import javax.xml.validation.Schema;
import javax.xml.validation.SchemaFactory;
import org.xml.sax.SAXException;

/**
*
* @author bastomi
*/

public class TodolistUtil {
private JAXBContext jaxbContext;
private ObjectFactory objectFactory;
private Todolist todolist;
private static String packageName = "generated";
private String xmlFileName = "todolist2.xml";
TodolistUtil() {
createContextAndObjectFactory();
createTodolist();
}
private void createContextAndObjectFactory() {
try {
jaxbContext = JAXBContext.newInstance(packageName);
objectFactory = new ObjectFactory();
} catch (JAXBException e) {
System.out.println("There was this problem creating a context " + e);
}
}
public Todolist getTodolist(){
return todolist;
}
private void createTodolist() {
try {
Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();

File f=new File(xmlFileName);
if(!f.exists()){
todolist =objectFactory.createTodolist();
}else{
todolist = (Todolist) unmarshaller.unmarshal(f);
}

} catch (JAXBException e) {
System.out.println("There is this problem with unmarshalling: " + e);
}
}
private void persistTodolist() {
try {

Marshaller marshaller = jaxbContext.createMarshaller();
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT,
new Boolean(true));
marshaller.marshal(todolist, new FileOutputStream(xmlFileName));

} catch (JAXBException e) {
System.out.println("There was this problem persisting the item: "
+ e);
} catch (FileNotFoundException e) {
System.out.println("There was this problem creating a destination file "
+ e);
}
}
public Entry makeNewItem(String name, int priority) {
Entry newItem = null;
// try {
newItem = objectFactory.createEntry();
newItem.setName(name);
newItem.setPriority(priority);
// } catch (JAXBException e) {
// System.out.println("There was this problem creating a new item: "
// + e);
// }
return newItem;
}
public Subentry makeNewTask(String description, int time) {
Subentry newTask = null;
// try {
newTask = objectFactory.createSubentry();
newTask.setDescription(description);
newTask.setTimeEstimate(time);
// } catch (JAXBException e) {
// System.out.println("There was this problem creating a new task: "
// + e);
// }
return newTask;
}
public void addItem(Entry item) {
todolist.getItem().add(item);
persistTodolist();
}
}


Terus buat main class nya untuk test nya :). kasih aja namanya AddNewItem, isinya kayak gini :)

package jaxb2;

import generated.Entry;
import generated.Subentry;
import java.util.List;
/**
*
* @author bastomi
*/

public class AddNewItem {

public AddNewItem(String[] args) {
TodolistUtil util = new TodolistUtil();
List<Entry> list=util.getTodolist().getItem();
for(int i=0;i<list.size();i++){
System.out.println(list.get(i).getName());
System.out.println(list.get(i).getPriority());
List<Subentry> sublist=list.get(i).getTask();
for(int j=0;j<sublist.size();j++){
System.out.println(sublist.get(j).getDescription());
System.out.println(sublist.get(j).getTimeEstimate());
}
}
if (args.length > 3) {
Entry newItem = util.makeNewItem(args[0], Integer.parseInt(args[1]));
for (int j = 2; j < args.length; j = j + 2) {
Subentry newTask = util.makeNewTask(args[j],Integer.parseInt(args[j + 1]));
newItem.getTask().add(newTask);
}
util.addItem(newItem);
}
}

public static void main(String[] args) {
String[] baru={"Bastomi","1","Tidur","300"};
new AddNewItem(baru);
}
}

Nah Setelah itu jalankan pRogramnya :). insyaallah sukses :D.

Castor...

Castor.. Apa lagi ini? Castor itu adalah cara atau library untuk membaca dan menulis XML. gampangannya XMLParser lah :D. Yaa mirip-mirip kayak SAX, DOM dll. :). Cara penggunaan Castor cukup simple sech.. tapi kita musti buat class - class yang diperlukan untuk menampung masing tag :D. contoh aja langsung ya.. kayak gini nech :)
Misal kita pengen punya file xml dg nama Customer.XML dan isinya kayak gini :)


<customer id="0001”">
<firstname>Achmad</firstname>
<mi>Ali</mi>
<lastname>Bastomi</lastname>
</customer>


cara buatnya kayak gini :).

1. Bua Class untuk masing-masing Tag

public class Customer {
private String myID;
private FirstName myFirstName;
private MI myMI;
private LastName myLastName;
public void setID (String anID) {myID = anID;}
public String getID(){return myID;}
public void setFirstName(FirstName aFirstName){
myFirstName = aFirstName;
}
public FirstName getFirstName(){return myFirstName;}
public void setMI(MI aMI){
myMI = aMI;
}
public MI getMI(){return myMI;}
public void setLastName(LastName aLastName){
myLastName = aLastName;
}
public LastName getLastName(){return myLastName;}
}
public class FirstName {
private String myText;
public void setText(String text){myText = text;}
public String getText(){return myText;}
}
public class MI {
private String myText;
public void setText(String text){myText = text;}
public String getText(){return myText;}
}
public class LastName {
private String myText;
public void setText(String text){myText = text;}
public String getText(){return myText;}
}

2. Untuk Menulis ke XMLnya buat program kayak gininech :)

import org.exolab.castor.xml.*;
import java.io.*;
public class CastorTest{
public static void main(String[] args){
// Lets make our object model. First the pieces…
Customer myCust = new Customer();
FirstName myFN = new FirstName();
myFN.setText("Fred");
MI myMI = new MI();
myMI.setText("B");
LastName myLN = new LastName();
myLN.setText("Scerbo");
// Now, structure them
myCust.setID("fbs0001");
myCust.setFirstName(myFN);
myCust.setMI(myMI);
myCust.setLastName(myLN);
// Now, "marshal" them into an XML structure of
// Castor's choosing
try {
// A stream to write the XML into
FileWriter out = new FileWriter("customer.xml");
// One method call! That’s it!
Marshaller.marshal(myCust, out);
out.close();
} catch(Exception e) {
System.out.println("Exception: "+e.getMessage());
}
}
}

3. Untuk Ngambil datanya kayak gini :)

import org.exolab.castor.xml.*;
import java.io.*;
public class CastorTest2 {
public static void main(String[] args) {
Customer myCust = new Customer();
try {
FileReader in = new FileReader("customer.xml");
myCust = (Customer)Unmarshaller.unmarshal(Customer.class, in);
} catch (Exception e) {
System.out.println("Exception: "+e.getMessage());
}
System.out.println(" Customer ID: " + myCust.getID());
System.out.println(" First Name: " +
myCust.getFirstName().getText());
System.out.println(" Middle Initial: " + myCust.getMI().getText());
System.out.println(" Last Name: " +
myCust.getLastName().getText());
}
}

Rabu, Juni 18, 2008

Maven, Apa Lagi ini?

Maven,... ehm... Apa lagi ini yak?. Maven itu kayak compiler. mirip banget kayak ant. Maven itu Project Management Framework. Maven itu tool untuk ngompile framework. tapi bisa juga maven itu lebih di katakan dari hanya sebuah buils tool. wah susah juga ya ngartiinnya.
intinya gini pokoknya. awal mula di buat maven itu ya...

macem2 framework itu kan banyak y... nah tiap-tiap framework itu punya cara masing2 untuk ngompile. jadi kita kan bingung tuch. kalo kita make dua framework sekaligus. nah giman lho caranya?. nah oleh karena itu terciptalah yang namanya maven. :D. hehehe...

kalo mau nyoba maven coba aja download di sini nech

Yach untuk sementara baru ini yang kutahu :D. kapan-kapan di sambung lagi

Apa Itu Spring ?

Spring... Apa itu ya Spring? aku juga masih belajar, apa itu sech Spring. sedalam pengertianku yach. Spring itu semacam FrameWork. FrameWork itu bisa di katakan semacam kumpulan Standard aturan-aturan atau library yg bisa digunakan untuk mempercepat proses pengembangan atau menjadikan pengembangan yg rapi terstruktur dan dapat dikembangkan dikemudian hari dengan mudah. Spring itu juga menganut MVC tapi lebih utamanya Spring itu adalah konsep yg dikenal dengan nama Dependency Injection atau inversion of control dari FrameWork.
Hubungan Objek Spring di definisikan dengan file XML. dengan begitu kita dapat menaruh commmponent yang berbda saat runtime atau untuk aplikasi yang berbeda. INi sangat berguna untuk aplikasi yang melakukan uji coba dulu atau untuk membangun aplikasi yang sudah ada di gunakan untuk customer lain.
Ada tiga tipe utama dalam dependency injection. antara lain : setter-based, constructor-based, and interface-based injection. Spring mendukung setter-based and constructor-based injection langsung. dalam arti lain Spring dapat menciptakan object referensi melalui contructor dan dapat meodifikasinya melalui objek dengan memanggil methog setter.



Spring sangat menjunjung tinggi nilai dari highly cohesive dan loosely coupled. highly cohesive itu jika kita membuat sebuah objek tertentu misalnya objek mahasiswa. ya dia cuma melakukan fungsi yg berkaitan dengan mahasiswa aja tidak dikotori sama kode2 tentang fungsi laen, misalnya klo di php, bikin kelas mahasiswa eh pas mau masukin nilai mahasiswa, ada fungsi loggin dsb, cek password, otentikasi itu namanya gak high cohesive karena gak menjalankan fungsi yang "ditakdirkan" untuk dia. Nahh klo loosely coupled gimana klo kelas kita itu gak terlalu bergantung sama yg laennya dalam artian dia bisa berdiri sendiri. misalnya klo kayak kelas tangan ama jari.. biasanya kan pas ngoding kita hardcode tuh, di constructor si tangan, klo dia punya instance array of jari yg sizenya 5 , nahh klo dispring, gak ada tuh yg gituan adanya namanya "wiring" jadi dependency itu di-"wire" ketika aplikasi jalan, lewat konfigurasi XML Seperti yang di jelasin di atas makanya disebutnya "Dependency Injection", ketergantungan dengan kelas laen yg "disuntik" saat runtime.

Selasa, Juni 17, 2008

Error "java.lang.ClassNotFoundException: org.eclipse.core.runtime.Plugin"

Pertama nyoba Eclipse. pas nginstall eh muncul error kayak gini. jadi bingung mo gimana nech. setalah di otak-atik. akhirnnya ketemu juga. gini cara ngatasinnya. sebenernya errornya itu karena ada masalah pada javanya. eclipse butuh java yang dari sun. bukan java yang biasanya otomatis terinstall dari awal. atau defaultnya. jadi kita perlu nginstall java yang dari sun. minimal versi 1.5. cara nginstallnya gini nech

cek java yang available / sesuai

$update-java-alternatives -l

seharunya keluar kayak gini

> java-1.5.0-sun 53 /usr/lib/jvm/java-1.5.0-sun
> java-6-sun 63 /usr/lib/jvm/java-6-sun
> java-6-sun 73 /usr/lib/jvm/java-7-sun
> java-gcj 1042 /usr/lib/jvm/java-gcj
terus jalannin ini

$sudo update-java-alternatives -s java-1.5.0-sun

pastikan versinya yaitu versi 1.5.0, 1.5.1 atau yang lebih baru

Terakhir. update /etc/jvm. menjadi kayak gini nech

# This file defines the default system JVM search order. Each
# JVM should list their JAVA_HOME compatible directory in this file.
# The default system JVM is the first one available from top to
# bottom.

/usr/lib/jvm/ia32-java-1.5.0-sun
/usr/lib/jvm/java-1.5.0-sun
/usr/lib/jvm/java-gcj
jika sudah seharusnya eclipse udah bisa jalan normal :)

Mengenal tanda-tanda I’rab(Nashab)

Bagi Nashab itu ada lima tanda, yaitu Fathah, alif, kasrah, ya, dan hadzfunnuun (membuang nun).
Adapun fathah maka ia menjadi tanda bagi nashab pada tiga tempat :
  1. Pada Isim Mufrad
  2. Jama’ taksir, dan
  3. fi’il Mudhari apabila masuk atasnya amil yang menashobkan dan tidak bersambung di akhirnya dengan sesuatupun
adapun alif, maka ia menjadi tanda bagi nashab pada isim-isim yang lima contohnya :
رَأَيْتُ أَبَاكَ وَأَخَاكَ (aku melihat bapakmu dan saudaramu)dan apa-apa yang menyerupai contoh ini.
Adapun kasrah, maka ia menjadi tanda bagi nashab pada jama’ muannats salim
Adapun ya, maka ia menjadi tanda bagi nashab pada tatsniyah dan jama’
Adapun Hadzfunnuun, maka ia menjadi tanda bagi nashab pada fi’il-fi’il yang lima yang ketika rafa’nya dengan tetap nun

Rabu, Juni 11, 2008

Ngasih Read More di Blogger

Sering kali aku jenuh ngeliat bloggerku yang puanjang gak karuan. postingnya panjang-panjang kurang enak dilihat. aku pengennya ngasih read more gitu di blog aku. jadi di halaman utama cuma di tampilin kata2 pendahuluan. kalo mau lebih jelas biar di klik read more. di wordpres udah bisa kayak gitu. tapi di blogger gimana ya caranya? :-?. stelah nyoba nyari2 akhirnya dapet juga caranya.

aku dapet dari
web ini nech, Carnya gini nech

1. Sign in / login di blogger dengan username Anda
2. Klik menu layout
3. Klik Edit HTML
4. Beri centang Expand Template Widget
5. Selanjutnya cari <div class=’post-header-line-1′/> <div class=’post-body’>

, kemudian selipkan kode berikut sesudah tag tadi:

6. Selanjutnya cari

, kemudian selipkan kode berikut diantara tag tadi:

sehingga tag menjadi:

7. Kemudian simpan template
8. Setelah tersimpan, klik menu Pengaturan kemudian klik Format
9. Nah, setelah masuk.. pada kotak isian paling bawah isi dengan kode:

10. Kemudian klik simpan pengaturan
11. Selesai

Selanjutnya cara penulisan posting agar artikel terpotong adalah sebagai berikut:

1. Klik menu posting
2. Klik menu Edit HTML
3. Kemudian tulislah artikel anda dengan syntax:Artikel yang ada di awal/headline <span class=”fullpost”> artikel sisa sampai selesai</span>
4. kemudian klik mempublikasikan posting
5. selesai

Sekarang lihat postingan Anda!

Smiley di Blogger

Saya lihat-lihat kayaknya kok ada yang kurang ya di blog saya? setelah di lihat - lihat kayaknya kurang ada ekspresinya :D Akhirnya kemarin saya mencoba untuk menambahkan smiley di blogger saya. biasanya para blogger nambahin smileynya dengan cara add image.. tapi kayaknya kurang enak kalo gitu. dan akhirnya saya berhasil nambahin smiley tanpa add image segala :D yaitu dengan cukup ngetik : ama D saya bisa nampilin gambar :D. berikut cara-caranya

Pertama tambahin elemen halaman di blog anda. tambahkan script ini


<script type="text/javascript">
<!--

function replaceText() {
// no support
if(!document.getElementById) {
return;
}

bodyText = document.getElementById("body");
theText = bodyText.innerHTML;

// replace
theText = theText.replace(/;\)/g,'<img style="border:none;vertical-align:middle" src="http://photos1.blogger.com/blogger/7678/802/1600/wink.gif" alt=";)" /> ');
theText = theText.replace(/;-\)/g,'<img style="border:none;vertical-align:middle" src="http://photos1.blogger.com/blogger/7678/802/1600/wink.gif" alt=";-)" /> ');
theText = theText.replace(/:D/g,'<img style="border:none;vertical-align:middle" src="http://photos1.blogger.com/blogger/7678/802/1600/biggrin.gif" alt=":D" /> ');
theText = theText.replace(/:-D/g,'<img style="border:none;vertical-align:middle" src="http://photos1.blogger.com/blogger/7678/802/1600/biggrin.gif" alt=":-D" /> ');
theText = theText.replace(/B\)/g,'<img style="border:none;vertical-align:middle" src="http://photos1.blogger.com/blogger/7678/802/1600/cool.gif" alt="B)" /> ');
theText = theText.replace(/B-\)/g,'<img style="border:none;vertical-align:middle" src="http://photos1.blogger.com/blogger/7678/802/1600/cool.gif" alt="B-)" /> ');
theText = theText.replace(/:x/g,'<img style="border:none;vertical-align:middle" src="http://photos1.blogger.com/blogger/7678/802/1600/mad.gif" alt=":x" /> ');
theText = theText.replace(/:X/g,'<img style="border:none;vertical-align:middle" src="http://photos1.blogger.com/blogger/7678/802/1600/mad.gif" alt=":X" /> ');
theText = theText.replace(/:-x/g,'<img style="border:none;vertical-align:middle" src="http://photos1.blogger.com/blogger/7678/802/1600/mad.gif" alt=":-x" /> ');
theText = theText.replace(/:-X/g,'<img style="border:none;vertical-align:middle" src="http://photos1.blogger.com/blogger/7678/802/1600/mad.gif" alt=":-X" /> ');
theText = theText.replace(/:-\(/g,'<img style="border:none;vertical-align:middle" src="http://photos1.blogger.com/blogger/7678/802/1600/sad.gif" alt=":-(" /> ');
theText = theText.replace(/:\(/g,'<img style="border:none;vertical-align:middle" src="http://photos1.blogger.com/blogger/7678/802/1600/sad.gif" alt=":(" /> ');
theText = theText.replace(/:o/g,'<img style="border:none;vertical-align:middle" src="http://photos1.blogger.com/blogger/7678/802/1600/ohmy.gif" alt=":o" /> ');
theText = theText.replace(/:O/g,'<img style="border:none;vertical-align:middle" src="http://photos1.blogger.com/blogger/7678/802/1600/ohmy.gif" alt=":O" /> ');
theText = theText.replace(/:-o/g,'<img style="border:none;vertical-align:middle" src="http://photos1.blogger.com/blogger/7678/802/1600/ohmy.gif" alt=":-o" /> ');
theText = theText.replace(/:-O/g,'<img style="border:none;vertical-align:middle" src="http://photos1.blogger.com/blogger/7678/802/1600/ohmy.gif" alt=":-O" /> ');
theText = theText.replace(/:p/g,'<img style="border:none;vertical-align:middle" src="http://photos1.blogger.com/blogger/7678/802/1600/tongue.gif" alt=":p" /> ');
theText = theText.replace(/:-p/g,'<img style="border:none;vertical-align:middle" src="http://photos1.blogger.com/blogger/7678/802/1600/tongue.gif" alt=":-p" /> ');
theText = theText.replace(/:-P/g,'<img style="border:none;vertical-align:middle" src="http://photos1.blogger.com/blogger/7678/802/1600/tongue.gif" alt=":-P" /> ');
theText = theText.replace(/:P/g,'<img style="border:none;vertical-align:middle" src="http://photos1.blogger.com/blogger/7678/802/1600/tongue.gif" alt=":P" /> ');
theText = theText.replace(/:-\)/g,'<img style="border:none;vertical-align:middle" src="http://photos1.blogger.com/blogger/7678/802/1600/smile.gif" alt=":-)" /> ');
theText = theText.replace(/:\)/g,'<img style="border:none;vertical-align:middle" src="http://photos1.blogger.com/blogger/7678/802/1600/smile.gif" alt=":)" /> ');

bodyText.innerHTML = theText;
}

-->
</script>
<!--BloggerEmoticons-->


Langkah kedua :
edit layout anda terus edit HTML nya

cari tag body, ganti tag body menjadi seperti ini nech

< body id='body' onload='replaceText();'>



setelah itu save templates. kalo udah sukses seharusnya dalam blogger anda. jika anda mengetik : dan D seharunya akan muncul gambar ini :D


Selasa, Juni 10, 2008

Mengenal tanda-tanda I’rab(Rafa')

Bagi rafa’ itu ada empat tanda, yaitu dhammah, waw, alif dan Nun

Adapun Dhammah, maka ia menjadi tanda bagi rafa’ pada empat tempat :
  1. 1.Pada Isim Mufrad,
  2. 2.Jama’ taktsir
  3. 3.Jama’ muannas salim, dan
  4. 4.fiil mudhari’ yang tidak bersambung di akhirnya dengan sesuatu
Adapun waw, maka ia menjadi tanda bagi rafa’ pada dua tempat :
  1. 1.Pada jama’ mudzakkar salim, dan
  2. 2.Isim-isim yang lima yaitu
أَبُوكَ, وَأَخُوكَ, وَحَمُوكَ, وَفُوكَ, وَذُو مَالٍ
Adapun alif, maka ia menjadi tanda bagi rafa’ pada isim-isim tatsniyyah yang tertentu
Adapun Nun maka ia menjadi tanda bagi rafa’ pada fi’il mudhari yang bersambung dengan dhamir tatsniyah, dhamir jama’, dan dhamir muannats mukhatabah.

Senin, Juni 02, 2008

Svn Branch

Terkadang kita butuh untuk membuat anak dari sebuah proyek/ modifikasi dari sebuah proyek yang lain. hal ini akan terjadi kesulitan ketika kita mengedit proyek induk kita musti mengedi juga proyek2 anaknya.. tapi kini dengan svn branch hal itu tidak masalah lagi :D

chekout svn yang akan di branch
bastomi@shark:~/Dolanan/CO$ svn co file:///home/bastomi/Dolanan/CobaBranch/Print/
buat tiga direktori branch,tags dan trunk
bastomi@shark:~/Dolanan/CO$ mkdir branch
bastomi@shark:~/Dolanan/CO$ mkdir tags
bastomi@shark:~/Dolanan/CO$ mkdir trunk
tambahkan ketiga direktori tersebut
bastomi@shark:~/Dolanan/CO/Print$ svn add branch/
A branch
bastomi@shark:~/Dolanan/CO/Print$ svn add tags
A tags
bastomi@shark:~/Dolanan/CO/Print$ svn add trunk/
A trunk
pindahkan file source file ke folder trun
bastomi@shark:~/Dolanan/CO/Print$ find * -prune -type f -exec svn mv {} trunk/ \;
commit
bastomi@shark:~/Dolanan/CO/Print/branch/PrintKedua$ svn commit -m "TEsting"
Adding PrintKedua/Bastomi.aa
Sending PrintKedua/src/print/PrintFile.java
Transmitting file data .
Committed revision 8.
untuk membuat branch tinggal copy folder trunk ke folder branch dengan nama yang baru
bastomi@shark:~/Dolanan/CO/Print$ svn copy trunk/ branch/PrintKedua
Finish