2012 in review

The WordPress.com stats helper monkeys prepared a 2012 annual report for this blog.

Here’s an excerpt:

600 people reached the top of Mt. Everest in 2012. This blog got about 1,900 views in 2012. If every person who reached the top of Mt. Everest viewed this blog, it would have taken 3 years to get that many views.

Click here to see the complete report.

Advertisements

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.

Click here to see the complete report.

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
  1. Menguasai program ASP.NET (nilai lebih)
  2. Pernah membuat program C# yang mengakses SQL Server
  • Database Admin ( DBA )
  1. Mengerti MySQL, PostgreeSQL, atau SQL Server 2008
  2. Mengerti Ms Access

Jobdesc: design, Manage, Configure Database

Fasilitas :

  1. Makan Siang dan Malam
  2. 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. 2 Makna lain Pendidikan versi Bapak

Ditulis di Ngrejeng, Senin 29 Agustus 2011

Puasa hari terakhir untuk bulan puasa tahun ini (Untuk di tempat tinggal ku, karena menurut pemerintah 1 syawal jatuh pada hari rabu).

Malam ini ada sodara yang datang kerumah, ngobrol – ngobrol dari pengalaman hidup sampai, pendidikan, filosofi hidup sampai malasalah solial politik. Dan lagi – lagi bapak ku malam ini berkata tentang pendidikan dan menyangkut filosofi hidup yang lagi – lagi juga membuatku manggut – manggut.

Bapak ku mengibaratkan masalah pendidikan yang memang untuk daerah sini bisa dibilang masyarakatnya kurang begitu peduli. Dan bapakku termasuk yang minoritas (yang peduli tentunya). Beliau berkata ibarat orang mau mancing, pendidikan ibarat pancingan + umpan beserta pengetahuan tentang lokasi yang banyak ikannya. Jadi bila seorang pemancing sudah memiliki hal – hal diatas, maka ia bisa mancing selamanya tanpa kehabisan ikan yang akan di pancing. Bila satu tempat udah habis, maka bisa pindah ke tempat lain.

Berbeda dengan orang yang dianter ke suatu kolam yang banyak ikannya, kemudian diberi pancingan + umpan dan disuruh memancing lalu ditinggal pergi. Maka si orang ini akan dengan mudah mendapatkan ikan dengan jumlah banyak dalam waktu yang singkat. Tapi bagaimana bila ikan yang ada di kolam itu sudah habis? Tentu akan habis juga dia sebagai pemancing, karena dia tidak tau lokasi lain / kolam lain.

Jadi walaupun dengan pendidikan tidak bisa menjamin orang akan mendapatkan kesuksesan hidup dari segi finansial, namun pendidikan adalah modal, bekal yang berharga dan penting dalam menjalani hidup. Banyak orang tua yang “eman” atau sayang mengeluarkan dana untuk pendidikan anak – anak nya, karena dalam anggapan mereka,

“Ngapain sekolah tinggi – tinggi, Cuma buang – buang duit”

“Ngapain sekolah tinggi – tinggi, sekolah ga bikin kaya juga”

Dan lain –lain, jadi sering aku jumpai anak muda yang sekolah sampai SMA atau kuliah, bila ia belum sukses, maka ia akan menjadi bahan gunjingan orang sekampung, dan bila ia sukses, maka banyak yang keki dengan kesuksesannya.

Semua kembali pada diri masing-masing, monggo menyikapi bagaimana… 🙂

PS :

–     Maaf bila ada yang tidak berkenan, ini hasil dari pengamatan dan data yang ada.

–     Mohon koreksi bila ada yang kurang pas. 🙂

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 ,  https://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(&quot;Koneksi Berhasil&quot;);
                status = true;
            } else {
                System.out.println(&quot;Koneksi Gagal&quot;);
                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&lt;String&gt; showAllFile(FTPClient ftp, String pathFtp) {
        ArrayList&lt;String&gt; listFileNames = new ArrayList&lt;String&gt;();
        try {
            FTPFile[] listFtpFiles = ftp.listFiles(pathFtp);
            for (FTPFile ftpFile : listFtpFiles) {
                if (ftpFile.getType() == FTPFile.FILE_TYPE) {
                    System.out.println(&quot;FTPFIle : &quot;+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;
    }
}

 

Coretan FTP ini saya buat sudah lama, maaf bila codingannya membosankan dan kurang teratur, tapi sudah dicoba, dan berjalan. serta tidak ada interfaces, karena sifatnya cuma simulasi copy file dari dan ke FTP.
Terimakasih semoga membantu

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.