Archive for the ‘Programming’ Category

Java Performance Tuning

เมื่อเดือนที่แล้วมีโอกาสได้บรรยายเรื่อง “Java Performance Tuning” เลยเอาสไลด์มาแปะไว้ เผื่อใครมีเขียนโปรแกรมด้วยภาษา Java แล้วสนใจอยากเพิ่มประสิทธิภาพการทำงานของโปรแกรมมากขึ้น ก็สามารถศึกษาผ่านสไลด์นี้ได้ด้วยตัวเองได้ไม่ยาก โดยเนื้อหาจะแบ่งออกเป็น 3 ส่วนดังนี้

Introduction
- Why java slow?
- Tuning Strategy
- Start to tune

Profiling Tool
- Timing
- Garbage Collection
- Method Call
- All in one tool

Good code pratice
- Object creation
- String
- Exception, Asserttion, Cases, Variable
- Loops, Switch and Recursion
- I/O, Logging, and Console Output
- Appropiate Collection

Java Performance Tuning

View SlideShare presentation or Upload your own.

Related posts

Tags: , ,

เขียน UI อย่างง่ายๆ ด้วย XUL

XUL คืออะไร
XUL อ่านว่า ซูล เป็น User Interface Language ที่พัฒนาโดย Mozilla หรือการพูดให้ง่ายๆ ก็คือ XUL เป็นเครื่องมือในการสร้าง UI ด้วยการใช้ XML นั่นเอง

ถ้าหากใครได้เคยลองเขียนโปรแกรมแล้วมีการสร้าง UI ด้วยละก็ จะพบว่าไม่ง่ายนักที่เราจะเขียน UI ขึ้นมาใช้ในโปรแกรมหนึ่งๆ การวางโครงสร้างของ UI มักจะซับซ้อน และยุ่งยากมากขึ้น เมื่อโปรแกรมมีคุณสมบัติเพิ่มขึ้น

ตัวอย่าง UI ที่เขียนด้วยภาษา Java
ยกตัวอย่างในภาษา Java หาเราจะสร้าง UI เล็กๆ ที่ใช้แทนเครื่องคิดเลขดังรูปข้างล่างนี้

เราจะต้องเขียน Code,

TextField n1 = new TextField();
TextField n2 = new TextField();
Lable plus = new Lable("+");
Button eq = new Button("=");
TextField result = new TextField();
//สร้าง Panel เพื่อรองรับ Component ทั้งหมด
Panel p = new Panel();
p.add(n1);
p.add(plus);
p.add(n2);
p.add(eq);
p.add(result);

จะเห็นว่ามีขั้นตอนต่างๆ มากมายในการสร้าง UI ขึ้นมาตัวหนึ่ง และถ้ามีความจำเป็นต้องแก้ไข เพิ่ม หรือลบ Component บางตัวออกจาก UI ก็ทำได้ยาก โดยเฉพาะโปรแกรมขนาดใหญ่ที่มี UI หลากหลายแบบ

สร้าง UI ด้วย Thinlet (XUL for java)
Thinlet คือ Library ของภาษา Java ที่ใช้มารตฐาน XUL จากตัวอย่างข้างต้นเราสามารถแปลง โค้ดของ Java ให้อยู่ในรูปแบบของ XUL ได้ดังนี้



< panel gap="4" top="4" left="4">
< textfield name="number1" columns="4" />
< label text="+" />
< textfield name="number2" columns="4" />
< button text="=" action="calculate(number1.text, number2.text, result)" />
< textfield name="result" editable="false" />

จะเห็นได้ว่าเมื่อเรานำ XML มากำหนดโครงสร้างของ UI ด้วย Library ของ Thinlet  โค้ดเราก็สามารถอ่านได้ง่ายขึ้นด้วยมุมมองของ XML

หากใครสนใจเกี่ยวกับการใช้งาน Thinlet สามารถศึกษาเพิ่มเติมได้ที่

http://thinlet.sourceforge.net/home.html

ในเว็บไซต์จะมีการใช้งานอย่างละเอียดของแต่ละ component ต่างๆ และตัวอย่าง Application อื่นที่นำ Thinlet ไปใช้งานร่วมด้วย

Related posts

Tags: , , ,

เริ่มต้นเขียนโปรแกรมด้วย C++

การเขียนโปรแกรมด้วยภาษา C++ นั้นไม่ได้ยากอย่างที่คิด ก็เหมือนกันกับเรียนเขียนโปรแกรมทั่ว ๆ ไป ลองอ่านพร้อม ๆ กับลงมือทำ (อย่าอ่านเฉย ๆ ) ว่าแล้วก็เริ่มต้นเลยดีกว่า โดยวันนี้ผมจะมาพูดถึงเบสิคขั้นพื้นฐานดังนี้

  • โครงสร้างของโปรแกรม
  • ตัวแปร ชนิดของข้อมูล และค่าคงที่

โครงสร้างของโปรแกรม

วิธีที่ง่ายที่สุดของการศึกษาการเขียนโปรแกรมก็คือ เรียนรู้จากตัวอย่าง เราลองมาดูตัวอย่างโครงสร้างโปรแกรมที่เขียนด้วย C++ ด้วย โปรแกรมยอดฮิต ที่ใคร ๆ ต้องรู้จัก ซึ่งก็คือการพิมพ์ “Hello World” ออกทางหน้าจอ

ตัวอย่างโปรแกรม

###  ตัวอย่างโปรแกรม ###

// my first program in C++
#include <iostream>
using namespace std;

int main ()
{
cout << “Hello World!”;
return 0;
}

###  สิ้นสุดตัวอย่างโปรแกรม ###

คำอธิบาย

  • // my first program in C++
    - แสดงตัวอย่างการ comment โดยการ comment ใน c++ แบบบรรทัดเดียวกัน จะใช้ ‘//’ เพื่อบอกโปรแกรมว่าตัวอักษรที่อยู่หลังจากตัวนี้จะถูก comment
    หมายเหตุ
    การ comment ของ c++ มีได้สองแบบ
    1) line comment คือการ comment แบบบรรทัดเดียว โดยเริ่มการ comment ได้ด้วย ‘//’ ที่จุดเริ่มต้นของการ comment
    2) block comment คือการ comment แบบหลายบรรทัด โดย ‘/*’ แสดงการเริ่มต้นของ comment และ ‘*/’ แสดงการสิ้นสุดของการ comment
  • #include <iostream>
    - บรรทัดนี้เป็นการ import library พื้นฐานที่ชื่อ iostream เพื่อที่เราจะสามารถเรียกใช้ฟังก์ชั่นเกี่ยวกับ input/output ได้ (cout) ซึ่งจะยกตัวอย่างต่อไป
  • using namespace std;
    - เป็นการประกาศ namespace ที่ชื่อ std เพื่อระบุขอบเขตการใช้งานของตัวแปร
  • int main () {}
    - function ที่เป็นจุดเริ่มต้นของโปรแกรม c++ (เวลารันโปรแกรม ต้องมาเริ่มที่นี่ที่แรก) และฟังก์ชั่นนี้จะ return ค่าเป็น integer
  • cout << “Hello World”;
    - แสดงการเขียนโปรแกรมเพื่อพิมพ์ “Hello World!” ออกทางหน้าจอ โดย format ที่ใช้ คือ ชื่อฟังก์ชั่น (cout) ตามด้วย argument “Hello World!” และจบด้วย semicolon “;” เพื่อบอกการสิ้นสุดของบรรทัดนี้
  • return 0;
    - เพื่อบอกโปรแกรม c++ ให้จบการทำงานของฟังก์ชั่น main โดยค่า 0 หมายถึง โปรแกรมสามารถจบการทำงาน และทำงานได้อย่างถูกต้อง

Related posts

Tags: , ,

มารู้จักกับ Ant กันเถอะ (ตอนจบ)

จากความเดิมตอนที่่แล้ว

หลังจากเราเริ่มรู้จัก Ant กันคร่าว ๆ แล้ว มาวันนี้ผมก็จะนำเสนอการติดตั้ง Ant เพื่อการใช้งาน โดยสิ่งที่จำเป็น สำหรับการติดตั้งมีดังนี้

1. Java SDK   ->> ดาวโหลดได้ที่ http://java.sun.com
2. Ant ->> ดาวโหลดได้ที่ http://ant.apache.com

การติดตั้ง

เริ่มต้นโดย Install Java SDK (โดย dir ของ Java ของผมจะเป็น  C:\Program Files\Java\jdk1.6.0) และ แตกไฟล์ zip  ของ ant โดยให้ไปไว้ที่ใดก็ได้ใน local drive ในที่นี้ผมจะไว้ที่ c:\ant  แล้วก็ทำการเซ็ต classpath และ path ให้กับ Java และ Ant ดังตัวอย่างต่อไปนี้


ซึ่งการเซ็ต path นี้ เราจะสามารถเรียกใช้คำสั่ง ant.bat ที่ไดก็ได้ใน directory ปัจจุบัน

Related posts

Tags: , , ,

มารู้จักกับ Ant กันเถอะ (ตอนแรก)

แรก เริ่มเดิมทีผมก็ยังไม่รู้จักมักคุ้นกับ Ant มากเท่าไหร่ ว่ามันคืออะไร และใช้ทำอะไร ได้ยินมาบ้างจากพี่ที่บริษัทว่ามันคือ script ที่ใช้ในการพัฒนา Automate Build Tool

โอ้โฮแฮะ !!! มีคำว่า Build กับ Automate อยู่รวมกัน และก็โดยบังเอิญอีกนั่นล่ะ งานที่ผมต้องรับผิดชอบทำสัปดาห์ละหลาย ๆ ครั้ง ครั้งละเกือบชั่วโมงเต็ม มันมีคำว่า “Build” อยู่ด้วย ต่อมความสงสัยของผมก็ถูกกระตุกด้วย มด (Ant) ตัวนี้ ทำให้แสบ ๆ คัน ๆ มือ อยากจะลองศึกษาว่ามันคืออะไรกันแน่ เผื่อจะเอามาประยุกต์ในงานประจำของเราได้ด้วย คำว่า “Automate” มันอาจจะทำให้สิ่งที่ผมต้องทำนี้ ง่ายขึ้น เร็วขึ้น เผลอ ๆ อาจจะสั่งให้มันทำงานให้ผมทั้งหมดโดยที่ผมไม่ต้องทำเลยก็ได้ (ฮ่า ๆ ความขี้เกียจเริ่มบังเกิด)

ก็เลยไปค้นคว้าในอาจารย์คนเก่ง Google จนไปพบลิงค์ที่น่าสนใจเกี่ยวกับ Ant ที่ http://www.apache.org ซึ่งที่นี่เป็นแหล่งรวม Opensource project มากมายให้ศึกษา และนำไปประยุกต์ใช้งาน ที่ดัง ๆ ก็จะมี apache server และ Tomcat ซึ่งเป็น Java-base server เข้าไปที่ลิงค์ ant ->> http://ant.apache.org จากนั้นก็เริ่มศึกษาจนได้รู้ว่าอะไรคือ Ant และมันทำงานอย่างไร ดังนี้

Ant หรือมีชื่อเต็ม ๆ ว่า Apache Ant คือ Java-based build tool โดยเรามีหน้าที่ในการพัฒนา script สำหรับสั่งให้ Ant ทำงานแทนเราได้ทุกอย่างเกี่ยวกับกระบวนการ Build Package (ขอยืนยันว่าทุกอย่างจริง ๆ)

หลายคนอาจจะ สงสัยว่ากระบวนการ Build package นั้นคืออะไร และมีขั้นตอนอะไรบ้างง ผมก็จะอธิบายคร่าว ๆ ตามประสบการณ์ของผม (อาจจะเป็นแค่ส่วนหนึ่งของกระบวนการ Build Package และอาจจะแต่งต่างกันในส่วนย่อยของแต่ละกลุ่มของนักพัฒนา) ได้ดังนี้

การ Build Package คือ กระบวนการทั้งหมดที่เกี่ยวกับการ checkout โค้ดจาก repository แล้วนำมา compile จนได้ class ไฟล์ แล้วนำมารวมกันในรูปของ Jar Excutable file เพื่อเตรียมอัพโหลดไปที่ server (ทั้งโค้ดที่ทำการ Tag เวอร์ชั่น และ ตัว executable file ที่พร้อมให้ดาวโหลดไปใช้งาน) สรุปง่าย ๆ เป็นข้อหลัก ๆ ดังนี้

1. Checkout โค้ดจากเซิร์ฟเวอร์ (Repository)
2. Compile ไฟล์ .java ให้เป็น .class
3. อัดข้อมูลให้เป็น Jar file (Excutable file)
4. แช่แข็ง package ณ จุดบิ้วในเวอร์ชั่นนั่น ๆ (Version Tagging to server)
5. อัพโหลดตัว excutable package ขึ้น server

หากแต่จะมีขั้นตอนย่อย ๆ มากกว่านี้ …

โอ้โฮ อีกที … ขึ้นตอนที่กล่าวข้างตอน กินเวลาร่วม ชั่วโมง หรือมากกว่านั้น แต่ผมกำลังจะสามารถทำได้ด้วยการดับเบิ้ลคลิ๊กเมาส์เพียงครั้งเดียวโดยใช้ Ant อย่างนี้ไม่ลองไม่ได้ซะแล้วววว แต่วันนี้ขอพักแค่นี้ก่อน เดี๋ยวมาต่อกันภาค 2 ว่าเราจะติดตั้ง Ant ลงในเครื่องเราอย่างไร และเราจะใช้งาน Ant ได้อย่างไร …

Related posts

Tags: , , ,


Page 1 of 11