snippetjournal

– notes, snippet codes, and my journal

Posts Tagged ‘java

Java Material : Conference, Seminar and Java Enthusiast you must stalk !

leave a comment »

Sebagai catatan, Java di indonesia di “musim trend Startup” indonesia seperti tidak terdeteksi atau seperti gerakan underground, sedangkan di US/Eropa mereka masih saja aktif dan teknologi java pun berjalan bersama sama dengan teknologi lain dan metode/konsep baru di bidang programming yang sedang trend.

Sebagai informasi kita bisa mengikuti web dan event dari pivotal, java zone, java one dan evangelist atau penggiat pengiat java di luar indonesia, mereka cukup aktif di twitter.

Advertisements

Written by snippetjournal

October 29, 2015 at 6:23 am

Posted in Programming

Tagged with

My Story of “Searching for JAVA CMS”

leave a comment »

Berawal mula dari ide untuk membuat web profile atau web semacam blog saya mencari cari CMS untuk mengakomodir ide saya tersebut (dikarenakan saya malas membuat dari nol/scratch 😀 ), tetapi setelah seharian googling saya memilih drupal dibanding wordpress karena banyak materi di internet yang mengatakan drupal mempunyai security dan kualitas source code yang lebih baik di banding wordpress. (feature dan seo friendly saya kesampingkan terlebih dahulu)

Tetapi karena basic saya programmer java, dan skill PHP saya hanya sebatas guest book vanilla PHP yang saya buat sewaktu kuliah, saya pun jadi ragu, kemudian saya putuskan mencari cari CMS dari bahasa JAVA :D. Dan saya pun menemukan beberapa link untuk lebih jauh mencari tahu bermacam macam CMS dari bahasa JAVA ini hehe.

Dari beberapa link diatas ternyata banyak sekali CMS berbasis Java yang sebenarnya cukup populer, stable, robust serta proven dan dapat di andalkan, dan populer disini artinya di luar sana, di luar indonesia :).

Di indonesia web profile atau web blog masih di dominasi oleh bahasa PHP beserta framework nya karena memang dari sisi teknologi sangat ramah dengan developer indonesia, dari sisi infratruktur, light dan harga (hosting), komunitas, kemudahan integrasi dari sisi design dan implementasi. karena memang dari sisi harga hosting, banyaknya penyedia hosting dan komunitas yang besar ini menjadi kekuatan PHP untuk menjadi anak emas di lingkungan small and light application.

Karena basic saya programmer java maka akhirnya saya menangguhkan mencoba drupal (PHP) dan memutuskan mencoba dengan teknologi java yang memang saya sudah sangat akrab, dan saya memutuskan untuk mencoba magnolia berdasarkan rating di web cms critics, serta review review di beberapa artikel di internet yang saya temukan, dan sepertinya (karena saya masih menduga-duga) lebih ringan dibanding liferay. Faktor terlalu banyak memakan resources ini pula lah yang menjadikan Java menjadi “kalah” dibanding PHP di sisi small and light application

Untuk saat ini saya hanya bisa berbagi pengalaman dalam proses pencarian saya dalam mencari CMS berbasis Java untuk kemudian review dari sisi pribadi saya masih belum bisa memberikan review, mungkin kemudian hari setelah benar benar mencoba dan meng-implementasikan insya allah akan saya tulis di blog saya ini 😀

Random Stuff 

saya membuat bagian ini karena ketika dalam proses pencarian saya menemukan link link yang menarik berkenaan dengan materi yang saya bahas di atas, ini juga sebagai catatan pribadi saya 🙂

catatan : saya menulis ini dengan bahasa indonesia karena, saya rasa dan memang dari hasil searching di google saya tidak banyak menemukan materi yang berkaitan dengan CMS JAVA dalam bahasa indonesia 😀

Written by snippetjournal

July 8, 2015 at 4:46 am

Posted in Collection Link, Opini, Programming

Tagged with , ,

Send Multipart/Attachment email Using MimeMessageHelper

leave a comment »

Berikut ini penjelasan singkat dari penggunaan javaMailSender yang saya implementasikan pada project. Dengan menggunakan velocity template kita dapat menggunakan template html dengan mudah pada class email sender kita.

anda bisa menggunakan beberapa template email yang bertebaran di internet, saya sendiri mengambil template email dari zurb.com.

pada contoh kedua link di atas menurut saya implementasi kode ketika akan mengirim email cukup banyak boilerplate codes yang digunakan. sehingga saya mencoba untuk membungkus code tersebut nya agar lebih mudah penggunaannya dan menghindari menggunakan code secara berulang ulang.

  • Pertama buat class , class ini hanya berfungsi sebagai penampung dari attribute attribute yang diperlukan pada java mail sender.
  • Kemudian buat class class ini berperan sebagai class yang ditujukan untuk mengirim email. autowired object javaMailSender dan velocityEngine agar bisa kita gunakan untuk mengirim email.
  • Yang perlu diperhatikan adalah ketika kita akan membuat email yang di sertakan email attachment maka constructor MimeMessageHelper harus di buat TRUE, new MimeMessageHelper(mm, true);

setelah class class tadi sudah di buat maka cara penggunaan javaSender pun akan berubah, berikut cara nya jangan lupa untuk autowired class emailSender.

  • yang perlu diperhatikan, saya mengubah object String menjadi file yang akan di attachment.
  • emailErrorLogs.vm adalah template html yang akan di tampilkan pada email. cukup ubah ekstensi html menjadi vm

Written by snippetjournal

October 17, 2014 at 2:16 pm

Read Xlsx Using POI

leave a comment »

File type from uploaded user

private MultipartFile file0;

//getter setter

Instead of using iteration to read each cell in xlsx file, i`m using standard loop. its more easier to find an empty cell in each row. if we using iteration it will skip the empty cell and jump to the next cell that has a value.

method to get header column in xlsx file

public Map<String, Object> readXlsxFile(InputStream xlsxStream) throws IOException {
        Map<String, Object> returnMap = new HashMap<>();

        try {
            Map<Integer, String> headerMap = new HashMap<>();
            List<Map<String, Object>> detailContents = new ArrayList<>();

            //create xssfworkbook instance to read xlsx input stream
            XSSFWorkbook xlsxFile = new XSSFWorkbook(xlsxStream);
            //get first sheet
            XSSFSheet sheet = xlsxFile.getSheetAt(0);

            this.getHeaderColumnAndDetails(headerMap, detailContents, sheet);

            LOGGER.info(" header map ");
            for (Map.Entry<Integer, String> map : headerMap.entrySet()) {
                LOGGER.info("key " + map.getKey());
                LOGGER.info("value " + map.getValue());
            }

            LOGGER.info("header map " + headerMap.size());
            LOGGER.info("detailContents map " + detailContents.size());

            returnMap.put("headerMap", headerMap);
            returnMap.put("detailContents", detailContents);

            xlsxStream.close();

        } catch (Exception ex) {
            ex.printStackTrace();
            LOGGER.error(ex.getMessage(), ex.getCause());
        }
        return returnMap;
    }




private void getHeaderColumnAndDetails(Map<Integer, String> headerMap, List<Map<String, Object>> detailContents, XSSFSheet sheet) {

        //get header
        Row headerRow = sheet.getRow(0);
        Iterator<Cell> cellHeaderIterator = headerRow.cellIterator();
        while (cellHeaderIterator.hasNext()) {
            //get cell object
            Cell cell = cellHeaderIterator.next();
            headerMap.put(Integer.valueOf(cell.getColumnIndex()), cell.getStringCellValue().trim());
        }

        //get Details
        int headerSize = headerMap.size();
        LOGGER.info("======================================= sheet.getLastRowNum() " + sheet.getLastRowNum());
        for (int rowCount = 1; rowCount <= sheet.getLastRowNum(); rowCount++) {
            Row detailRow = sheet.getRow(rowCount);
            Map<String, Object> detailMap = new HashMap<>();
            LOGGER.info("======================================= rowCount " + rowCount);

            for (int cellCount = 0; cellCount < headerSize; cellCount++) {
                LOGGER.info("======================================= cellCount " + cellCount);
                Cell cell = detailRow.getCell(cellCount);
                if (cell != null) {
                    if (cell.getCellType() == Cell.CELL_TYPE_NUMERIC) {
                        if (HSSFDateUtil.isCellDateFormatted(cell)) {
                            detailMap.put(headerMap.get(cellCount), cell.getDateCellValue());
                        } else {
                            //force the celltype using string type, its easier to handle cell value in string           
                            //instead in numeric, if using getNumericCellValue it will return data type in double
                            cell.setCellType(Cell.CELL_TYPE_STRING);
                            detailMap.put(headerMap.get(cellCount), cell.getStringCellValue().trim());
                        }
                    }
                    if (cell.getCellType() == Cell.CELL_TYPE_STRING) {
                        detailMap.put(headerMap.get(cellCount), cell.getStringCellValue().trim());
                    }
                } else {
                    detailMap.put(headerMap.get(cellCount), null);
                }

            }
            detailContents.add(detailMap);
        }
    }
	

using the method :

Map<String, Object> dataMap = service.readXlsxFile(modelForm.getFile0().getInputStream());

reference :
http://howtodoinjava.com/2013/06/19/readingwriting-excel-files-in-java-poi-tutorial

Written by snippetjournal

February 5, 2014 at 9:43 am

Posted in Programming

Tagged with , ,

Configure Max – Min JVM memory and Set remote – attach debugger

leave a comment »

  • set maximum and minimum memory in JVM
    -Xms512m -Xmx1024m -XX:PermSize=128m -XX:MaxPermSize=512m -XX:NewSize=192m -XX:MaxNewSize=384m
  • set remote / attach debugger
    -Xdebug -Xrunjdwp:transport=dt_socket,address=7951,server=y,suspend=n 
  • set remote / attach debugger And maximum and minimum memory in JVM
    -Xdebug -Xrunjdwp:transport=dt_socket,address=7951,server=y,suspend=n -Xms512m -Xmx1024m -XX:PermSize=128m -XX:MaxPermSize=512m -XX:NewSize=192m -XX:MaxNewSize=384m

Written by snippetjournal

January 9, 2014 at 3:48 am

Posted in Programming

Tagged with , , ,

Java Code Geek : Interview Collection links

leave a comment »

Written by snippetjournal

December 18, 2013 at 6:47 am

Posted in Collection Link, Programming

Tagged with ,

Tentang Java Part 1

leave a comment »

artikel bagus tentang java programming

Hei aneh dengan kalimat diatas ?  sebenar nya keyword diatas saya dapat melalui admin panel wp saya. rupa nya ada orang iseng yang ingin mencari sebuah artikel bagus tentang java programming. hmm artikel yang bagus itu definisi nya seperti apa ? saya sendiri tidak tahu :D, karena penilaian seseorang berbeda beda bukan hehe.

Karena menurut saya keyword tersebut menarik saya akan mencoba membahas nya, klo yang saya tangkap dari user yang mengetik keyword diatas dia ingin belajar java tingkat lanjut tetapi bingung harus mencari di mana, saya ada beberapa web yang saya jadikan referensi dalam mencari cari materi tentang java. di bawah ini akan saya share 😀

  • Bingung apa yang harus dipelajari terlebih dahulu dalam belajar java (learning curve) ? coba check disini
  • Bingung dalam langkah awal java, mungkin buku mas ifnu bima dapat membantu 😀
  • Masih bingung dalam fundamental java coba deh cari buku deitel java, java how to program  buku ini lebih menitik beratkan pada dasar java dan j2se, ingin lanjut ke web ? coba deh cari tentang servlet, Head First Servlets and JSP
  • Hei di java konsep RDMS di buat seperti OOP lhoo, coba deh cari tahu tentang ORM (Hibernate dan JPA)
  • Ingin lebih lanjut dengan aplikasi enterprise java ? lanjut ke JEE dengan ejb nya 😀
  • Ingin mencoba “racikan” lain dari JEE ? coba deh spring framework 😀
  • Di java kita akan selalu bekerja dengan framework dan libraries, terkadang merepotkan tapi sekarang sudah ada maven kok yang membantu kita memanage libraries tersebut, monggo di cari tahu teman teman 🙂
  • Masih banyak technologies pada java mulai dari web application container nya, Scheduler (Quartz scheduler/Spring scheduler), JMS, web service, konsep REST full (umum bukan hanya java) dll. saya sendiri masih belajar jadi tidak bisa banyak memberi tahu tentang materi materi tersebut :D. Silahkan di Googling saja bagi teman teman yang tertarik 😀
  • Belajar juga harus mencari guru, saya menyebut nya mentor, dan banyak yang bisa kita jadikan mentor di internet, seperti : mas ifnu bima, mas endy, mas kusandriady dll. anda bisa melihat link link dari blog roll saya :D. untuk saat ini yang masih aktif menulis menurut saya hanya om endy saja, silahkan di explore
  • Ada juga lho belajar melalu java podcast milik mas ifnu bima, lumayan dapat pengetahuan tentang java tingkat lanjut. wajib untuk di dengar
  • Coba deh kalian ikut daftar github, cari cari source example yang berguna. pada saat ini saya hanya menemukan punya om endy saja yang cukup menarik
  • Ingin lebih meng -explore java lebih jauh coba cek java.dzone.com, java code geeks, terkadang saya juga mencari materi di code project dan mkyong (andalan jika ingin mencari quick tutorial ):D
  • Masih kurang puas :D, coba deh kalian ikut forum atau komunitas, ini sangat membantu lho, tetapi ingat ya untuk yang masih baru dalam java usahakan selalu mencari jawaban dahulu dari om gugle :D, jangan dikit dikit nanya selalu minta di “suapin” :D. jadi programmer susah ? silahkan ganti jurusan atau ganti pekerjaan anda. programmer itu bukan sembarang profesi, hanya orang orang yang berpassion pada programming aja yang bisa bertahan 😀
  • Sebagian besar materi bahasa inggris ???? 😦 , kecewa ? jangan kecewa. tapi harus terpacu, karena programming asal usul nya dari negara yang berbahasa inggris, jadi pasti materi yang advance dan expert pasti berbahasa inggris, ga ada rugi nya kok belajar bahasa inggris :D. pada saat ini bahasa inggris selain menjadi bahasa international menjadi bahasa pengetahuan, karena mau tidak mau kita “berkiblat” kesana  (US and Europe )
  • Hei sudah explore semua ? atau kurang menarik bahasan diatas, coba deh explore design pattern, entah design pattern secara umum atau khusus (java), akan sangat membantu. lebih lanjut cari tahu tentang GOF (Gang Of Four) atau belajar design pattern dari seri buku head first 😀
  • Hei hei tahu ga klo EJB, JSF dan Spring framework itu bekerja di sisi backend. ingin mencoba berkreasi di sisi front end, coba deh teman teman cari tahu tentang primefaces, prime-ui, vaadin, zkoss mereka ini berada di sisi UI component.
  • Atau teman teman ingin mempermudah templating html coba deh cari tahu tentang zurb foundation dan bootstrap.
  • Hmm apa lagi nanti deh saya tambahin klo ada yang di ingat, klo kalian yang membaca punya masukan silahkan dia comment 😀

To follow the path:
look to the master,
follow the master,
walk with the master,
see through the master,
become the master.

illustration 

Written by snippetjournal

December 16, 2013 at 6:40 am

Posted in Opini, Programming

Tagged with , , , ,