2011 in review
The WordPress.com stats helper monkeys prepared a 2011 annual report for this blog.
Here’s an excerpt:
A San Francisco cable car holds 60 people. This blog was viewed about 1,200 times in 2011. If it were a cable car, it would take about 20 trips to carry that many people.
Forward : Lowongan PT. Sangkuriang Internasional
PT Sangkuriang Internasional merupakah sebuah perusahaan IT dan Multimedia dengan salah satu produk andalan Game Nusantara Online (nusol.web.id), Smart Card System, dan Rich Internet Application (contoh: www.indonesia.travel). Website PT Sangkuriang Internasional bisa dilihat di www.sangkuriang.co.id
Saat ini Sangkuriang Studio sedang membutuhkan programmer bersifat full time. Adapun pos lowongan yang kami buka dalam kesempatan kali ini adalah:
- C# Programmer
- Menguasai program ASP.NET (nilai lebih)
- Pernah membuat program C# yang mengakses SQL Server
- Database Admin ( DBA )
- Mengerti MySQL, PostgreeSQL, atau SQL Server 2008
- Mengerti Ms Access
Jobdesc: design, Manage, Configure Database
Fasilitas :
- Makan Siang dan Malam
- Kosan (AC)
Lokasi Kerja : Jakarta
Jika anda tertarik, kirim email dengan lampiran CV dan ijazah ke hr@sangkuriang.co.id
*Cantumkan kode posisi yang dituju pada subjek mail
Mudik 2011 Bag. 1 “Bekti karo sing nggawe urip, sing urip – urip, sing nguripi”
Ngrejeng, 31 Agustus 2011
Bekti karo sing nggawe urip, sing urip – urip, sing nguripi.
Seperti tahun – tahun lalu, sholat idul fitri di pedusunan tempat aku tinggal dilaksanakan lebih awal 1 hari dari ketetapan pemerintah, yaitu jatuh pada tanggal 30 Agustus 2011 hari selasa. Pada hari itu juga, seharian aku disibukan mulai dari sholat idul fitri dipagi hari, sungkem sama ayah dan ibu dan kakek, ziarah kubur dan silatirahmi ke rumah kakek dan nenek dari ibu dan di lanjutkan ke rumah sodara – sodara yang lain.
Dari semua itu yang paling berkesan adalah aku berkunjung ke rumah salah satu pakde ku yang rumahnya sebelahan dengan rumah yang aku tinggali sekarang. Aku berkunjung sendiri siang itu dan seperti biasa, aku memancing – mancing agar beliau memberi wejangan tentang filosofi hidup yang tentunya sangan kental dengan kejawen. Saat itu beliau hanya berkata cukup pendek, namun buat ku dalem banget, beliau mengatakan “Wong urip ki kudu bekti karo sing nggawe urip, sing urip – urip lan sing nguripi”. Kalau diartikan kata per kata, artinya kurang lebih “orang hidup harus berbakti kepada yang membuat hidup (Tuhan), yang menghidup – hidupi, dan yang menghidupi“
Bila diuraikan adalah kita selaku manusia, haruslah berbakti kepada tuhan yang telah memberi kita hidup, kepada orang tua yang telah merawat, memberi makan, membesarkan kita, dan kepada leluhur, yang berarti orang – orang yang telah mendahului, karena berkat mereka lah ada kakek dan nenek, ada ayah ibu, dan ada nya kita. Dengan kata lain dia lah cikal bakal semoro bumi yang ada di desaku.
Pentingnya berbakti juga beliau sertai contoh nyata yang ada disini. Karena memang bila seorang anak sudah tidak berbakti kepada orang tua misalnya, dan orang tua terlanjur sakit hati, bisa-bisa si anak bakal kualat. Dan bila sekarang menuai kesuksesan dalam hidupnya, besok atau lusa bakal sengsara karena orang tua yang sudah tidak merestui.
Selain kami berdiskusi tentang hal itu, sengaja aku bertanya tentang tradisi “Apem” yang sampai sekarang masih menjadi tradisi dan di laksanakan setiap hari lebaran. Apem sendiri adalah makanan yang bahan dasarnya dari tepung beras dikasih gula dan air kemudian di aduk dan di goreng. (bila di tangan yang ahlinya, makanan ini akan terasa gurih dan empuk
).
Apem ini dibuat setelah sholat idul fitri dan setelah ziarah kubur. Hal ini digunakan untuk memperingati rioyo (hari raya). Dan apem sendiri diartikan sebagai lambang “Ampuro – ampuranan” atau “maaf memaafkan”. Saling memaafkan sesama manusia yang masih hidup dan mendoakan yang sudah meninggal.
Satu lagi, yang aku dapat, dari pengamatanku sendiri, adalah bahwa kebahagiaan orang tua saat hari lebaran adalah melihat anak-anaknya pulang dan berkumpul dirumah. Mereka lebih memilih hal itu walaupun tidak di beri uang sepeserpun dari pada diberi kiriman uang tapi anaknya tidak bisa pulang. So, yang belum mudik, mudik lah sekarang dan buat orang tua tersenyum penuh kebahagiaan yang tanpa di buat – buat.
Selamat mudik, selamat berkumpul bersama keluarga, selamat idul fitri minal aidzin wal faidzin taqobaullahumina waminkum, mohon maaf lahir dan batin.
PS : Mohon koreksi kalo ada yang kurang pas..
Membuat File Zip ber-password dengan Java
Langsung saja, kali ini tentang membuat file zip ber-password di java. Berikut adalah contoh untuk hanya 1 file saja yang akan dibuat file zip-nya, disini digunakan library tambahan zip4j_1.1.7 , alamat download-nya lupa.. monggo digoogling sendiri ..
class CreateZipPassword
import java.io.File;
import net.lingala.zip4j.core.ZipFile;
import net.lingala.zip4j.exception.ZipException;
import net.lingala.zip4j.model.ZipParameters;
import net.lingala.zip4j.util.Zip4jConstants;
/**
*
* @author HFZ
*/
public class CreateZipPassword {
//Contoh untuk 1 file saja yang mau di zip-in
public void create(String directoryFile, String directoryZip){
try {
// directoryFile Adalah directory tempat file yang mau dibikin zip nya
// directoryZip Adalah directory tempat file hasil Zip
ZipFile zipFile = new ZipFile(directoryZip);
File filesToAdd = new File(directoryFile);
ZipParameters parameters = new ZipParameters();
parameters.setCompressionMethod(Zip4jConstants.COMP_DEFLATE);
parameters.setCompressionLevel(Zip4jConstants.DEFLATE_LEVEL_NORMAL);
parameters.setEncryptFiles(true);
parameters.setEncryptionMethod(Zip4jConstants.ENC_METHOD_STANDARD);
parameters.setPassword("passwordZip");
zipFile.addFile(filesToAdd, parameters);
} catch (ZipException e) {
e.printStackTrace();
}
}
}
Dan contoh untuk memanggilnya ,
Class Main
public class Main {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
String dirFile = "H:/Wordpress/ZipPassword/";
String namaFile = "screenshot-1.png";
String dirZip = "H:/Wordpress/ZipPassword/";
CreateZipPassword createZipPassword = new CreateZipPassword();
createZipPassword.create(dirFile+namaFile, dirZip+namaFile+".zip");
}
}
Hasilnya adalah file “screenshot-1.png.zip” dengan password “passwordZip” yang file.
Semoga bermanfaat. Mohon saran dan masukan kalau ada yang kurang pas ..
Sebersit Coretan yang Semalam Sempat Mengusir Kantuk Hingga Subuh
Walaupun memang tidak bisa dipaksakan, tapi sebenarnya bisa untuk dipelajari, asal ada niat untuk belajar dan niat untuk bisa. Dan pada kenyataannya, niat itupun tidak ada padamu, maka akan hampir mustahil untuk bisa kamu pelajari apalagi untuk bisa. Pondasi keseriusan yang sebenarnya sudah ditanamkanpun disisi user seakan hancur dalam sekejap, menjadi puing yang tak ada artinya. Tetesan peluh dan airmata tetap tidak bisa mengubah niat ataupun digunakan sebagai senjata untuk membuka kesempatan merubah niatmu.
Sebenarnya kamu hanya perlu percaya dan memberi sedikit ruang juga waktu, namun lagi – lagi tidak ada space kosong dalam memory yang kamu punyai. Seakan – akan kamu menutup semua service dan port yang ada, sehingga hanya dengan previlage tertentu saja user bisa log in. Resiko crash memang mengangga lebar, namun akan selalu aku usahakan untuk menghindari resiko tersebut dengan menerapkan management resiko yang ada. Tapi semua management resiko itu tidak akan ada artinya bila tidak ada dukungan dari aktornya. Dan ternyata kamulah aktornya yang mempunyai previlage penuh, yang bisa menentukan semua kebijakan yang harus ataupun tidak untuk dijalankan.
So.. apa next action yang harus aku lakukan? Haruskah aku menghapus semua history yang sudah sejak lama ter-generated dan tersimpan rapi dalam folder yang terenkripsi? Ataukah harus di-reset dangan tetap mempertahankan history yang ada dan memulai project baru?
Please, beri aku kesempatan untuk menganalisa dan mendesain ulang agar semua bisa running tanpa bug dan menghilangkan atau paling tidak meminimalkan resiko crash hingga win – win solution dapat dicapai.
(sebersit coretan yang semalam sempat mengusir kantuk, hingga subuh)
(maf kalo sedikit lebay
)
File Transfer Protocol (FTP) di Java (Bag.2)
Sesuai yang telah ditulis pada bag. 1 yaitu untuk meneruskan tentang meng-copy dari dan ke FTP di java, maka langsung sajaberikut contoh yang sudah pernah saya bikin, yang pertama adalah contoh untuk meng-copy file dari FTP ke komputer lokal. Dan selanjutnya adalah contoh untuk meng-copy file dari komputer lokal ke FTP.
1. FtpCopyFile.java
/*
* Meng-Copy File dari FTP ke komputer Lokal. dengan spesific directory.
* Mengembalikan nilai TRUE bila berhasil meng-Copy, dan sebaliknya.
*/
public class FtpCopyFile {
//public boolean copyFile (FTPClient ftp, File file, String directoryServer) throws FileNotFoundException, IOException{
public boolean copyFile(FTPClient ftp, String pathOutputFile, String directoryServer, String fileNameServer) {
boolean status = true;
System.out.println("file OutPut From FTP : "+pathOutputFile+fileNameServer);
System.out.println("Dir Server FTP : "+directoryServer);
File fileOut = new File(pathOutputFile+fileNameServer);
try {
if (fileOut.exists()) {
System.out.println("skip yang ini");
} else {
FileOutputStream dfile = new FileOutputStream(fileOut);
ftp.retrieveFile(directoryServer+fileNameServer, dfile);
}
//ftp.disconnect();
} catch (IOException e) {
status = false;
}
return status;
}
}
2. FtpPasteFile.java
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.apache.commons.net.ftp.FTPClient;
/**
*
* @author HFZ
*/
public class FtpPasteFile {
public void paste(FTPClient ftp, String dirFtp, String pathFile, String file) throws IOException{
FileInputStream fin = null;
try {
fin = new FileInputStream(pathFile + file);
ftp.setFileType(FTPClient.BINARY_FILE_TYPE);
ftp.storeFile(dirFtp + file, fin);
} catch (FileNotFoundException ex) {
Logger.getLogger(FtpPasteFile.class.getName()).log(Level.SEVERE, null, ex);
} finally {
try {
fin.close();
} catch (IOException ex) {
Logger.getLogger(FtpPasteFile.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
}
Skenario pemanggilanya kurang lebih sebagai berikut :
/**
*
* @author HFZ
*/
public class skenario {
public void skenarioPemanggilan() {
System.out.println("Connecting to FTP");
String server = "ip FTP Sever";
String username = "username FTP";
String password = "password FTP";
//Directory FTP, tempat file yang akan di copy
String dirFtpCopy = "/folderFTP Copy/";
//Directory FTP, tempat yang akan buat naroh file dari komputer local
String dirFTPPaste = "/folder FTP Paste/";
String pathLocalComputerCopyFromFTP = "Local" + System.getProperty("file.separator") + "HasilCopy"
+ System.getProperty("file.separator");//Dir output Copas From FTP
String pathLocalComputerPasteToFTP = "Local" + System.getProperty("file.separator") + "Untuk diPaste ke FTP"
+ System.getProperty("file.separator");//Dir output Copas From FTP
FTPClient fTPClient = new FTPClient();
FtpConnection ftpConnection = new FtpConnection();
boolean statusConnection = false;
statusConnection = ftpConnection.connect(fTPClient, server, username, password);//Connect to FTP
System.out.println("Status Conn : " + statusConnection);
if (statusConnection) {
ReadDirectoryFtp rdFTP = new ReadDirectoryFtp();
//Folder dirFtpCopy
ArrayList<String> filesFTP = rdFTP.showAllFile(fTPClient, dirFtpCopy);//get FileName on FTP dir
//1. Copy file From FTP dirFtpCopy to pathLocalComputerCopyFromFTP
if (!filesFTP.isEmpty()) {// Di folder dirFtpCopy
for (int x = 0; x < filesFTP.size(); ++x) {
FtpCopyFile ftpCopyFile = new FtpCopyFile();
boolean statusCopyFTP = false;
//1 File yang dicopy
statusCopyFTP = ftpCopyFile.copyFile(fTPClient, pathLocalComputerCopyFromFTP, dirFtpCopy, filesFTP.get(x));
System.out.println("status Copy From FTP : " + statusCopyFTP);
}//end for read dir FTP
}//end if dir ftp not null
//2. Paste to dirFTPPaste
ReadDirectory readLocalDirectory = new ReadDirectory();
String[] filesToPasteToFTP = readLocalDirectory.read(pathLocalComputerPasteToFTP);
if (filesToPasteToFTP.length != 0) {
for (int b = 0; b < filesToPasteToFTP.length; ++b) {
FtpPasteFile ftpPaste = new FtpPasteFile();
try {
//Meng-copy satu per satu file yang ada di pathLocalComputerPasteToFTP
//ke FTP pada folder dirFTPPaste
ftpPaste.paste(fTPClient, dirFTPPaste, pathLocalComputerPasteToFTP, filesToPasteToFTP[b]);
} catch (IOException ex) {
Logger.getLogger(Action.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
}
}
}
Sekian, semoga bermanfaat, mohon koreksi bila ada kesalahan. terimakasih. ![]()
Berikut salah satu rule dalam topik ini , http://hengkysunarno.wordpress.com/2011/02/01/pertama-pada-kategori-ini/
File Transfer Protocol (FTP) di Java (Bag.1)
OK, pada kesempatan kali ini mari belajar tentang FTP di java, diantaranya adalah meng-copy file dari dan ke FTP.
Untuk saat ini, akan dicoba untuk membuat class untuk koneksi ke FTP dan untuk membaca isi dari suatu folder pada suatu directory FTP. class untuk meng-copy file nya akan ada di bag. 2
Langsung saja, pertama – tama yang harus dilakukan adalah membuat koneksi ke FTP tersebut, disini koneksinya akan dibuat terpisah dengan nama class ftpConnection. Disini digunakan library commons-io-1.4.jar yang bisa didownload di sini http://commons.apache.org/io/download_io.cgi
1. ftpConnection.java
import java.io.IOException;
import java.net.SocketException;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPReply;
/**
*
* @author HFZ
*/
/*
* Buat koneksi ke FTP. mengembalikan nilai TRUE bila berhasil melakukan koneksi, dan sebaliknya.
*/
public class FtpConnection {
public boolean connect(FTPClient ftp, String server, String username, String password){
int reply;
boolean status = false;
try {
ftp.connect(server);
ftp.login(username, password);
reply = ftp.getReplyCode();
if (FTPReply.isPositiveCompletion(reply)){
System.out.println("Koneksi Berhasil");
status = true;
} else {
System.out.println("Koneksi Gagal");
ftp.disconnect();
}
} catch (SocketException ex) {
ex.printStackTrace();
} catch (IOException ex) {
ex.printStackTrace();
}
return status;
}
}
Kemudian akan dibuat class yang akan membaca isi suatu folder pada suatu direktory FTP, disini dinamakan class ReadDirectoryFTP yang akan mengembalikan nilai berupa nama file dalam bentuk list of string,
2. ReadDirectoryFTP.java
import java.io.IOException;
import java.util.ArrayList;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPFile;
/**
*
* @author HFZ
*/
public class ReadDirectoryFtp {
public ArrayList<String> showAllFile(FTPClient ftp, String pathFtp) {
ArrayList<String> listFileNames = new ArrayList<String>();
try {
FTPFile[] listFtpFiles = ftp.listFiles(pathFtp);
for (FTPFile ftpFile : listFtpFiles) {
if (ftpFile.getType() == FTPFile.FILE_TYPE) {
System.out.println("FTPFIle : "+ftpFile.getName());
listFileNames.add(ftpFile.getName());
}
}
//ftp.disconnect();
//Harusnya ini dilakukan disconnect, namun dalam kasus ini disconnect akan dilakukan pada
//class yang memanggil class ini.
} catch (IOException ex) {
Logger.getLogger(ReadDirectoryFtp.class.getName()).log(Level.SEVERE, null, ex);
}
return listFileNames;
}
}
Dan Mereka tidak Pernah Tahu
Kadang udah mati – matian berkorban buat orang lain, melakukan hal – hal bodoh, juga sampai mengesampingkan kepentingan pribadi demi orang lain. Bukan terimakasih atau apresiasi positif yang diperoleh. Tapi justru cemoohan, dan aroma permusuhan yang dikibarkan.
Bukan berarti ingin ucapan terimakasih atau sekotak hadiah yang terbungkus kertas kado rapi dengan hiasan pita warna – warni, namun paling tidak, hargailah usaha yang sudah dilakukan dengan sungguh – sungguh itu. Dengan tidak mencemooh, atau memandang sinis dengan hasil yang dicapai. Kamu tidak tau, perjuangan yang telah dilakukan akan usaha itu. Kamu juga tidak tahu pahit getirnya perjuangan itu.
Manusia, makin berumur sudah seharusnya semakin bisa befikir dan bersikap dewasa. Selain kepentingan diri sendiri, sudah seharusnya sadar dengan adanya orang lain beserta kepentinggannya. Bukan malah apatis dan menghalalkan segala cara untuk memuaskan diri sendiri serta pura – pura buta akan keberadaan orang sekitar.
Dan bukan berarti aku juga sudah lulus dari hal – hal diatas. Tapi paling tidak dengan ini aku tau apa yang seharusnya aku lakukan. Dan paling tidak aku berusaha untuk tidak berbuat hal – hal negatif seperti diatas dan berusaha berbuat hal – hal positif seperti hal positif diatas. Dari pengalaman itu juga aku belajar satu hal. Setiap kali berbuat untuk sipa saja, tidak usah punya keinginan akan pujian, apresiasi positif, hadiah, dll. Karena itu semua belum tentu akan aku dapatkan biar bagaimanapun beratnya perjuanganku, biar bagaimanapun besarnya pengorbananku.
Yang perlu dilakukan, adalah berusaha sebaik mungkin, kalau orang lain tidak perduli, walaupun itu untuk kepentingan dia, lakukan saja sebaik mungkin untuk diri sendiri, anggap itu adalah tanggung jawab yang harus dituntaskan dengan sebaik mungkin dan “just be legend to your self” (mengutip kata – kata JRX SID).
PS : – Coretan lama yang baru sempat aku posting sekarang, kalau dari history file-nya, coretan ini aku bikin tanggal 03 Januari 2011
- Tidak ada magsud untuk menyindir atau menyinggung siapapun, hanya sekedar “menuangkan” yang ada di kepala.
Convert Tipe Data XMLGregorianCalendar ke java.util.Date
Hal ini sering aku temui akhir – akhir ini saat bikin EJB dan mengharuskan mengambil data dari database Server kemudian disimpan pada database Client, dan sebaliknya menggunakan web service.
Saat data di-query pada database server, dan dikirimkan ke client melalui web service, data yang semula bertipe “Date” tersebut di Client formatnya berubah menjadi XMLGregorianCalender. Tentu hal ini tidak bisa di-inputkan langsung di database Client yang ber-format Date. Untuk itu, data ini perlu di-convert dulu sehingga menjadi berformat Date.
Langsung saja, ini lah potongan Code-nya :
XMLGregorianCalendar tempCal = varTipeXMLGrerorianCalender; java.util.Date dateBegin = tempCal.toGregorianCalendar().getTime();
Selain itu, bisa juga convert dari Date ke XMLGregorianCalender, tentunya dengan cara yang sedikit berbeda dengan potongan code diatas.
Sekian, semoga bermanfaat, mohon koreksinya kalau ada yang kurang pas.
