snippetjournal

– notes, snippet codes, and my journal

Archive for February 2014

Serialization In Java

leave a comment »

I found this article has good explanations and easy to understand 🙂

Written by snippetjournal

February 25, 2014 at 8:45 am

Facebook Buy Whatsapp For 19 Billion dollars

leave a comment »

Pagi ini berita menarik muncul di beberapa social media dan beberapa komunitas, ya Facebook (FB) membeli WhatsApp (WA) dengan harga yang cukup mahal, lebih mahal ketika membeli instagram, dan kabar yang beredar ketika BBM (blackberry messenger) di tawarkan kepada FB harga nya tidak semahal ini (gosip, saya tidak menemukan data pada google/search engine). memang harga FB ketika membeli WA 19 billion dollars tidak lah semua nya cash, ada beberapa bagian menjadi saham dll. (silahkan baca article dia atas)

Yang menarik disini FB akan membiarkan WA menjadi merek atau perusahaan yang independent, tidak merubah alur bisnis dari WA. target FB sendiri membiarkan WA adalah agar pengguna WA terus melejit, pada saat kondisi sekarang WA adalah messenger pertama yang traffic data nya hampir mengalahkan text message atau SMS. menarik bukan, secara bisnis membeli WA adalah pilihan tepat bagi FB, tetapi langkah membiarkan tanpa mencampuri alur bisnis WA oleh FB lebih menarik lagi.

WA menjanjikan akan tetap tanpa iklan, game dan tipuan tipuan pemasaran lain nya (gimmick?).  dari semua demam messenger di smartphone kita yang sudah menggila, komunikasi dengan instant messaging adalah salah satu  hal penting/vital. dan WA adalah satu satu nya untuk saat ini messaging yang fokus hanya pada komunikasi text. dan saya sendiri suka dengan WA. tapi dengan di beli nya FB oleh ini memberikan saya intuisi yang tidak enak 🙂 (opini)

“WhatsApp is on a path to connect 1 billion people. The services that reach that milestone are all incredibly valuable,” said Mark Zuckerberg, Facebook founder and CEO. “I’ve known Jan for a long time and I’m excited to partner with him and his team to make the world more open and connected.”

Jika di lihat tujuan WA dan FB mengkoneksi kan semua orang, kemungkinan besar WA akan terintegrasi FB dan data data WA tidak lagi dinikmati oleh WA saja, tapi juga akan di nikmati FB, WA memiliki nomor telephone para pengguna nya, begitu juga FB dan tadaaa…. kedua nya memiliki data konsumen yang luar biasa bisa di gunakan untuk apapun, sudah di ketahui bahwa FB menjual data data pengguna nya untuk analisis konsumen dan iklan dll yang tidak di beberkan.

Mungkin saya paranoid, tapi ini lah yang terpikir ketika saya membaca berita FB membeli WA, ya ini juga opini pribadi dan “barisan sakit hati” saya karena saya tidak terlalu suka dengan cara berbisnis FB, dan saya penggemar WA yang kecewa 😀

Bermain bisnis pada area FB dan WA adalah tentang memanfaatkan data pengguna dan mengolah nya menjadi data yang berguna untuk instansi lain. dan tidak mungkin FB membeli WA dengan harga mahal tanpa mendapatkan apapun 🙂

There is always a catch . . .

Written by snippetjournal

February 20, 2014 at 2:44 am

Posted in Opini, Personal

SQL Agregation : Group by Having Sum Avg and Count

leave a comment »

This is a good reference to learn “Group by Having Sum Avg and Count” sql query, easy explanation and provided an examples  🙂

Written by snippetjournal

February 19, 2014 at 5:03 am

Posted in Uncategorized

Regex Expression

leave a comment »

Written by snippetjournal

February 13, 2014 at 7:05 am

Posted in Uncategorized

Pemimpin

leave a comment »

Pemimpin yang gagal adalah pemimpin yang tidak tahu permasalahan apa yang dia hadapi, pemimpin yang tidak bisa “menyelam” untuk memperkirakan seberapa dalam dan luas masalah yang di tangani nya.

– hanya opini, hanya memperhatikan, di pagi yang cerah dengan jiwa sudah sok tahu :))

Written by snippetjournal

February 12, 2014 at 2:30 am

Posted in Opini, Random Quotes

@prePersist dan @preUpdate tidak berfungsi

leave a comment »

@prePersist dan @preUpdate tidak dapat digunakan jika memakai “sessionFactory”, gunakan “entityManger” agar @preUpdate dan @prePersist dapat berfungsi 

http://leakfromjavaheap.blogspot.com/2013/08/prepersist-and-preupdate-not-working.html

Written by snippetjournal

February 7, 2014 at 2:52 am

Posted in Uncategorized

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 , ,