หลังจากที่เขียน Objective-C ไปแล้วอันแรก ผมคิดว่าถ้าจะเริ่มตั้งแต่ ชนิดของตัวแปร Loop , if-else ก็คิดว่าคงจะใช้เวลาไปหน่อย กว่าจะเขียนเสร็จ ( คือถ้าจะเอาให้ละเอียดเนี่ยสงสัยว่าเขียน หนังสือเลยอาจจะดีกว่า ) เอาเป็นว่า จากนี้ผมขอคิดว่า คนที่อ่านบทความของผม นั้น มีความรู้เกี่ยวกับ C/C++ มาบ้าง ซึ่งสิ่งที่คุณต้องรู้มาก่อนก็คือ
Data typeก็จำพวกว่า สามารถประกาศ int , char , array ได้ประมาณนี้ก็พอ
Expressionเป็นต้นว่า เข้าใจการใช้งาน if – else , neatest if-else อะไรทำนองนี้
Functionใช้งานฟังชั่นในเบื้องต้นเป็น รวมทั้งความเข้าใจในการส่ง Parameter และการส่งค่ากลับของ function
Pointerเข้าใจการทำงานของ pointer และการใช้งานเป็นในระดับหนึ่ง
Basic Memory Managementรู้และเข้าใจการจอง memory และการใช้งาน เป็นต้นว่า malloc , free , delete
คือเพราะว่า โดยภาษา Objective-C นั้น มีการใช้งาน Syntax คล้ายๆกับ ภาษา C และ java ค่อนข้างมาก สำหรับคนที่ไม่เคยเขียน โปรแกรมมาก่อน แนะนำว่า ควรไปศึกษา C/C++ มาก่อน ( ผมว่าจะเขียน เหมือนกันแต่เอาให้ obj-c เสร็จก่อนละกัน )
การเขียน Class
การเขียน class ในภาษา objc นั้นจะแบ่งออกเป็น สามส่วนหลักๆคือ
interface
implement
program
ในภาษา objc นั้น มีรูปแบบการประกาศแบบนี้ครับ






@interface classname: parentClassname
{
// Data member
}
function
@end



การประกาศ class นั้นจะเริ่มด้วย @interface แล้วก็ตามด้วยชื่อของ classname และสำหรับ :parentClassname นั้นก็เป็นส่วนที่บอกว่า class นี้สืบทอด (inheritance) มาจาก class ไหน ในส่วนของ data member นั้นจะประกาศภายในเครื่องหมาย { และ } ส่วน function จะทำการประกาศ ข้างนอก { } และปิดท้ายด้วย @end
เอาละมาดูตัวอย่าง class แรกของเราเลยละกัน

// book.h
@interface Book :NSObject
{
int book_id;
float price;
}
- (void) printDetail;
- (void) setPrice: ( float ) p;
- (void) setID: ( int ) id;
- (void) setPriceAndID: (float) p:(int) id;
- (float) getPrice;
@end



เราทำการสร้าง class ขึ้นมาใหม่ ชื่อว่า Book ซึ่งประกอบไปด้วย ข้อมูลสองอย่างคือ book_id และ price โดย class นี้สืบทอดมาจาก NSObject และประกอบด้วย 5 method ( function ) นั่นคือ
- (void) printDetail ;สำหรับ method นี้ ได้สั่งค่ากลับเป็นแบบ void ( พูดอีกนัยได้ว่าไม่ต้องส่งค่ากลับ )
- (void) setPrice: (float) p;ในส่วนของ setPrice นั้นมีการส่งค่ากลับเป็นแบบ void เหมือนกัน แต่ว่าสิ่งที่ต่างจาก printDetail คือ มีการรับ parameter เข้าไปด้วย โดยรับเข้าไปเป็น int และให้ parameter นี้ชื่อว่า p
- (void) setID: (int) id;ทำงานเหมือนกับ setPrice แต่เป็นการใส่ค่าให้กับ book_id
- (void) setPriceAndID: (float) p : (int) id;method นี้จะทำการรับ ค่า parameter เข้ามาสองค่า คือ float กับ int การรับค่า parameter เข้ามาหลายๆค่านั้น จะทำการ แบ่งด้วยเครื่องหมาย : (โคล่อน )
- (float) getPrice;ฟังชั่นนี้จะทำการส่งค่า price กลับไปเป็นแบบ float
เพียงเท่านี้ก็เป็นการประกาศ Class แบบง่ายๆเสร็จแล้ว
อาจจะงงว่าทำไมต้อง inherit มาจาก NSObject ด้วย ก็ขออธิบายเพิ่มเติมง่ายๆว่า มันคือ Root ของ class ต่างๆในภาษา objective-c สำหรับคำว่า NS นั้น ย่อมาจาก NextStep (เป็นชื่อของบริษัทเก่าที่ Steve Job เคยตั้ง) NSObject นั้นจะมี function ที่สำคัญอันได้แก่ การจอง memory ( alloc ) ให้กับ object นั้นๆ และการ เลิกการจอง ( dealloc) พูดง่ายว่า การประกาศ class ใหม่นั้นต้องสืบทอดมาจาก class นี้
เมื่อทำการประกาศ class ไปแล้ว เรายังเหลือส่วนที่ต้องเขียน นั่นก็คือ ส่วนของ implementation งั้นมาดูกันเลย

//book.m
#import
@implementation Book
-(void) printDetail {
printf( "book id: %i , price %f", book_id, price );
}

-(void) setPrice: (float) p {
price = p;
}

-(void) setID: (int ) id {
book_id = id;
}

-(void) setPriceAndID: (float) p: (int) id {
book_id = id;
price = p;
}

-(float) getPrice{
return price;
}

@end


ก็เป็นว่าเสร็จในส่วนของการ implementation แล้ว เหลือส่วนสุดท้ายนั่นก็คือ program

// main.m
#import "book.h"
int main( int argc, const char *argv[] ) {
// create a new instance
Book *scibook;

scibook = [Book alloc];
[scibook init];
Book *mathbook = [[Book alloc] init];
// set the values
[mathbook setID: 1];
[mathbook setPrice: 3];
[scibook setPriceAndID: 2 : 5];

// print it
printf( "The Book detail: \n " );
[mathbook printDetail];
[scibook printDetail];
printf( "\n" );

// free memory
[mathbook release];
[scibook release];
return 0;
}


Sending Message
สำหรับ ภาษา objective-c นั้นจะทำการเรียก function หรือว่า method ว่าเป็นการส่ง message ไปให้มัน ซึ่งรูปแบบก็คือ
[receiver message];
ซึ่งถ้าเทียบกับภาษา C/C++ ก็จะได้ประมาณว่า
receiver->message();
เหมือนเราต้องการจะให้ receiver นั้นทำอะไร เราก็ต้องบอกให้มันทำให้เรานั่นเอง
ขออธิบายในส่วนของ main program กันก่อนละกัน
Book *scibook;
scibook = [Book alloc];
[scibook init];


เราเริ่มประกาศตัวแปร scibook ให้เป็น pointer ของ Book และทำการส่ง message ที่ชื่อว่า alloc ไปให้ Book เพื่อทำการจอง memory แล้วหลังจากการจองแล้ว ก็ยังไม่สามารถใช้ได้เลย ต้องทำการ initialize มันซะก่อน ด้วยการส่ง message บอกให้ init อีกที
ปล. initialize คือการให้ค่าเริ่มต้นสำหรับตัวแปรต่างๆ เพราะว่าในการจอง memory นั้น พื้นที่ที่โดนจองอาจจะมีค่าต่างๆที่หลงเหลือจากโปรแกรม อื่นๆ เราก็ต้องปัดกวาด พื้นที่ตรงนั้นให้มันพร้อม เสียก่อน
สำหรับ บรรทัดต่อมา เป็นการรวมสองบรรทัดเข้าด้วยกันเลย ก็จะได้ว่า


Book *mathbook = [[Book alloc] init];


การทำงานเหมือน กับ scibook เลยแค่ ลดให้มันเหลือ 1 บรรทัด อาจจะมองได้ดังรูปต่อไปนี้
เมื่อเรามี object แล้วก็สามารถเรียกใช้ function โดยการส่ง message ไปให้ object เช่น


[mathbook setID: 1];


จากตัวอย่างเป็นการส่ง message ที่ชื่อว่า setID และส่ง parameter ที่มีค่าเป็น 1 ไปให้ตัวแปรที่ชื่อ mathbook ด้วยและส่วนสุดท้าย
[mathbook release];


เป็นการส่ง message ที่ชื่อ release เพื่อคืนหน่วยความจำให้กับระบบ เราต้องทำทุกครั้งเมื่อจะจบโปรแกรม เพราะว่าไม่งั้นมันจะไม่รู้ว่าโปรแกรมของเราได้ยกเลิกการใช้งานในพื้นที่ตรงนั้นไปแล้ว
ถ้าลอง compile และ run ก็จะได้ผลลัพธ์แบบนี้ครับThe Book detail:
book id: 1 , price 3.0000
book id: 5 , price 2.0000

การเขียนโปรแกรมบน mac ก็อย่างที่บอกไปแล้วว่า มี 2 ภาษาหลักๆคือ c/c++ กับ obj-c ผมคิดว่าถ้าจะเขียน c/c++ programming ก็คิดว่าหนังสือภาษาไทยก็เยอะแล้ว เลยเขียนเกี่ยวกับ objective-c จะดีกว่า เริ่มกันเลยดีกว่า เริ่มจากการสร้าง file นามสกุล .m ขึ้นมาก่อนเช่นเป็นต้นว่าชื่อ hello.m และส่วนข้างใน hello.m ก็มี code แบบนี้


  #import 
int main( int argc, const char *argv[] )
{
printf( "Hello !! Macfeteria.com\n" );
return 0;
}
เมื่อเสร็จแล้ว ก็ save แล้วก็เปิด terminal ขึ้นมาแล้วก็สั่ง compile 
ด้วยคำสั่ง gcc hello.m -o hello -l objc แล้วหลังจากนั้น ก็ 
ทำการเรียกโปรแกรม ขึ้นมาด้วยคำสั่ง ./hello จะเห็นข้อความว่า
 
Hello !! Macfeteria.com
ดังตัวอย่างรูปข้างล่าง
 
 

หลังจากที่คิดอยู่นานว่าจะเริ่มอย่างไรดีกับ iPhone SDK และผมคิดว่ามีหลายๆคนอยากจะเขียนโปรแกรมสำหรับ iPhone แต่ยังไม่รู้เลยว่า มันจะเขียนยังไง สำหรับบทความนี้ เป้าหมายหลักของผมคืออธิบายภาพรวมของการเขียนโปรแกรมบน iPhone ให้เข้าใจกันเบื้องต้นว่า ก่อนที่คุณจะเขียนโปรแกรมบน iPhone นั้นสิ่งที่ต้องรู้เบื้องต้นคืออะไร

Language
การเขียนโปรแกรมบน iPhone นั้นแบ่งภาษาที่ใช้ในการเขียนหลักๆเป็น 3 ภาษา ( จริงๆมีอีกภาษาคือ objective-c++)

Objective C C C#
ภาษาอื่นๆหมดสิทธ์ อาจจะมีภาษาอื่นในอนาคต อย่างกรณีภาษา C# ทาง Apple ไม่ได้สนับสนุนโดยตรงแต่เกิดขึ้นมาจาก Mono-Project ถ้าหากเขียน java หรือ Visual Basic มาก่อน ก็คงต้องเลือกเอาละครับว่า ต้องเรียนรู้ภาษาใดภาษาหนึ่งเพิ่มเติมแน่นอน

แนะนำข้อดีของแต่ละอันดีกว่าว่ามันมีดีต่างกันยังไง

ภาษา C

ข้อดีของภาษา C ที่ผมเห็นว่ามันดีที่สุดคือ การหาหนังสือเกี่ยวกับการเขียนโปรแกรมภาษา C ง่ายมาก หนังสือภาษาไทยก็มี เดินเข้าร้านหนังสือก็เจอแล้ว ( แต่ไม่ค่อยมีหนังสือภาษาไทยที่ลงลึกการเขียนโปรแกรมด้วย C สักเท่าไหร่ ) และไม่ใช่แค่หนังสือแต่รวมไปถึง source code, library, tutorial และมี community ที่ใหญ่มาก และมันเป็นภาษาที่นิยมแพร่หลายและเก่าแก่ และในปัจจุบันก็ยังนิยมใช้อยู่

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

จริงๆแล้วการเขียนโปรแกรมด้วย ภาษา C นั้นจำเป็นต้องเพิ่งภาษา Objective-C อยู่ดีเพราะเราต้องอาศัย interface builder แต่อย่างที่ผมบอกไว้ว่า Library ของภาษา C นั้นมีเยอะมาก เราสามารถนำ Library ของภาษาที่มีอยู่แล้วนำมาใช้ร่วมกันกับ ภาษา Objective-C ได้อย่างไม่มีปัญหา

สำหรับโปรแกรมที่ใช้ภาษา C เป็นหลักก็จำพวก Game ครับ

ภาษา Objective-C

ข้อดีของมันคือ ภาษา objective-c มันค่อนข้างเรียนรู้ง่าย ไม่ซับซ้อน ( เค้าบอกว่ามันเป็นเหมือนภาษา C ผสมกับ smalltalk ) และมี Framework, Library ให้ใช้เยอะมาก ภาษามีความยืนหยุ่นสูง และเนื่องจากว่ามันเป็น small super set of C นั่นก็แปลว่า เราสามารถใช้ lib หรือ code ของ C ได้ ( ไม่ใช่ C++ น่ะ ) และตัวภาษายังอนุญาติให้เราเข้าไปจัดการหน่วยความจำได้เหมือนกัน แต่ก็ไม่ยืดหยุ่นมากเท่ากับ c และมันยังมี Garbage Collector ในกรณีที่ไม่ต้องการจัดการหน่วยความจำเอง (แต่ในกรณีของ iPhone Garbage Collector จะไม่สามารถใช้ได้) และข้อดีที่สุดคือ การเขียน application บน iPhone นั้น ถ้าเขียนด้วยภาษา objective-c คือมันมี interface builder ทำให้เราออกแบบ User Interface ได้อย่างง่ายดาย

ข้อเสียคือ หนังสือให้อ่านน้อยมาก *** ย้ำว่าน้อยมาก *** หนังสือภาษาไทยตอนนี้เท่าที่เห็นมีเล่มเดียวคือ iPhone Programming Cook Book และจำนวนแหล่งความรู้เพิ่มเติมของ Objective-C นี้ก็น้อยมาก ติดปัญหาก็ไม่รู้จะไปหาคำตอบได้ที่ไหน อย่างเวปของไทย ที่เกี่ยวกับ Objective-C ก็น้อยมากๆ เทียบกับ .net หรือ java ก็คนละเรื่องเลย ( บางคนอาจะไม่เคยได้ยินชื่อภาษา Objective-C มาก่อนด้วยซ้ำไป ) จากสิ่งนี้ทำให้ การหา source , tutorial นั้นยากตามไปด้วย ต้องหาคำตอบหรือความรู้เพิ่มจากเวปของต่างประเทศค่อนข้างเยอะ คนไม่เก่งภาษาอังกฤษ ก็ลำบากหน่อย
ภาษา C#

ในความคิดส่วนตัวของผมคิดว่า C# เป็นภาษาที่ควรจะพิจารณาเป็นลำดับสุดท้าย เพราะเนื่องด้วยว่า Apple ไม่ได้สนับสนุนโดยตรง และการเขียน iPhone ด้วย C# นั้นต้องการ IDE ของ mono-project ซึ่งต้องซื้อเพิ่มเติม ราคาก็บาทอยู่เหมือนกัน ที่สำคัญครับยังต้องเขียนบน mac และอาศัย iPhone SDK อยู่ดี เหมาะสำหรับ โปรแกรมที่มีอยู่แล้วใน platform อื่นที่เขียนเป็น C# อยู่แล้วมากกว่า ถ้าใครสนใจจริงๆ ก็ไปอ่านรายละเอียดเพิ่มเติมได้ที่่ http://monotouch.net/

ส่วนเรื่องอื่นๆในรายละเอียดของภาษาว่าแตกต่างกันอย่างไรในแบบลึกๆ ลองไปดูเพิ่มเติมได้ที่

http://en.wikipedia.org/wiki/Comparison_of_programming_languages

แล้วควรจะเลือกภาษาใด ?

จากประสบการณ์ของผมขอแนะนำให้ศึกษา ภาษา Objective-C เป็นภาษาหลักส่วนภาษาอื่นๆเป็นภาษารอง

Framework
apple ได้ออกแบบ Framework มาเป็น 2 อย่างคือ

  • Cocoa
  • Carbon
สองอย่างนี้ มันสามารถทำงานร่วมกันได้ในบางส่วน แต่โดยปกติแล้วจะแยกจากกัน สำหรับการเขียนโปรแกรมบน Mac นั้น ถ้าเขียนโปรแกรมด้วยภาษา objective-c นั้นเราจะใช้ Cocoa ส่วน C/C++ นั้นจะใช้ Carbon ดังนั้นถ้าหากเลือกได้ว่าจะเขียน ด้วยภาษาใดแล้วมันก็เหมือนเป็นการบังคับไปเลยว่า เราต้องใช้ Framework แบบไหน แต่ข้อดีของมันก็คือว่า ทั้ง Cocoa และ Carbon ออกแบบมาใกล้เคียงกันมาก ยกตัวอย่าง NSView ( เป็นคลาสหนึ่งใน Cocoa ) ในส่วนของ Carbon ก็จะมีคลาสที่คล้ายๆกันคือ HIView และมี method ที่คล้ายๆกันอีกต่างหาก ( แต่ concept การทำงานบางอย่างมันจะไม่เหมือนกันซะทีเดียว )

แต่สำหรับ iPhone แล้ว Apple ได้ออกแบบ Framwork ใหม่ที่มีชื่อว่า

Cocoa Touch
ซึ่งเป็น Framework ที่ออกแบบมาเหมือนกับ Cocoa แต่มีขนาดเล็กกว่า ฉนั้นแล้วการเขียนโปรแกรมด้วย iPhone นั้นก็ต้องใช้ Cocoa Touch ครับ เว้นแต่ว่าจะเขียนโปรแกรมจำพวก Game อาจจะไม่จำเป็นต้องศึกษาให้ลึกซึ้งมากนัก

Tools
เครื่องมือที่ใช้ในการเขียนโปรแกรมสำหรับ iPhone นั้นมีสองอย่างคือ XCode และ monotouch สำหรับ C# ในส่วนของ Development Tool ของ Apple เองนั้นจะประกอบไปด้วยส่วนย่อยๆอีก หลายอัน เช่น Simulator , Instrument

Xcode นั้นเป็นโปรแกรมที่แถมมาฟรีกับ Mac OSX โดยปกติจะอยู่ในแผ่นที่แถมมาตอนซื้อเครื่องในแผ่นที่ 2 ถ้าไม่มีก็โหลดได้จากเวปของ apple แต่ต้องสมัครเป็นสมาชิก adc member ก่อน และในตอนนี้ XCode ก็ออกมาเป็น version 3.1 แล้ว ถ้าหากเป็น Snow Leopard ก็จะเป็น 3.2
Ready ?
หลังจากรู้คร่าวๆไปแล้ว ว่าการที่เราจะเขียนโปรแกรมบน iPhone นั้นมีขั้นตอน และต้องรู้อะไรมาบ้าง แน่นอนว่าบางคนอาจจะต้องเรียนรู้ทุกอย่างใหม่หมด ตั้งแต่ ภาษา เครื่องมือ ในการเขียนโปรแกรม แต่อย่าไปกลัว เมื่อก่อนผมเองก็ยังไม่เคยเขียนโปรแกรมบน mac มาก่อนเลย ก็ยังอ่านและทดลองเองหมด ฉนั้นไม่ยากเกินความสามารถแน่ๆ

สรุปว่า ถ้าอยากเขียนโปรแกรมบน iPhone สิ่งที่จะต้องรู้ก็คือ

ภาษา c หรือ objective-c หรือ C# ( แต่ผมไม่แนะนำ )
Cocoa Touch
XCode
Interface Builder
ครั้งหน้าเราจะมาเริ่มเขียนโปรแกรมกันครับ

Las Vegas
Las Vegas คือ...แสง สี ไฟ เสียงอึกทึก ผู้คน ความวุ่นวาย เสียงแตร รถเชคเกอร์ริมทาง เหล่าสถาปัตยกรรมทั่วโลก เสียงชิปเคาะไปมา ความอื้ออึงเรียงรายของเครื่องสล๊อตแมชชีน ควันบุหรี่ ซีฟู้ด ฯลฯ
เหล่านี้คือความงดงาม ความสนุกสนานดนตรีและอาหารเยี่ยม (เลียนแบบรมว.ต่างประเทศพูดถึงกรณีสุวรรณภูมิและดอนเมือง ฮ่าๆ) - -อันนี้แล้วแต่มุมมองว่ากันไม่ได้
ลาสเวกัสที่นี่เป็นเมืองที่อนุญาตให้ผู้คนถือเบียร์ถือเหล้าเดินว่อนกินกันริมทางได้เมืองส่วนมากในอเมริกาห้ามมาเดินถือดริงค์ถือเบียร์ตะโกนเต้นโหวกเหวกริมทาง


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



คือถ้าคิดแล้วว่าจะมาเสื่อมเนี่ย ที่นี่มีความเสื่อมหลากหลายแบบให้เลือกเลยทีเดียวบนถนนรถราป้ายโฆษณาก็จะมีแต่เรื่องยั่วยวน บริการทางเพศหลากหลายรูปแบบแผ่นใบปลิวแจกก็จะมีเบอร์น้องๆหนูๆให้โทร โชว์เซ็กซี่ เป็น Sex and the city เอามากอื่นๆที่พบทั่วไปก็เช่นโปรโมชั่นกินเบียร์เล่นฟรีอะไรแบบนี้คือจะมาเสเพลเสื่อมบาปก็ต้องที่นี่




::โอกาส

คุณจะพบโอกาสในเมืองแห่งนี้ได้ถ้า


-คุณสามารถหางานทำที่นี่ได้ (คนไทยเยอะทีเดียวทั้งนักเล่น และคนทำงาน ซึ่งรวมกับชาวเอเชียอื่นๆ)

-ถ้าคุณคิดเลขเก่งไว คุณจะสามารถสมัครงานตามกาสิโนเป็นร้อยๆแห่งได้ง่ายๆที่อเมริกามีโรงเรียนฝึกบุคคลากรแนวนี้ด้วย ฉันฟังจากคนไทยที่นั่นที่กำลังเล็งจะไปเรียนเล่าให้ฟัง

-ถ้าคุณยังคิดเลขไม่ไว ไม่ช่างสังเกต ภาษายังไม่คล่อง คุณจะมีตั้งแต่ยืนเช็ดตู้สล็อตฯบ้างทำความสะอาดปัดๆกวาดๆแถวโต๊ะบ้าง หรือไปเดินเสิร์ฟเครื่องดื่มบ้าง

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

::หายนะ

คุณจะพบหายนะในเมืองแห่งนี้ได้ เช่น


ราวสี่ทุ่มหน้าโรงแรมฮาราห์พวกเรายืนดูเค้าโยกตู้สล็อตกันอยู่
Hello, I'm getting married.

My friends and I have Bachelor partyหนุ่มหน้าตาวัยรุ่นตัวผอมๆเดิมมาพูดแบบยิ้มน้อยๆหน้าตาเกรงอกเกรงใจ พร้อมผายมือไปทางกลุ่มเพื่อนอีก 3 คนยืนยิ้มๆเขินๆกันอยู่
ฉันกับคณะก็พยักหน้า And so?Do You have any condom?กึก (คิดในใจ บวกลบคูณหารคำนวณราวกับจะเล่นแบล็คแจ็ค)Congratulation for marriage. And sorry, I haven't... ตอบไปแบบยิ้มๆ
หนุ่มฝรั่งยังคงยิ้มIt's Ok, all right Goodbye.ยิ้มและเดินจากไป

รักเดียวใจเดียว รุจ THE STAR

ขอบคุณน๊าาาาาาา [^-^g0o^-^]


ในบรรยากาศของการถูกโอบกอดด้วยผืนน้ำและป่าไม้บนภูเขา คงไม่มีครั้งใดอีกแล้วที่สามารถทำให้เพื่อนๆผู้ได้เดินทางสัมผัสมีความสุขยิ่งนัก...ทะเลสาบที่งดงามยิ่งใหญ่ ตื่นตอนเช้าเป็นหมอกลอยเรี่ยน้ำและห่มคลุมภูเขา กลางคืนนั่งมองทะเลดาวเต็มท้องฟ้า...






"ากดาวดวงหนึ่ง คือพรที่คุณสามารถของสิ่งดีงามจากท้องฟ้าได้...
คุณก็จะมีพรดีดีมากมาย ในค่ำคืนของที่นี่ บรรยากาศที่ท้องฟ้าเต็มไปด้วยดวงดาว รอบตัวเต็มไปด้วยความสดชื่นยิ่งใหญ่จากป่าไม้บนภูเขา..จะมีอะไรที่สวยงามอ่อนโยนไปกว่าการได้เห็นหมอกยามเช้าลอยเรี่ยน้ำ..เห็นประติมากรรมของธรรมชาติที่สร้างสรรค์ไว้อย่างสวยงาม...
"
Link : http://www.tourtooktee.com/programtour_detailpage.asp?nID=491

Maldives มัลดีฟส์ สวยจริงสมคำร่ำลือ


แต่ไม่ได้ไปก็ไม่ต้องเสียดาย..เพราะเราจะพาคุณไปชมบรรยากาศสวยๆ ของเกาะมัลดีฟส์นี้กันแล้วค่ะเชื่อว่าหลายๆ คนที่ชื่นชอบในการไปเที่ยวทะเล, ดำน้ำชมปลา ปะการังสวยๆ Maldives มัลดีฟส์ คงเป็น 1 ในดวงใจของใครหลายๆ คน ที่หวังว่าสักวันหนึ่งต้องไปที่นี่ให้ได้