Subscribe:

Main Menu

Selasa, April 29, 2008

Syekh Siti Jenar

Syekh Siti Jenar (juga dikenal dalam banyak nama lain, antara lain Sitibrit, Lemahbang, dan Lemah Abang) adalah seorang tokoh yang dianggap Sufi dan juga salah satu penyebar agama Islam di pulau Jawa yang sangat kontroversial di Jawa, Indonesia. Tidak ada yang mengetahui secara pasti asal-usulnya, di masyarakat, terdapat banyak varian cerita mengenai asal-usul Syekh Siti Jenar.

Sebagian umat Islam menganggapnya sesat karena ajarannya yang terkenal, yaitu Manunggaling Kawula Gusti. Akan tetapi sebagian yang lain menganggap bahwa Syekh Siti Jenar adalah intelektual yang sudah mendapatkan esensi Islam itu sendiri. Ajaran - ajarannya tertuang dalam pupuh, yaitu karya sastra yang dibuatnya. Meskipun demikian, ajaran yang sangat mulia dari Syekh Siti Jenar adalah budi pekerti.

Syekh Siti Jenar mengembangkan ajaran cara hidup sufi yang bertentangan dengan cara hidup Walisongo. Pertentangan praktek sufi Syekh Siti Jenar dengan Walisongo terletak pada penekanan aspek formal ketentuan syariah yang dilakukan oleh Walisongo.

Senin, April 28, 2008

Java get Hardisk & Motherboard Serial Number

Kadang kita pengen ngerti serial number dari hardisk atau motherboard, nah kodingnya itu kayak gini nech

Hardisk Serial Number
import java.io.File;
import java.io.FileWriter;
import java.io.BufferedReader;
import java.io.InputStreamReader;

public class DiskUtils {
private DiskUtils() { }

public static String getSerialNumber(String drive) {
String result = "";
try {
File file = File.createTempFile("realhowto",".vbs");
file.deleteOnExit();
FileWriter fw = new java.io.FileWriter(file);

String vbs = "Set objFSO = CreateObject(\"Scripting.FileSystemObject\")\n"
+"Set colDrives = objFSO.Drives\n"
+"Set objDrive = colDrives.item(\"" + drive + "\")\n"
+"Wscript.Echo objDrive.SerialNumber"; // see note
fw.write(vbs);
fw.close();
Process p = Runtime.getRuntime().exec("cscript //NoLogo " + file.getPath());
BufferedReader input =
new BufferedReader
(new InputStreamReader(p.getInputStream()));
String line;
while ((line = input.readLine()) != null) {
result += line;
}
input.close();
}
catch(Exception e){
e.printStackTrace();
}
return result.trim();
}

public static void main(String[] args){
String sn = DiskUtils.getSerialNumber("C");
javax.swing.JOptionPane.showConfirmDialog((java.awt.Component)
null, sn, "Serial Number of C:",
javax.swing.JOptionPane.DEFAULT_OPTION);
}
}


Motherboard Serial Number

import java.io.File;
import java.io.FileWriter;
import java.io.BufferedReader;
import java.io.InputStreamReader;

public class MiscUtils {
private MiscUtils() { }

public static String getMotherboardSN() {
String result = "";
try {
File file = File.createTempFile("realhowto",".vbs");
file.deleteOnExit();
FileWriter fw = new java.io.FileWriter(file);

String vbs =
"Set objWMIService = GetObject(\"winmgmts:\\\\.\\root\\cimv2\")\n"
+ "Set colItems = objWMIService.ExecQuery _ \n"
+ " (\"Select * from Win32_BaseBoard\") \n"
+ "For Each objItem in colItems \n"
+ " Wscript.Echo objItem.SerialNumber \n"
+ " exit for ' do the first cpu only! \n"
+ "Next \n";

fw.write(vbs);
fw.close();
Process p = Runtime.getRuntime().exec("cscript //NoLogo " + file.getPath());
BufferedReader input =
new BufferedReader
(new InputStreamReader(p.getInputStream()));
String line;
while ((line = input.readLine()) != null) {
result += line;
}
input.close();
}
catch(Exception e){
e.printStackTrace();
}
return result.trim();
}

public static void main(String[] args){
String cpuId = MiscUtils.getMotherboardSN();
javax.swing.JOptionPane.showConfirmDialog((java.awt.Component)
null, cpuId, "Motherboard serial number",
javax.swing.JOptionPane.DEFAULT_OPTION);
}
}

Aku tahu

Aku tahu , rizkiku tak mungkin diambil orang lain
Karenanya, hatiku tenang

Aku tahu,amal-amalku tak mungkin dicuri orang lain
Maka aku sibukkan diriku untuk beramal

Aku tahu, Allah selalu melihatku
Karenanya, aku malu bila Allah mendapatiku melakukan maksiat

Aku tahu, kematian menantiku
Maka aku persiapkan bekal untuk berjumpa dengan Rabbku.

Aku tahu,

Kamis, April 24, 2008

Putri Raja Yang Memendam Rindu

Diceritakan lagi dari syaikh Ikbrahim A-khawwas rahimahullah, bahawanya dia berkata:
Pada suatu ketika, rasa hati ku tergetar untuk pergi ke kota rom, seolah olah ada orang yang memanggil manggil nama ku supaya aku berangkat segera kesana. Kemudian aku terfikir ,buat aku kesana. Rom itu adalah tempat kediaman orang orang nasrani yang sangat membenci orang orang islam. Namun begitu hati ku tetap kesitu seperti ada besi berani yang menariknya , maka aku bersiap siap akan berangkat menuja ke kota Rom itu.

Setelah berjaalan beberapa hari, tibalah aku di kota Rom itu. Aku lihat banggunan banggunan nya tinggi tinggi dan teratur. Aku pun lihat rumah rumah orang nasrani itu, dan memerhatikan kawasan kawasan mereka. Dan sukurlah pertolonggan Allah sentiasa menyertai diri ku, dan inayah Nya selalu mengiringi aku. Tidak ada suatu kesusahan pun yang menghalangi perjalanan ku itu. Setiap kali aku bertemu orang orang nasrani itu, mereka memalingkan pandangan nya daripada ku dan terus menjauh kan diri, hingga akhirnya sampailah aku dimuka sebuah gedung yang besar lagi indah pula.

Aku berhenti dan memerhatikan gedung itu, dan kelihatan disitu ada beberapa orang sedang berkumpul, masing masing lengkap dengan senjata nya, dan sitangan mereka pula ada alat alat penahan diri dari serangan orang. Apabila mereka melihat aku dating , mereka lalu mendekati ku seraya bertanya :
‘Apa kah engkau ini seorang tabib ?’
‘Benar saya adalah seorang tabib,’ aku menjawab dengan tersenyum..
‘kalau begitu bawa dia mengadap paduka Raja /’ jelas yang lain.
‘Buat apa pula saya dibawa mengadap Raja ?’ Tanya ku hairan.
‘Raja perlu kepada tabib seperti engkau ini!’ kata mereka.
Aku pun dibawa mereka untuk menggadap paduka Raja. Aku masih binggung mengapa RAJA Rom mahu mengungdang semua tabib tabit dating keistananya. Ini tentu ada pekara yang penting.

Linux Kernel Panic

Dulu aku paling gak suka kalo linux error dan errornya itu kayak gitu "Kernel Panic", wah udah panic beneran dach :D, hehehee... tapi lama kelamaan males juga kalo setiap otak-atik linux terus error kayak gini terus. akhir nya nyoba2 sok benerin :D.

Alhamdulillah, setelah di otak-atik ternyata bisa juga :D. ternyata kebanyakan linux kernel panic itu karena kernelnya linux tidak tahu letak partisi yang ada OS Linux nya. itu biasa terjadi kalo kita pasang copot hardisk. tau install2 OS di hardisk kita :D. atau mungkin mempartisi ulang hardisk kita. jadi boot looder nya lnux yang dulu mencatat letak partisi linux itu di partisi kedua ternyata pindah ke partisi ke 3 misalnya. nah itu yang bikin kernelnya linux itu panic :D hehehe....

Nah, cara benerinnya...
  1. kalo misalnya udah ada boot loader nya. kamu masuk aja ke linuxnya tapi kasih parameter dengan menunjukkan letak artisi utama atau root nya linux. terus pasti masuk dech :). atau kalo boot loader nya udah hilang, kamu pake aja cd linux yang live terus masuk change root ke partisi linux anda :)
  2. install boot loadernya.. biar ntar masuk ke linuxnya gak ada trouble, jangan lupa edit juga inittabnya, pastikan linux ngerti kalo partisi root mu itu ada di partisi yang benar.
  3. nah selesai. dan coba restart kompnya. insyaallah sudah bisa seperti biasanya :)

Senin, April 21, 2008

Buat JTable jadi slang sling warnanya :D

Lihat Program-Program yang lain itu jadi ngiri coz keliatan bagus kalo di tabelnya itu bisa selang-seling warnanya.. jadi kepikiran gimana ya agar tabelku juga bisa kayak gitu :D. setelah otak-atik akhirnya ketemu juga. aku tambahi aja di bagian preparerenderernya di JTable... jadinya kayak gini dech :D

public Component prepareRenderer(TableCellRenderer renderer, int row, int column) {
Object value = null;
ColumnPaintListener columnPaintListener = null;
Column dataSetColumn = null;
Variant variantCopy = null;
if (dbTableModel != null) {
try {
dataSetColumn = dbTableModel.getColumn(convertColumnIndexToModel(column));
dataSet.getDisplayVariant(dataSetColumn.getOrdinal(), row, (Variant) variantValue);

if (renderer instanceof TableFastStringRenderer) {
value = dataSetColumn.format(variantValue);
variantCopy = (Variant) variantValue.clone();
columnPaintListener = dataSetColumn.getColumnPaintListener();
} else if (dataSetColumn.getDataType() == Variant.INPUTSTREAM &&
renderer instanceof TableImageRenderer) {
InputStream inputStream = variantValue.getInputStream();
inputStream.reset();
if (DBUtilities.isBMPFile(inputStream) ||
DBUtilities.isGIForJPGFile(inputStream)) {
if (imageCache == null) {
imageCache = new LRUCache();
}
if ((value = imageCache.get(inputStream)) == null) {
if (DBUtilities.isGIForJPGFile(inputStream)) {
byte [] bytes = DBUtilities.getByteArrayFromStream(inputStream);
if (bytes == null) {
value = new TextIcon(Res._UnsupImg);
} else {
value = new ImageIcon(bytes);
}
} else {
Image bmpImage = DBUtilities.makeBMPImage(inputStream);
if (bmpImage != null) {
value = new ImageIcon(bmpImage);
} else {
value = new TextIcon(Res._UnsupImg);
}
}
if (value != null) {
imageCache.put(inputStream, value);
}
}
} else {
if (variantValue.isNull()) {
value = new TextIcon(" ");
} else {
value = new TextIcon(Res._UnsupImg);
}
}
} else {
value = getValueAt(row, column);
}
}
// catch DataSetException or IOException
catch (Exception e) {
DBExceptionHandler.handleException(dataSet, this, e);
}
} else {
value = getValueAt(row, column);
}
boolean rowIsAnchor = (selectionModel.getAnchorSelectionIndex() == row);
boolean colIsAnchor =
(columnModel.getSelectionModel().getAnchorSelectionIndex() == column);
boolean hasFocus = (rowIsAnchor && colIsAnchor) && hasFocus();
boolean isSelected = hasFocus || isCellSelected(row, column);
if(getColumnClass(column).equals(Boolean.class) && (value instanceof String)){
value=false;
}
Component component = renderer.getTableCellRendererComponent(this, value,
isSelected, hasFocus,
row, column);
if (dbTableModel != null &&
columnPaintListener != null && component instanceof CustomPaintSite) {
Color foreground = component.getForeground();
Color background = component.getBackground();
columnPaintListener.painting(dataSet, dataSetColumn, row, variantValue, (CustomPaintSite) component);
if (variantCopy != null && !variantCopy.equals(variantValue) &&
component instanceof TableFastStringRenderer) {
try {
((TableFastStringRenderer) component).setValue(dataSetColumn.format(variantValue));
} catch (Exception e) {
DBExceptionHandler.handleException(dataSet, this, e);
}
}

if (isSelected) {
component.setForeground(foreground);
component.setBackground(background);
}
}

if(row%2!=0 && !isSelected)
component.setBackground(slangsling);

return component;
}

JDBTable error renderer

Exception occurred during event dispatching:
java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Boolean
at javax.swing.JTable$BooleanRenderer.getTableCellRendererComponent(JTable.java:5360)
at com.bits.lib.dbswing.JBdbTable.prepareRenderer(JBdbTable.java:1064)
at com.birosoft.liquid.LiquidTableUI.paintCell(LiquidTableUI.java:298)
at com.birosoft.liquid.LiquidTableUI.paintCells(LiquidTableUI.java:190)
at com.birosoft.liquid.LiquidTableUI.paint(LiquidTableUI.java:101)
at javax.swing.plaf.ComponentUI.update(ComponentUI.java:143)
at javax.swing.JComponent.paintComponent(JComponent.java:758)
at javax.swing.JComponent.paint(JComponent.java:1022)
at javax.swing.JComponent.paintChildren(JComponent.java:859)
at javax.swing.JComponent.paint(JComponent.java:1031)
at javax.swing.JViewport.paint(JViewport.java:747)
at javax.swing.JComponent.paintChildren(JComponent.java:859)
at javax.swing.JComponent.paint(JComponent.java:1031)
at javax.swing.JComponent.paintChildren(JComponent.java:859)
at javax.swing.JComponent.paint(JComponent.java:1031)
at javax.swing.JComponent.paintChildren(JComponent.java:859)
at javax.swing.JComponent.paint(JComponent.java:1031)
at javax.swing.JLayeredPane.paint(JLayeredPane.java:564)
at javax.swing.JComponent.paintChildren(JComponent.java:859)
at javax.swing.JComponent.paintToOffscreen(JComponent.java:5111)
at javax.swing.RepaintManager$PaintManager.paintDoubleBuffered(RepaintManager.java:1386)
at javax.swing.RepaintManager$PaintManager.paint(RepaintManager.java:1317)
at javax.swing.BufferStrategyPaintManager.paint(BufferStrategyPaintManager.java:301)
at javax.swing.RepaintManager.paint(RepaintManager.java:1132)
at javax.swing.JComponent.paint(JComponent.java:1008)

dari kemarin mau benerin bug ini muales.. tapi akhirnya musti di benerin..
tenyata errornya itu pada saat manggil method prepare renderer di JDBTable.
yaitu JDBTable saat mau ngerender kolom yang tipenya boolean ternyata value yang di dapet saat getValueAt(row,col) itu hasilnya null string. jadi akan terjadi error saat manggil method getTableCellRendererComponent nya.

nach agar tidak terjadi demikian kita perlu untuk mengcasting value tadi ke bentuk object boolean, dengan menambahi method seperti ini.

if(getColumnClass(column).equals(Boolean.class) && (value instanceof String)){
value=false;
}

Jumat, April 18, 2008

Buat Pop3 Server Sendiri

Semalem kecapekan abis pergi keluar kota. eh di mintai tolong bantuin buat pop3 server untuk tugas kuliahnya koko. akhirnya y di coba aja buat. eh ternyata buat pop3 server itu tidak sesulit kelihatannya.

Pake java bisa di buat dengan mudah. tinggal kita buat sebuah program socket java untuk buka port 110 terus listening. nunggu ada permintaan. nah terus program kita musti ngerti perintah2 pop3 itu apa aja. paling perintah2 dalam pop3 itu cuman USER, PASWD, RETR dll. lah :D

nah misal setiap ada perintah
USER bastomi
  • Program kita tinggal nyimpan aja kalo yang akan login itu user bastomi, dan nampilin pesan +OK. trus ketika lanjut di ketik
PASWD 123456
  • program kita langsung mengecek apakah user yang dimasukkan tadi ( bastomi) passwordnya itu 123456 g? cara ngeceknya di java bisa bermacam2 tergantung autentikasi email yang di pake itu apa? kalo pake autentikasi database ya kita ngeceknya pake database kalo lain ya pokoknya harus sesuai ama autentikasi yang di pake mail servernya. terus ketika di cek autentikasinya dan ternyata cocok. lanjut aja langsung kita baca email dari user tersebut. di mail server biasanya letak dari email2 itu di simpan di MAILDIR. nah di program kita juga perlu ngeset tuch yang namanya MAILDIR itu dimana? terus kita gabungin dengan user yang login. dan ketemu dech file2 dari email yang ada :)
  • biasanya email yang baru itu ada pada direktori new dari MAILDIR usernya. nah kita tinggal baca aja email tersebut dan uda h beres
  • kita kasih pesan ke user kalo ada message baru :). nah saat user ngasih perintah lagi kayak gini
RETR 1
  • kita tinggal nampilkan aja email yang ada tadi ke user :). udah gitu aja...

ternyata mudah kan? :)

Rabu, April 16, 2008

Repository Ubuntu Feisty

Kalo jaman dulu linux itu sangat sulit kalo kita butuh nginstall program baru. nginstall program2 yang kita ingingkan. tapi sekarang tidak lagi :) dengan adanya repository kita isa langsung nginstal dengan sekali perintah :). kadang kita juga masih ribet kalo mau nginstal aja musti conncet ke internet. atau buka tutu cdrom kita. ini ada cara enak agar kita tidak ribet degan semua itu :), yaitu membuat repository ubuntu di hardisk kita sendiri.
Berikut adalah langkah langkah buat repository ubuntu :D

1. Copy semua cd atau dvd anda ke hardisk (terserah taruh mana aja :D )

2. setelah anda copy semua filenya seharusnya susunan direktorinya sbb :Direktori letak anda mencopy

---pool
-------main
--------- file2 installer
-------multiverse
--------- file2 installer
-------restricted
--------- file2 installer
-------universe
--------- file2 installer
---dist
-------feisty
-----------main
----------------binary-i386
--------------------Packages.gz
-----------multiverse
----------------binary-i386
--------------------Packages.gz
-----------restricted
----------------binary-i386
--------------------Packages.gz
-----------universe
----------------binary-i386
--------------------Packages.gz
dst....

3. lakukan perintah scanpackage

ali@bastomi:/home/ubrep/feisty# dpkg-scanpackages pool/main /dev/null | gzip -9c > dists/feisty/main/binary-i386/Packages.gz
ali@bastomi:/home/ubrep/feisty# dpkg-scanpackages pool/multiverse /dev/null | gzip -9c > dists/feisty/multiverse/binary-i386/Packages.gz
ali@bastomi:/home/ubrep/feisty# dpkg-scanpackages pool/restricted/ /dev/null | gzip -9c > dists/feisty/restricted/binary-i386/Packages.gz
ali@bastomi:/home/ubrep/feisty# dpkg-scanpackages pool/universe/ /dev/null | gzip -9c > dists/feisty/universe/binary-i386/Packages.gz

4. update source list dengan menambahkan baris berikut (letak file : /etc/apt/source.list)

deb file:///home/ubrep/feisty feisty main
deb file:///home/ubrep/feisty feisty multiverse
deb file:///home/ubrep/feisty feisty restricted
deb file:///home/ubrep/feisty feisty universe

itu kalo anda mau make untuk localhost aja, kalo mau agar dapat diakses jaringan bisa anda ganti file dengan http atau ftp sesuai keinginan anda :D
5. yang terakhir update dr source list yg baru

ali@bastomi:/home/ubrep/feisty# apt-get update

6. udah slesai......... :)

Selasa, April 15, 2008

Java Database dengan Borland

Dulu saya kurang sreknya dengan java yaitu masalah koneksi ke databasenya.. lumayan ribet... yang gak suka aku, kalo aku buat sebuah program java yang konek ke database, ada beberapa kelemahan yaitu :
  1. saat aku buat sebuah form dia akan butuh satu koneksi kedatabase. itu kalo formnya satu.. bayangkan kalo ada beberapa form.. dan jalan bersamaan. dia akan membuat sekian banyaknya koneksi sama dengan banyaknya form. ini akan sangat memperlambat jaringan
  1. kalo program databasenya itu desktop, kita akan sangat kesulitan untuk buat tabel2 yang kayak pake vb itu. buat textfield yg langsung konek ke databasenya, wah ribet pokoknya

Untung saja di java itu ada borland :D, kita bisa mudah untuk koneksi ke databasenya ;;)

kelemahan2 di atas bisa di tangani dengan mudah pake component borland :)

kalo butuh nampilkan data dengan tabel.. kita tinggal setdataset nya ke dataset tabel yang ingin di tampilkan .
kalo mau save tinggal dataset.savechanges()
kalo mau buka tinggal dataset.Load()
wes gampang pokoke :D

thanks Borland :)

WANITA IDAMAN

Tatkala siang meninggalkan peraduannya, maka malampun akan datang menempati singgasananya. Dan bila sekarang panas matahari bersinar membakar dedaunan dan bebijian, pasti lain waktu bebijian dan dedaunan akan tumbuh subur diguyur oleh deras hujan.. Memang, demikianlah kehidupan yang selalu berputar silih berganti . Ada siang ada malam, ada panas dan ada hujan, yang telah diciptakan secara berpasang-pasang. Begitupun dengan kehidupan manusia, yang telah tercipta dengan adanya dua jenis yang berlawanan. Yaitu “laki-laki” atau “pria” dan “wanita” atau “perempuan”.
Sudah menjadi kodrat dari Sang kuasa, bahwa wanita adalah tercipta sebagai pendamping pria. Dan hal itu dapat terwujud bila antara pria dan wanita disatukan dalam suatu ikatan pernikahan yang sesuai dengan tatanan Syari’at Islam.
Sebuah pernikahan tidaklah dapat begitu saja dilansungkan tanpa adanya penentuan calon pendamping hidup oleh sang pria. Padahal tidaklah mudah bagi kaum pria untuk bisa memilih dan menentukannya. Karena dari sekian juta jiwa wanita yang tercipta di dunia ini dengan segenap daya tarik yang dimilikinya, hanyalah salah satu (keculi adanya poligami) diantara mereka yang akan terpilih dan menjadi pendampingnya.
Seyogyanya tidaklah pada sembarang wanita, seorang muslim menentukan pilihan sebagai pendamping hidupnya. Islam telah menetapkan batasan-batasan tertentu bagi seorang muslim untuk memilih wanita yang ideal sebagai pasangannya.

WANITA IDEAL DALAM PANDANGN ISLAM
Memilih istri yang cocok untuk dirinya adalah merupakan suatu keharusan bagi muslim, karena hal ini sebagai kunci keberhasilan dalam berumah tangga Disebabkan oleh banyak faktor, seorang pria bisa tertarik untuk menikahi seorang wanita. Diantaranya adalah faktor kekayaan, kecantikan, derajat/pangkat, keturunan, budi pekerti dan keagamaan. Dari sekian banyak faktor tersebut, hanyalah agama dan budi pekerti sebagai pilihan utama dalam diri seorang wanita. Karena sesungguhnya kecantikan itu bisa pudar dimakan usia, sedangkan harta ataupun tahta akan bisa lenyap oleh kondisi yang memporak porandakannya.
Tidaklah berarti bila suatu ketinggian derajat dan keluhuran nasab tanpa disertai dengan kemuliaan akhlaq dan agama yang kuat. Ini adalah suatu argumen mengapa agama dan akhlaq lebih diutamakan dalam memilih seorang wanita.
Demikian ini sudah terbukti bahwa dua faktor itulah yang akan mengantarkan pada ketenangan hati dan ketentraman jiwa menuju hiup bahagia dan ridloNya.

NADHOR KEPADA CALON ISTRI
Pernikahan itu adalah perbuatan yang sakral, dilakukan untuk menyatukan dua jenis dan dua karakter yang berbeda. Oleh karenanya Islam telah mengajarkan kepada umatnya agar melihat, mengamati dan meneliti kepada wanita yang akan dijadikan istri. Dan itu adalah merupakan sunnah Nabi yang telah dijadikan sebagai peradaban Islam.
Diciptakan seorang wanita dengan menyandang berbagai daya tarik dan keistimewaan pada dirinya. Begitu pula dengan seorang pria. Diantara keduanya saling memiliki keistimewaan dan daya tarik yang kadang berbeda supaya dapat saling melengkapi diantara keduanya.
Tidaklah merupakan suatu perbuatan dosa jika seorang pria melakukan nadhor kepada ajnabiyyah yang akan dijadikan istri baginya. Bahkan sebagian dari ulama’ sholih tidak akan menikahkan anak perempuannya sebelum adanya nadhor dari pria yang meminang untuk putrinya. Demikian ini bertujuan untuk mencari kecocokan diantara kedua belah pihak dalam menghadapi kehidupan berumah tangga nantinya dan supaya tidak menimbulkan penyesalan dikemudian hari.

Tapi syari’at Islam telah memberikan batasan dalam nadhor tersebut. Islam hanya memperbolehkan wajah dan kedua telapak tangan calon istri untuk dilihat. Dengan melihat wajah akan terlihat paras si wanita, dan dengan melihat kedua telapak tangan akan menunjukkan bentuk tubuhnya. Dan bila nadhor itu dilakukan pada selain batas yang telah ditentukan dalam Islam maka itu termasuk ajaran syaithon yang telah dibudayakan oleh orang-orang kafir.

Dan apabila seorang pria tidak dapat melakukan nadhor dengan sendirinya kepada calon istri, maka hendaknya ia memerintahkan kepada seorang wanita yang telah dipercaya untuk melakukannya, yang diharapkan wanita ini nantinya akan memberikan infomasi kepadanya tentang sifat-sifat calon istrinya tersebut. Karena Rasulullah sendiri pernah memerintahkan kepada shahabat Ummu Sulaim untuk melakukan nadhor kepada seorang wanita. Rosulullah bersabda, “lihatlah pada tumitnya lalu ciumlah bau mulutnya”.

Namun sayang sungguh sayang, kebanyakan dari masyarakat masa kini telah meninggalkan peradaban islam yang disunnahkan ini. Mereka berasumsi bahwa melakukan nadhor itu adalah perbuatan orang-orang bodoh. Karena bila nadhor itu sudah dilakukan dan ternyata tidak diketemukan kecocokan diantara kedua belah pihak maka diantara satu dan lainnya akan mempergunjingkan sisi negatif dari wanita yang di nadhornya, kemudian hal ini dapat menyebabkan keengganan pria lain untuk memilih wanita tersebut. Wana’udzu billahi min syarri dzalik.


Sumber : http://www.langitan.net

Senin, April 14, 2008

Borland DBSwing Problem

Selama saya make borland ada beberapa trouble yang saya temui. salah satunya yaitu menampilkan tanggal di componenet Borland (JdbTable, JdbTextField, JdbLabel dll).
component borland tersebut tidak bisa menampilkan data dengan tipe tanggal, jam atau timestamp. jika kita memakai JRE versi 1.6, Tapi jika kita memakai JRE versi 1.5 data tanggal, jam ataupun timestamp akan tampil dengan baik
dan ternyata setelah di selidik Masalahnya disebabkan karena method
protected String getDefaultPattern(int variantType)

di com.borland.dx.text.VariantFormatStr. pada JRE 1.5 kebawah jika tidak ada Formatter atau Displaymask tidak di set di program, fungsi diatas akan mengambil resource dari

SystemResourceBundle.getLocaleElementsBundle(locale);

yang akan mendapatkan resource ini

sun.text.resources.LocaleElements

resource ini tidak ada pada JRE 1.6 dan akan melemparkan exception lalu ditangkap dan di setting ke pattern default yaitu "". inilah sebabnya kenapa pada component Borland ini tidak bisa menampilkan data tanggal, jam atau timestamp.

agar component tersebut dapat berjalan dengan baik. maka perlu di set displaymasknya di tiap colom. seperti berikut :

kolom.setDisplayMask("dd/MM/yyyy");

nah setelah itu, seharusnya component borland akan dapat menampilkan data dengan benar :)

Buat Status Bar di Java

Kemarin saya bingung mau buat status bar di programku agar keliatan lebih elegan gitu. kayak program2 yang gede2 itu... tapi aku nyarih statusbar di java kok gak ada ya???
jadi bingung gimana buatnya?
akhirnya saya putuskan untuk membuat sendiri pake panel terus di tumpuki label2 gitu
agar lebih keren panelnya sya set border Bevel

setBorder(javax.swing.BorderFactory.createBevelBorder(javax.swing.border.BevelBorder.LOWERED));

terus agar keliatan keren lagi antar label di pisah pake JSeparator :D

terus kadangkan di statusbar itu munculin capslock, numlock ama scrollock itu kan? on apa off?
nah di java itu agar tahu satus capslock itu pake koding gini nich

boolean hasil=Toolkit.getDefaultToolkit().getLockingKeyState(KeyEvent.VK_CAPS_LOCK);
System.out.println(hasil);
if(hasil){
lblCaps.setText("CAPS");
}else{
lblCaps.setText(" ");
}
hasil=Toolkit.getDefaultToolkit().getLockingKeyState(KeyEvent.VK_NUM_LOCK);
System.out.println(hasil);
if(hasil){
lblNum.setText("NUM");
}else{
lblNum.setText(" ");
}
hasil=Toolkit.getDefaultToolkit().getLockingKeyState(KeyEvent.VK_SCROLL_LOCK);
System.out.println(hasil);
if(hasil){
lblScoll.setText("SCR");
}else{
lblScoll.setText(" ");
}

nah yang terakhir mau aku tambahi jam.... d java kalo mau nampilin jam ya biasa aja kayak gini nich

SimpleDateFormat tf=new SimpleDateFormat("HH:mm:ss");
SimpleDateFormat df=new SimpleDateFormat("dd MMMM yyyy");
lblTime.setText(tf.format(new Date()));
lblTime.setToolTipText(df.format(new Date()));

nah udah jadi dech status bar bikinan ku :))

Jumat, April 11, 2008

Buat Picture Box di java :D

menampilkan gambar di java bisa langsung di panel atau desktope pane nya langsung
dengan cara getGraphics nya terus drawImage atau drawLine...
sesuai keinginan anda.. mau make yang mana...

tapi kelemahannya saat kita sudah mengesetnya.. tau menampilkan gambarnya ternyata gambar itu tidak permanent nempel di panel tersebut, dalam arti lain gambar tadi itu hilang saat kita membuka jendela atau window yang lain, saat gambar kita di tumpuki window atau form lain gambarnya hilang :(

nah saya jadi pengen gimana ya agar gambar nya tidak bisa mlenca mlence gitu :(... akhirnya aku dapat caranya..

yaitu dengan menurunkan component panel atau desktopepane atau apa saja yang bisa di setgraphicsnya di java. terus saya mengoverwrite method paintComponent(Graphics g). nah di dalamnya kita bisa menulis dech itu gambar2 yang kita inginkan. dalam arti lain sekarang kita udah punya semacam component PictureBox di java :D. nah tinggal kemahiran kita membuat component kita itu lebih enak dan mudah saat mengeset imagenya :D

image kita ini juga bisa di buat STRETCH, CENTER, SCALE dll lho.. nah itu tergantung coding nya :D
ini sedikit coding yang saya buat :

public void paintComponent(Graphics g) {
super.paintComponent(g);
if (image!=null){
if(layout.equalsIgnoreCase(STRETCH))
g.drawImage( image, 0, 0, getWidth(),getHeight(), null );
else if(layout.equalsIgnoreCase(DEFAULT))
g.drawImage( image, 0, 0, null );
else if(layout.equalsIgnoreCase(CENTER))
g.drawImage(image, (getWidth()-image.getWidth(null))/2, (getHeight()-image.getHeight(null))/2,image.getWidth(null),image.getHeight(null), null );
else if(layout.equalsIgnoreCase(SCALE)){
int imageWidth=image.getWidth(null);
int imageHeight=image.getHeight(null);
int x1=0;
int x2=0;
int y1=0;
int y2=0;
if(imageWidth>imageHeight){
x1=0;
x2=getWidth();
y2=(int)(((float)x2/(float)imageWidth)*imageHeight);
y1=(int)(getHeight()-y2)/2;
}else{
y1=0;
y2=getHeight();
x2=(int)(((float)y2/(float)imageHeight)*imageWidth);
x1=(int)(getWidth()-x2)/2;
}
g.drawImage(image, x1, y1,x2,y2, null );
}


}
}

semoga sukses :D

Driver canon IP1700 for Linux

Untuk driver canon ip1700 dapat dipakai driver ip2200
pada ubuntu sudah tersedia driver canon ip2200 tinggal kita edit-edit dikit selesai dah
langkah pengeditan
1. cari apa ada driver nya????

ali@bastomi:/usr/share/cups/model# apt-cache search cnijfilter
cnijfilter-ip2200-lprng - Canon Inkjet Printer Filter Ver.2.60 for Linux
cnijfilter-common - Canon Inkjet Printer Filter Ver.2.60 for Linux
cnijfilter-ip2200 - Canon Inkjet Printer Filter Ver.2.60 for Linux

2. instal semua driver diatas

ali@bastomi:/usr/share/cups/model# apt-get install cnijfilter-ip2200-lprng
ali@bastomi:/usr/share/cups/model# apt-get install cnijfilter-common
ali@bastomi:/usr/share/cups/model# apt-get install cnijfilter-ip2200

3. edit file ppd nya ip2200

letaknya di /usr/share/cups/model

edit baris berikut

*MaxMediaWidth: "612"
*MaxMediaHeight: "1656"

menjadi

*MaxMediaWidth: "215"
*MaxMediaHeight: "584"

kemudian edit juga baris ini

*OpenUI *Resolution/Output Resolution: PickOne
*DefaultResolution: 600
*Resolution 600/600 dpi: "

menjadi

*OpenUI *Resolution/Output Resolution: PickOne
*DefaultResolution: 600
*Resolution 600/600 dpi: "

dan yang terakhir tambah baris berikut

*OpenUI *CNQuality/Quality: PickOne
*DefaultCNQuality: 3
*CNQuality 2/High: "2"
*CNQuality 3/Normal: "3"
*CNQuality 4/Standard: "4"
*CNQuality 5/Economy: "5"
*CloseUI: *CNQuality

lalu simpan dech filenya

4. buat symbolic link untuk file-file berikut

ali@bastomi:ln -s /usr/lib/libpng12.so.0 /usr/lib/libpng.so.3
ali@bastomi:ln -s /usr/lib/libtiff.so.4 /usr/lib/libtiff.so.3
ali@bastomi:ln -s /usr/lib/libxml2.so.2 /usr/lib/libxml.so.1

5. restart cups

ali@bastomi: /etc/init.d/cupsys restart

6. tambahkan printer ip1700 anda
nah kalo cups udah direstart, sekarang daftarkan printer anda,buka webbrowser kesayangan anda. ketik localhost:631

setelah tampil administrator tambahkan rinter anda
udahlah untruk selanjutnya anda pasti tahu :D

7. testing
coba ngeprint apa gitu terserah anda, kalo anda mengikutinya dengabn benar insyaallah bisa

kalo gak bisa
edit file /etc/cups/cupsd.conf

ganti parameter LogLevel
yang awalnya
LogLevel warning
diganti menjadi
LogLevel debug

lalu restart cups anda lagi
setelah itu ketik

tail -f /var/log/cups/error_log

dan lihat errornya sendiri& benerin sendiri
Kakakakaka......3x

Kamis, April 10, 2008

Feisty rdesktop Problem/Fix

Selama ini saat saya migrasi ubuntu dari edgy ke feisty saya menemukan beberapa masalah, salah satunya yaitu masalah remote desktop ke windows server 2003. terjadi error pada saat login.

untuk lebih jelasnya bisa anda lihat di
https://bugs.launchpad.net/ubuntu/+source/rdesktop/+bug/104332.

Untuk memperbaikinya bisa anda download program yang udah fix di
http://archive.ubuntu.com/ubuntu/pool/main/r/rdesktop/rdesktop_1.5.0-1ubuntu1~prop1_i386.deb

setelah anda download trus install pasti bisa... :D

Untuk lebih jelasnya coba lihat web ini ....

http://linuxneophyte.com/feisty-rdesktop-problemfix/

Rabu, April 09, 2008

Install Linux Lewat Jaringan

Terkadang kita kesulitan jika harus menginstall linux lewat cd, bisa saja karena gak punya cd ato cdrom nya soak, hehe..6x. hal ini bisa di atasi dengan cara install linux lewat jaringan atau PXE. hal ini akan sangat membantu ketika anda mau menginstall linux di komputer yang banyak secara bersamaan.

Cara Installasi sevicesnya
program yang di butuhkan :

  1. tftpd-hpa
  2. dhcp3-server
  3. netkit-inetd

1.tftpd-hpa

  • - install dulu programnya…

apt-get install ftpd-hpa

  • - edit file /etc/inetd.conf tambahkan

tftp dgram udp wait root /usr/sbin/in.tftpd /usr/sbin/in.tftpd -s /var/lib/tftpboot

  • - trus

sudo update-inetd –enable BOOT

  • - jangan lupa untuk membuat direktori tftp di /var/lib/tftpboot
  • - pada ubuntu 6.06 server dan Feisty Fawn 7.04 (/etc/inetd.coonf tidak ada) jd edit lah /etc/default/tftpd-hpa

RUN_DAEMON=”yes”
OPTIONS=”-l -s /var/lib/tftpboot”

2. dhcp3-server

  • instal dulu programnya
apt-get install dhcp3-server
  • edit file dhcpd.conf nya
contohnya kayak gini..

ddns-update-style ad-hoc;

option subnet-mask 255.255.255.0;
option broadcast-address 192.168.1.255;
option routers 192.168.1.253;
option domain-name-servers 192.168.1.253;
option domain-name “shark.bits-soft.com”; # You really should fix this
option option-128 code 128 = string;
option option-129 code 129 = text;

get-lease-hostnames true;

subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.100 192.168.1.199;
filename “pxelinux.0″;
}

next-server 192.168.1.252;
option root-path “192.168.1.252:/opt/ltsp/i386″;

3. netkit-inetd

  • install dulu programnya
apt-get install netkit-inetd
  • kamu ambil image linux feisty dari internet, bisa kamu ambil dari sini http://archive.ubuntu.com/ubuntu/dists/feisty/main/installer-i386/current/images/netboot/
  • trus kamu ekstrak netboot nya taruh di /var/lib/tftpboot
  • trus dah selesai dah…


Assalamualaikum

Buat Blog lagi :D