GX7 Extreme High ISO Test

I just upgraded my red GF1 to “retro” GX7 (wikipedia) 2 and a half days ago.

I still love enthusiast features in colorful GF1’s body but GF1’s ISO performance is outdate compare to current generation cameras. So, I decided to upgrade to GX7 because all Olympus cameras in Thailand do not have a “body only” sale option.

There are test shots with ISO 3200 to 25600. The first 3 photos set are processed only sharpen.


ISO 3200: usable.


ISO 6400: Still usable for me.


ISO 25600: Forget it.

The next set of ISO 25600 photos are fully processed. They are look like photo from my Note II.

For me, ISO 6400 file is acceptable. I will test printing later to see how GX7’s file look in the paper.

Java encoding French Language

เดือนก่อน ลูกค้าเจ้านึงในฝรั่งเศสส่ง issue มาว่า Sever ผม encode ภาษาฝรั่งเศสผิด แปลงตัว é กลายเป็น é ทั้งหมดเลย

สิ่งแรกที่ผมทำคือลอง Google ดูเกี่ยวกับปัญหานี้ ส่วนใหญ่เขาก็จะบอกกันว่าเป็นที่ encoding กันหมด

สิ่งที่สองที่ผมทำคือลอง test กับ server ผมเองว่ามันทำผิดจริงรึเปล่า เท่าที่ลองรัน test page หรือเขียน JavaScript มาลองดูมันก็แสดงผลเป็น é ตรงนี่หว่า -*- ถาม Dev ๆ ก็บอกว่าก็ส่งเป็น UTF-8 นะ สุดท้ายก็เลยลองถามลูกค้าไปว่า “เขาดึงข้อมูลจาก server ผมยังไง” ลูกค้าก็ให้โค๊ดประมาณแนวๆ นี้มา

protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        //Create JSON POST 
        JSONObject request_msg = new JSONObject();
        request_msg.put("closure", "JAVA_CLIENT"); 
        JSONArray requestArray = new JSONArray();
        requestArray.add("language=France");
        request_msg.put("request", requestArray);

        try {
            PrintStream outt = new PrintStream(System.out, true, "UTF-8");

            HttpURLConnection urlConn = null;
            URL url = new URL("http://server:80/getdata");
            urlConn = (HttpURLConnection) url.openConnection();
            urlConn.setRequestMethod("POST");
            urlConn.setAllowUserInteraction(false);
            urlConn.addRequestProperty("Accept", "application/json,text/javascript, */*; q=0.01");
            urlConn.addRequestProperty("Accept-Charset", "ISO-8859-1,utf-8;q=0.7,*;q=0.3");
            urlConn.addRequestProperty("Accept-Encoding", "gzip,deflate,sdch");
            urlConn.addRequestProperty("Accept-Language", "fr-FR,fr;q=0.8,en-US;q=0.8,en;q=0.4");
            urlConn.addRequestProperty("Content-Type", "application/json");
            urlConn.addRequestProperty("Connection", "keep-alive");
            // envoyer des params
            urlConn.setDoOutput(true);

            // poster les params
            PrintWriter paramWriter = new PrintWriter(urlConn.getOutputStream());

            paramWriter.print(request_msg.toString());
            // fermer le post avant de lire le resultat ... logique
            paramWriter.flush();
            paramWriter.close();
                        
            // Lire la reponse
            InputStream resp = urlConn.getInputStream();
            BufferedReader bufReader = new BufferedReader(new InputStreamReader(resp));
            String sLine;
            StringBuilder sb = new StringBuilder();
            String lineSep = "###";


            while ((sLine = bufReader.readLine()) != null) {
                sb.append(sLine);
                sb.append(lineSep);
            }

            out.println(sb.toString());

            // deconnection
            urlConn.disconnect();
            bufReader.close();
            out.close();
        } catch (Exception e) {
            System.out.println("Error " + e.toString());
            e.printStackTrace();
        }
    }

Code ข้างบนนี่จริงๆ ลูกค้าให้มาแค่ส่วนตัว HTTP ส่วน Sevlet ทั้งหลายนี่ผมเขียนเพิ่มเองเพื่อ Test ส่วน Logic การใช้ HttpURLConnection, PrintWriter, Buffer ทั้งหลายนั่นเอา code เขามา ส่วนการส่ง JSON ผมเลือกใช้ simple – json เพราะตอนนั้นไม่รู้ว่า Java support JSON แบบ native แล้ว
Continue reading “Java encoding French Language”

StarCraft II: Heart of the Swarm

StarCraft II: Heart of the Swarm เป็นภาคเสริมของเกม StarCraft II: Wings of Liberty ครับที่เล่าเรื่องราวของ Sarah Kerrigan และเผ่า Zerg ของเธอครับ

StarCraft II: Heart of the Swarm Poster

ผมเพิ่งเล่นเกมนี้จบเมื่ออาทิตย์ก่อน นับได้ว่าเป็นเกมที่ 4 ที่จบในปีนี้ครับ จริงๆ ก็ซื้อมาตั้งแต่มันออกนี่แหละ แต่เพิ่งได้เล่นยาวๆ จนจบก็เดือนสองเดือนที่ผ่านมานี่เอง

ภาคนี้เป็นเนื้อเรื่องของ Zerg ล้วนๆ โดยเนื้อเรื่องต่อจากภาค Wings of Liberty ที่ Jim Raynor ใช้ Artifact ของ Xel’Naga ทำให้ Kerrigan กลับมาเป็นคนได้สำเร็จ แต่อยู่ๆ Dominion ก็มาโจมตี มีเพียง Kerrigan ที่หนีออกมาได้ แต่ Jim Raynor กลับโดนจับและโดนฆ่าทิ้ง เธอที่ยังมีพลังในการควบคุม Zerg อยู่เลยเดินหน้ารวบรวมเหล่า Zerg เพื่อทำการล้างแค้นให้ Jim ครับ สรุปเนื้อเรื่องก็คือ “มึงหักหลังกูไม่ว่า แต่ฆ่าผัวกูมึงตาย” … ความแค้นของอิสตรีช่างน่ากลัวยิ่งนัก


Continue reading “StarCraft II: Heart of the Swarm”