We've moved!

My blog had its new home.

Like I said before, this blog is not really official. Now that I got a new server, I'm going WordPress.

You can find me at http://lunaticneko.com/blog for the new blog. Thanks for bearing with my many blog moves.

This one will remain up in case I need to scavenge old data and/or there are more people led through the old link. I hope I don't lose too much PageRank for this...

Thank you very much,
LunaticNeko.

2007-12-31

สวัสดีปีใหม่ 2551

สวัสดีปีหนูใหญ่ได้มาถึง
อย่าคำนึงถึงวันที่ผ่านผัน
ที่ต้องคิดคือข้างหน้าอีกหลายวัน
ที่ต้องฝันคืออนาคตของเรา

ทำอะไรโปรดคิดหน้าคิดหลัง
ระวังตัวระวังใจไม่ขลาดเขลา
ใครมาพูดอะไรอย่าหูเบา
อย่าให้ใครเขาลากไปตามใจ

ขอทุกท่านโปรดรักสามัคคี
ทั่วนทีทั้งนภาทั้งหล้าใหญ่
ถึงสุดเขตสุดด้าวสุดแดนไทย
ขอรวมใจพี่น้องสามัคคี

จะเกิดอยู่แห่งใดไม่สำคัญ
แต่สำคัญที่เราบุคคลนี้
ทั้งสองมือสองขาของเรามี
ขอน้องพี่สู้ต่ออย่าท้อใจ

ขออวยพรพี่น้องทั่วพิภพ
รวมบรรจบทั่วฟ้าแลกว้างใหญ่
ขอทุกท่านแข็งแรงไร้โรคภัย
มีจิตใจงดงามและเมตตา

มีความสุขเงินทองไหลเรื่อยมา
โปรดมีสุขทุกวันได้หรรษา
มีความรักสมหวังทุกครั้งครา
เปี่ยมปัญญาผาสุกตลอดปี

อุดมด้วยโชคดีตลอดศก
พรพระคุ้มปกเกล้าให้สุขศรี
คิดอย่างไรขอให้สมด้วยใจมี
ให้โชคดีปีใหม่สมใจเอย

2007-12-19

Cormoon : เกมพันธุ์ใหม่ที่ไม่เหมือนใครในโลก

ด้วยความที่ผมไปรู้จักกับโปรแกรมเมอร์กลุ่มหนึ่ง พวกเขาคือVille Mönkkönen กับ Quanrian เจ้าของเกม Notrium เรื่องราวเกี่ยวกับการเอาตัวรอดในต่างดาวอันแสนหฤโหดจนท็อปฮิตติดชาร์ตสนั่นวงการเกมมาแล้วนั่นเอง วันนี้พวกเขากลับมาอีกครั้ง กับเกม ๆ ใหม่ที่ผมได้ทดลองเล่น (นิดเดียวจริง ๆ) และดูตัวอย่างมหาศาล รวมไปถึงแผนพัฒนาโครงการแล้วพบว่าขนาดจอมติอย่างผมยังต้องพูดเลยว่าสุดยอดจริง ๆ

ผมลองไปสอบถามผู้พัฒนาส่วนเนื้อหา (Quanrian) แล้วครับ เขาได้อธิบายออกมาอย่างชัดเจนมาก ๆ ว่าเกมนี้จะเน้นที่เนื้อเรื่องและกลไกของเกมมากกว่า แต่ช้าก่อน อย่าเพิ่งคิดว่ากราฟฟิคจะแย่นะครับ ผมได้รับรายงานมาว่าเกมนี้จะมีภาพที่สวยงามในระดับดีถึงดีมาก (แบบสมจริงที่แต่งให้สวยงาม) เนื่องจากผู้พัฒนาทั้งสองคนมีความสามารถในทางศิลป์ทั้งคู่ และนอกจากนั้นแล้ว ระบบการเล่นจะเป็นเกมแบบ multi-genre (หลายแนวเกม) ที่ผสมผสานกันได้อย่างลงตัว จนแทบจะบอกได้ว่า เกมนี้สามารถเล่นได้ทุกคนเลยครับ หากคุณเป็นคนที่ชื่นชอบเกมแล้ว ผมคิดว่าน่าจะลองติดตามดูความคืบหน้ากันต่อไปนะครับ ส่วนเรื่องออนไลน์นั้น ได้แน่นอนครับ แต่ไม่ใช่ตอนนี้ เพราะว่าหัวใจสำคัญอยู่ที่กลไกการเล่นมากกว่าครับ

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

ในตอนนี้ เกมอยู่ในช่วง closed beta ซึ่งคาดว่าจะเปิดให้ท่านผู้อ่านได้ทดลองและทดสอบกันในเวลาไม่นานครับ โดยที่อาจมีเนื้อหาที่เล่นได้ไม่มากนัก เนื่องจากเนื้อหาของเกมจะถูกพัฒนาให้ถึงขีดที่เรียกได้ว่า "ปรอทกำลังจะแตก" กันเลยทีเดียวทั้งในแง่ของปริมาณและคุณภาพครับ สำหรับผู้ที่สนใจ สามารถติดตามข้อมูลเพิ่มเติมได้ที่:
เว็บผู้พัฒนา monkkonen.net, บอร์ด Cormoon Dev, กระทู้ Artwork & Concepts, และ Development Log

2007-12-07

BioShock!!!

วันนี้เกิดปรากฏการณ์ 'BioShock' ขึ้นที่โรงเรียนของกระผมเองครับ

มันเริ่มมาจากข้อสอบชีววิทยาแสนโหด โหดร้ายมาก ๆ 16 ข้อ แต่ 44 คะแนน แน่นอน มีแต่เขียนบรรยายแทบจะทั้งหมด หาคนทำทันและตรวจทานมั่นใจได้ยากมาก ดังนั้น ผมไม่คิดหรอกครับว่าผมจะได้ A

ในเวลาต่อมา เพื่อนติงต๊องคนหนึ่งก็เรียกเหตุการณ์ข้อสอบแสนหินนี้ว่า "BioShock".

ส่วนเหตุการณ์อื่นๆ ได้แก่...
สอบชีวะ - ทำไม่ทัน
รางวัลคำประพันธ์วันพ่อ - ชวด
รางวัลออกแบบถังขยะ - ไม่ได้
ผลสอบเลข - C+
สอบอังกฤษ - แป้กไปประมาณ 6 ข้อ

สำหรับคนอื่น ๆ อาจเป็นแค่ Bioshock แต่สำหรับผม มันเป็นวันมหาวิปโยคเลยทีเดียวคร้าบ แง T_T

คำถามสำหรับวันนี้ เป็นคำถามจากวิชาชีววิทยา ถามว่า ถ้าปู่และตาหัวล้านพันธุ์แท้ ย่าและยายหัวปกติ (คือไม่ล้าน) พันธุ์แท้ พ่อแม่เป็นอย่างไร และลูกเป็นอย่างไรได้บ้าง จงอธิบาย

แนวคิด : หัวล้าน (baldness) เป็นยีนแบบ sex-influenced ที่เกิดหัวล้านในผู้ชายได้ปกติ (เด่นปกติ) แต่ในเพศหญิงต้องเป็น Homozygously Dominated จึงจะล้าน (แบบไข่ดาวอีกแน่ะ โลกนี้ช่างไม่ยุติธรรมเสียจริง ๆ T_T)

2007-12-02

เบื่อ ๆ ในวันหนาว ๆ ที่ไม่ค่อยจะหนาว

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

1. อย่างไหนจึงจะเป็นหน้าหนาว
โดยการนิยามแล้ว ก็คือช่วงที่มีอากาศเย็น ๆ หลาย ๆ วันละมั้งครับ แต่เห็นเขาก็มักจะกำหนดให้หน้าหนาวไทย ๆ เราเริ่มที่ประมาณพฤศจิกายน ถึง กุมภาพันธ์ของปีถัดไปครับ แต่ทำไมมันไม่ยักกะหนาวให้ครบวันเวลาจริง ๆ ก็ไม่รู้เหมือนกัน (เซ็งนะเนี่ย)

2. คนอื่นเขาหนาว แต่เราไม่หนาว
บางทีเราก็อาจรู้สึกขี้ร้อนมากกว่าคนอื่น ๆ ได้เช่นกันครับ ในกรณีนี้ ถ้าหากเขาหนาวกันแล้ว แต่เรายังไม่หนาว ก็แสดงว่าเราเป็นคนขี้ร้อน หรืออ้วนเกินไปแล้ว (แต่ของผมขี้ร้อนโดยกำเนิดครับ เหงื่อออกง่ายมาก ตอนเด็ก ๆ เดินใต้ตึกนิดเดียวโดนครูตีเพราะนึกว่าไปเล่นสกปรกมา) แบบนี้เลยไม่ได้อารมณ์ร่วมกับเขาเลย

3. คนไทยชอบนับว่าปีนี้หนาวกี่วัน
ไม่รู้จะตอกย้ำตัวเองอะไรกันนักหนา แล้วก็ไม่รู้จะทำสถิติกันไปทำไมด้วยว่าปีนี้เมืองไทยหนาวกี่วันในแต่ละปี จริงอยู่ครับว่าหน้าหนาวเมืองไทยเราลดลงทุกปี แต่ก็ไม่น่าเอามาเป็นประเด็น ... ถ้าอยากหนาวมากก็ไปอยู่ต่างจังหวัดครับ เพราะในเมืองอากาศมักจะร้อนกว่า การออกไปเที่ยวต่างจังหวัดบ้างจะพอช่วยได้ครับ (ยกเว้นตามแหล่งท่องเที่ยว เพราะอาจทำให้ท่านเซ็งนักท่องเที่ยวมากกว่าเดิม)

4. เสื้อกันหนาว
บางทีผมก็สังเกตบ่อย ๆ ครับว่าการใส่เสื้อกันหนาวมันใส่กันยังไงบ้าง
4.1. ผู้ชาย มักใส่สีเข้ม โดยเฉพาะดำ
4.2. ผู้หญิง อันนี้ไม่รู้ครับ ไม่ค่อยได้คุยด้วย
4.3. เรื่องขนาดและแฟชั่น มักเป็นไปตามฐานะครอบครัว (เช่นของผมต้องใส่ที่ได้รับแจกหรือเป็นของที่ระลึกมา เพราะต้องประหยัดเงินไว้ครับ)
4.4. สังเกตที่โรงเรียนมา จะมีแก๊ง ๆ นึง ใส่เสื้อกันหนาวแบบเดียวกันเด๊ะประมาณครึ่งรุ่น แล้วสมาชิกคนหนึ่งไปทำวีรกรรมอะไรไว้ก็ไม่ทราบได้ สรุปสุดท้าย ฝ่ายปกครองไล่กวาดเช็กหมดรุ่น ซวย
4.5. ผ้าที่ใช้ ก็มีหลายแบบแตกต่างกันไปครับ แต่คนบ้านผมนิยมผ้าร่ม เพราะม้วนเก็บได้ไม่เปลืองที่กระเป๋าครับ แม้ว่ามันจะดูทุเรศมากเมื่อถูกขยำจนเละและเมื่อเทียบกับเสื้อแฟชั่นก็ตาม (ดีกว่าเอากระดาษหนังสือพิมพ์ขยำยัดเสื้อเยอะ)
4.6. สืบเนื่องจาก (2) ผมเลยไม่ค่อยได้ใส่ เพราะตอนเช้า ๆ หนาวจริง แต่พอบ่าย ๆ มันร้อนมากมาย

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

6. เร่งแอร์แกล้งชาวบ้าน
กรณีงาน Java Workshop ซึ่งแม้ว่ามันจะจัดช่วงฤดูร้อน แต่ก็มีไอ้บ้าบางตนไปเร่งแอร์จนถึง 10?C ที่นับได้ว่าโหดมหาโหดจริง ๆ โชคดีที่เตรียมเสื้อกันหนาวไป 555+ (หรือเราบ้าหว่า เพราะนั่นมันหน้าร้อนนะนั่น)

7. หนาวใจ
ช่วงฤดูหนาว สัตว์บางชนิดก็อาจจำศีลเพื่อรอฤดูร้อน บ้างก็ติดสัดเพื่อผสมพันธุ์ ซึ่งเป็นกระบวนการบังคับ แต่ผมรู้สึกว่าคนก็ "ติดสัด" ช่วงนี้เหมือนกันเพราะเวลามันหนาวแล้วไม่ได้หนาวแค่กาย แต่มันหนาวใจด้วย (โดยเฉพาะไอ้แมวแถวนี้ที่หนาวใจมาประมาณ 16 ปีแล้ว) ต้องหาใครมาห่มให้ อันเป็นมุขน้ำเน่าตลอดกาลอีกมุขหนึ่ง

8. ทำตัวเหมือนแมว
อันได้แก่ การนอนกลางแดดในตะกร้าอุ่น ๆ ในวันหนาว ๆ นั่นเอง (จากที่เคยเห็น แมวมันชอบทำแบบนี้) ถ้าอยากรู้ว่าทำไมน้องแมวชอบนอนแบบนี้ละก็ ลองดูได้นะเมี้ยว~

9. อาการติงต๊องไฮเปอร์ส่วนบุคคลในฤดูหนาว
ไม่รู้สิ แต่เค้ามักจะเป็นแบบนี้ทุกหน้าหนาวเลยอะ เข้าใจใช่มะ คือ คือ แบบว่าพลังงานมันเหลืออะ เพราะมันไม่ค่อยหนาวเท่าไหร่... เอ ไม่สิ เดี๋ยวนะ แอ๊ หรือว่าหน้าหนาวทำให้เมตาบอลิลึม เอ๊ย เมดดาโบบิ้ทรึ่ม เอ๊ย เมตาบอลิซึม เอ๊ย ถูกแล้ว มันเปลี่ยนไป เลยเป็นแบบนี้ก็ไม่รู้ เมี้ยววววว@*%$*^&@##!!!!!

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

11. ... แล้วก็ใกล้วันพ่อด้วย
นี่ก็ใกล้วันพ่อแล้ว หลังจากที่เป็นวันลูกมาหลายเดือนเลย ก็ไปแสดงความเคารพและขอบคุณคุณพ่อกันด้วยนะครับ ^ ^ ตัวผมก็ขอสัญญาว่าจะเป็นเด็กดีด้วยครับ ^__^

2007-11-27

NJ Spelling Bee 2007!

(เกี่ยวกับภาษาอังกฤษ ก็เขียนเป็นอังกฤษนะครับ)

Yesterday, yes, but it still left me exhausted today. I'm talking about NJ Spelling Bee 2007, held by Nation Group (Thailand), with sponsorship and cooperation from Ministry of Education, Sripatum University, and etc.

This is the final competition to seek the winner from the 100 qualified competitors from 4 (cultural) regions of Thailand. The winner of this event got the cup by HRH Princess Sirindhorn, and a free trip to Melbourne, Australia.


ROUND 1 : MULTIPLE MINDBENDER (59/100 qualified)
The first round was a plain Multiple Mindbender. No, it's not just a name. It's really a mind bender when you spell all words right but not sure if it's "Inseparable" or "Inseperable" (the first one is correct). The passing score was 46 out of 50, which is outrageous for the outsiders, that might can't figure out what it means when you have to guess an easy word because you only revise harder ones.


ROUND 2 : SUDDEN DEATH (10/59 qualified)
Plain and simple. You spell the words into a paper, and show it up. Anybody who makes even a little mistake is shot down. The stress is so great that the room felt extremely cold like when I was back in Japan or up the Doi Inthanon (lit.: Mt.Inthanon). After 9 people (including me) were qualified, there were 2 people that went wrong and was still left in the game. One of them was a junior from my own school, which produced another wave of stress on me after the two "dueled" 7 or 8 words before it came to a conclusion that she passed. Whew, did I care too much about my friends?

Death-spilling word : "Persuasion" (thanks Bethesda Soft! Your in-game "PERSUASION" helped me out!)


ROUND 3 : COOL 'CATS' (5/10 qualified)
I ask Colors, you write Red, Green, Blue, Yellow, Cyan, Magenta... OK, 30 seconds' up. In this round, you will be asked to write as many words as possible from a "category word" given by the staffs. The fun came out when **** (name reserved for privacy) wrote the '3-letter, a-word' in the Body section. If you still can't figure what word it is, it has the same meaning as "butt".

Finally, it came out that there are 2 people in the 5th rank (again!), and the reserved category, "kitchen", had to be pulled out.


FINALE : LAST MINUTE (1/5 as winner, 4/5 as runner-ups)
The simplest cla.. (whoops, electrical shock in my hands .. I think I will explain about this later) .... The simplest classic Spelling Bee. You spell out the words from the list, orally provided.

Others' Strategy: Try all, if you can't, then skip.
My strategy: Skip the words IMMEDIATELY if unsure. Spell only short words.
The Winner's strategy: Spell all words as extreme speed!

And as the smoke clears, I became the first runner-up, winning a trip to Singapore along with the other 4 runner-ups. My adviser won a trip to Hong Kong.


---

Conclusion, and a note to all who wish to improve their English skills: Use it! Somehow, find a way to utilize it in real life! Don't be afraid to use English in your daily activities. Try watching English soundtrack movies with English subtitles (also a nice way to avoid low-quality Thai "hell sub"s). Having friends in other countries is also a nice way to boost your skills! Try playing games in English version, select European, American, or Australian servers to see as many English-speaking players as possible.

I myself started out when I was very young, I had trouble with games in English, and all my parents did was to teach me how to properly use dictionaries and encyclopedias. In the present days, I don't even need to look up for words' meanings as I can guess all of them from context.

I'm proud of myself, as this is from my own internal skills - not added nor preserved in any manner.

My next stops : Professional English, Basic Japanese, and a way to chant reversed SQL as spells (see "The Melancholy of Haruhi Suzumiya", you will know what I mean).


---

Sponsors : NJ, Nation Group, Ministry of Education, MTV, etc! (too many to be listed!)
Special Thanks : Aj.Anothai, Aj.Dusita, Aj.Orawan P. (correct names? If not, tell me to fix!) (there's also Orawan K. teaching Biology in my school), my parents, my friends (especially: "Missy Matsui", "WindyTale", "Quanrian", "Broderick Contofalsky"... wait! That's ME! ... and more!), Kasetsart University, Cambridge, Longman, Macmillan, Wikipedia, Wikimedia Foundation, Tokyo Tech High (do I really have to mention this? =__="), Bethesda Softworks (made me scroll through lines of words in their games), whoever that developed the learning-games back in 1995, my own Biological Redundant Array of Independent Neural-cell (B.R.A.I.N.) and ALL THE ETC!!

2007-05-15

Forensics: แกะรอยอีเมล์?

WARNING: บทความ (อะไรก็ไม่รู้) นี้อาจมีเนื้อหาที่คล้ายการส่งเสริมการกระทำผิดกฎหมายหรือข้อบังคับของบ้านเมือง ซึ่งผู้เขียนไม่สนับสนนให้ผู้อ่านกระทำตาม บทความนี้มีไว้เพื่อการศึกษาเท่านั้น -- end warning

เคยสงสัยกันไหมครับว่า อีเมล์ที่คนนั้นคนนี้ส่งมา เขาส่งกันมาจากไหน ส่งกันได้ยังไง บางที เราได้เมล์จากใครก็ไม่รู้ หรือต้องการ (เจือก) อะไรบางอย่างจากจดหมายแต่ละฉบับ จริงๆ มันทำได้ครับ แต่บอกนิดเดียวก็แล้วกัน

หลักการเบื้องต้น: คิดว่ามันเป็นจดหมายธรรมดา โดยให้ผู้ส่งหย่อนใส่ตู้ ให้ไปรษณีย์เป็น Mail Server (SMTP) ให้ ตู้ ปณ ฝั่งผู้รับเป็น Mail Server อีกตัว (POP/IMAP ฝั่งผู้รับ) (ต้องเป็น ปณ นะครับ ไปรษณีย์ธรรมดามันไม่ได้มโณภาพ จริงๆ นะ)

เวลาเราส่งจดหมาย เราไม่ได้ส่งไปแต่จดหมาย แต่เราส่งข้อมูลเกี่ยวกับจดหมายไปด้วย (เช่น ชื่อผู้ส่ง จ่าหน้าถึงใคร วงเล็บมุมซองว่าอะไร ติดสแตมป์กี่บาท (เกี่ยวมั้ย =__=") ส่งเมื่อไหร่ (ปั๊มจากไปรษณีย์) ) เป็นต้น ใครไม่เคยเห็นจดหมาย (ผมเชื่อว่ามันต้องมี ไม่เป็นไรครับ เกิดมาผมส่งจดหมายไม่ถึงสิบฉบับตามที่โรงเรียนสั่ง และได้รับแต่พัสดุตามที่สั่งรับไว้) ก็ลองไปขอจากครูหรืออาจารย์ที่มีอายุหน่อยนึง หรือเปิดหนังสือเรียนภาษาไทยดูได้ครับ (ผมมั่นใจว่ามันมีแน่ๆ) จะได้เข้าใจตรงกัน

เอาละพอแล้ว ตรูเขียนเรื่อง Email นิ ไม่ใช่ สปช หรือ หลักภาษาไทย ซะหน่อย =__="

เอาเป็นว่า เวลาที่เราส่ง Email ออกไป (ผ่าน SMTP Server หรือตู้ไปรษณีย์) (สังเกตนะครับว่าจริงๆ แล้วเราไม่ต้องมี email account ก็ส่งได้) เราจะส่งข้อความเหล่านี้ออกไปให้กับ SMTP Server เป็นพื้นฐานสุดครับ ตัวอย่างคำสั่ง SMTP (ใสโดย "Win-Start" -> Run -> CMD -> "telnet <server> <smtp port>" แต่ต้องไปหา Mail Server มาลงก่อนนะครับ)

ตัวอย่างนี้คือ ผมส่งข้อความทดสอบ (นี่มันไม่ได้ทดสอบแล้วละ) ไปให้ "kyon" ที่เป็นสมาชิกของ "localhost" (ถ้าชื่อใครมันคุ้นๆ ก็อย่าว่ากันนะครับ)

HELO localhost
MAIL From:<admin@thaimodz.net>
RCPT To:<kyon@localhost>
DATA
Subject: About your Folder
Haruhi has known about your... secret... folder about Mikuru. Please be aware around both of them.
.
QUIT

ครับ แค่นี้เราก็ส่งอีเมล์ได้แล้ว สังเกตบรรทัด MAIL From: นะครับ จริงๆ ผมจะใส่เป็นชื่อใครก็ได้ จะ DSI คมช ฯลฯ ได้หมดครับ (แต่เขาจะเชื่อหรือไม่ก็อีกเรื่องนึง)

สังเกตว่า กว่าผมจะได้เขียนจดหมายจริงๆ ก็ต้องลงชื่อผู้ส่งและจ่าหน้าซองก่อน พอเขียนเสร็จก็ต้องใส่ซองติดแสตมป์ให้เรียบร้อย (สังเกตตัว . (จุด) ให้ดีครับ เป็นคำสั่ง "เลิกเขียนจดหมาย" ของ SMTP) บรรทัดก่อนนั้นใช้เป็นข้อมูลของจดหมายทั้งสิ้น

คราวนี้เรามาดูที่ฝั่งผู้รับ ผมใช้โปรแกรม James ในการรัน Mail Server (เป็น Java) จึงได้เนื้อหามาแบบนี้ครับ โดยอันนี้ไป "งัดแงะ" มาจากคลังไฟล์โดยตรง

Return-Path: <admin@thaimodz.net>
Received: from localhost ([127.0.0.1])
by thaimodz (JAMES SMTP Server 2.2.0) with SMTP ID 11
for <kyon@localhost>;
Thu, 10 May 2007 08:58:56 +0700 (ICT)
Subject:555
Date: Thu, 10 May 2007 08:58:56 +0700 (ICT)
From: admin@thaimodz.net
Delivered-To: kyon@localhost
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset=Cp1252
Mime-Version: 1.0
Message-ID: <31131058.1178762370671.javamail.thaimodz@thaimodz>

Haruhi has known about your... secret... folder about Mikuru. Please be aware around both of them.

ลองสังเกตดูก็จะเห็นว่า ทาง James (ชื่อ Mail Server) ได้เพิ่มหัวจดหมายไปเยอะพอสมควร หากตั้งใจอ่านดูดีๆ ก็จะเห็นถึง ชื่อ Mail Server ที่ส่งออกมา (กรณีนี้ loopback อยู่ในเครื่องตัวเอง จึงเป็น Localhost) และชื่อผู้ส่งยังไปตกใน reply-to อีกด้วย ซึ่งจะถูกใช้เมื่อมีการตอบอีเมล์นี้

แน่นอน ข้อมูลที่เราย่อมสนใจคือ ผู้ส่งอยู่ที่ไหน แต่ James ก็ใส่มาเพียงแค่เวลา กับ Time Zone เท่านั้น ซึ่งจัดว่าคลุมเครือมากสำหรับการส่งอีเมล์ ทีนี้ผมจะให้ดูหัวแบบ X-header บางส่วนที่นำมาจาก Inbox บ้างครับ (ปรุงแต่งเพื่อรักษาสิทธิส่วนบุคคลแล้ว เนื่องจากหยิบของเพื่อนมา)

X-Originating-IP: [158.108.XXX.XXX]
X-Originating-Email: [undisclosed_name@some-mail-server.com]

สังเกต บรรทัด X-originating-IP ซึ่ง Mail Server แห่งหนึ่งได้ "ยัด" มาให้ด้วย อ่านเอาก็รู้ว่านี่คือการเก็บ Log ของ Mail Server ที่ส่งออกมาแน่นอนโดยไม่ต้องสงสัย ก็ไป Map หรือ Tracert หาเองนะครับว่าเมล์ของท่านน่ะ มันมาจากไหน?

(ว่ามันส่งมาจาก ม.เกษตร แต่... เอ่อ ช่างเหอะ เรื่องส่วนตัวห้ามปนกับเรื่องงาน เออน่า ไม่ใช่แฟนหรอก =__=")

เอาละ สรุปว่า เราไม่สามารถตรวจหาแหล่งที่มาได้ชัดเจน จนกว่า... (เรียงตามความละเอียด น้อยไปมาก)

1. เราได้ข้อมูลจาก Header
2. เรามีข้อมูลมากพอ เช่น สำนวน ภาษา เวลาที่ส่ง Time Zone หรือแม้กระทั่ง IP ของ SMTP Server
3. SMTP Server "ใจดี" ส่ง Originating IP มาให้ด้วย (แม้ไม่ใช่บริษัทเครือข่ายมือถือก็ตาม)
4. เราสามารถเข้าไปอ่าน Access Logs แล้วตาม IP Address กลับไปได้ (ไว้เขียนวันหลังนะครับ)


DEDICATION:
ให้ท่าน "ผู้จัดการ" ที่สงสัยเกี่ยวกับระบบอีเมล์อย่างแรง จนป๋มเกิดแรงบันดาลใจเขียนไอ้ข้อความอะไรก็ไม่รู้นี่ขึ้นมา!!!


.... อ้อ นี่คือภาคต่อของจดหมายฉบับนั้นครับ!! (คิดซะว่าเป็น exercise ละกัน)
(DISCLAIMER: เนื้อหานี้เพื่อความสะใจส่วนบุคคล ไม่มีส่วนเกี่ยวข้องกับองค์กร บุคคล โรงเรียน หรือ "พระเจ้า" ใดๆ ทั้งสิ้นเด็ดขาด!)
Return-Path: <suzumiya_haruhi@sosdan.northhigh.ac.jp>
Received: from localhost ([127.0.0.1])
by thaimodz (JAMES SMTP Server 2.2.0) with SMTP ID 291
for <kyon@localhost>;
Tue, 15 May 2007 23:41:28 +0700 (ICT)
Subject:Die Kyon DIE!!!
You think that agent you hired could protect you and your filthy actions from the god like me? WRONG! Now you wait there and prepare yourself for CAPITAL PUNISHMENT!
Date: Tue, 15 May 2007 23:41:28 +0700 (ICT)
From: suzumiya_haruhi@sosdan.northhigh.ac.jp
Delivered-To: kyon@localhost
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset=us-ascii
Mime-Version: 1.0
Message-ID: <24569170.1179247304968.javamail.thaimodz@thaimodz>
บายจ้า~! ^__^

2007-05-09

JAVA : Tomcat is not a Cat (Brief)

เอาละ วันนี้ข้าน้อยเบื่ออีกแล้ว (เอาไงกันเนี่ย เบื่อง่ายจัง) ก็เลยว่าจะมาลง blog ให้นิดหน่อยครับ เรื่อง Tomcat (ไม่ใช่ Tom Cat ที่กัดกับ Jerry Mouse แล้วแพ้ตลอดนะครับ เจ้านี้ชนะเรื่อง Java Server ด้วยซ้ำ)

ก็ขอบอกอีกทีว่าไม่ได้เก่งอะไรมากมายนะครับ ก็อาจพลาดหรือตกหล่นอะไรได้ ก็เพิ่มลงไปใน comment ได้เลยครับ แล้วจะ update ให้ถูกต้องอีกที

ในปัจจุบัน ตลาดโปรแกรมมีการแข่งขันกันมากขึ้น ทำให้ต้องมีการพัฒนาโปรแกรม และภาษาโปรแกรมให้ดีขึ้นกว่าคู่แข่งเสมอ มีช่วงหนึง ตั้งแต่การถือกำเนิดของ Java กับ Concept ว่า "Write once, Run anywhere" (ไม่ถูกนักหรอกครับ) การเขียนโปรแกรมก็ไปทำบนเว็บมากขึ้น

Microsoft มี ASP แล้ว Sun ก็เลยมี JSP ด้วย ทั้งสองอย่างเป็นโปรแกรมที่รันจาก server ทั้งสิ้น

จริงๆ แล้ว Tomcat นั้น เป็น project ของ Jakarta (สาขาย่อยของ Apache นะครับ ไม่ใช่ Indonesia) ซึ่งเป็นสาขาที่ทำงานเกี่ยวกับ Java ของทาง Apache เอง (เจ้าของ "Apache Server" ที่เป็นที่นิยมมากที่สุดในปัจจุบัน) แต่จากความน่าจนใจและคุณภาพของงาน ทำให้ Jakarta Tomcat ได้เลื่อนยศเป็น Apache Tomcat ในที่สุด

ที่ควรรู้คือ Tomcat นั้น ก็เป็น Web Server กลายๆ ด้วย (แม้ว่าเขาจะไม่ใช้กันก็เถอะ) เพราะฉะนั้น อย่าเพิ่งไปรัน Server app อื่นๆ ถ้ามี เพราะ port จะชนกัน ใช้ไม่ได้อีก

ทีนี้ การจะใช้ Tomcat นั้นไม่ค่อยยากนักครับ เพราะหลักๆ แล้วจะเป็นเรื่องของการเขียน code ที่ยากกว่า เพราะต้องมีเรื่องของลักษณะการทำงานกับ server ที่ค่อนข้างเฉพาะกว่าการใช้ Applet (ซึ่งปัจจุบันเขา*แนะให้เลิกใช้ เพราะมันไม่ค่อยสะดวก)

ส่วนในหลักการทำงาน Tomcat สามารถรับเอา Web app ใหม่เข้ามารันได้เลย โดยหากเรานำไฟล์ .war (ก็คือ .jar ที่ rename ใหม่) มาวางใน %Tomcat_dir%/webapps/ (ตรงที่มี ROOT) ในขณะที่ Tomcat กำลังทำงานอยู่ มันจะโหลดเอา war เข้าไปเองโดยไม่ต้อง reset Tomcat เลย

ยังไม่หมดครับ Tomcat ยังมี port ฉุกเฉิน สามารถตัดระบบได้ง่าย โดยเข้า telnet ไปที่ port 8005 แล้วสั่ง SHUTDOWN ได้ทันที

ในแต่ละ Web app ก็ยังมี folder ชื่อ WEB-INF (ซึ่งต้องมี และ case sensitive) สำหรับเก็บ classes และ jars รวมไปถึง config และไฟล์อื่นๆ ที่เราต้องการเก็บเป็นความลับด้วย (โดยเรียกเอาจากโปรแกรมได้อย่างเดียว)

อ้อ เกือบลืมไป help และ docs มีติดมากับ Tomcat แล้วนะครับ ไม่ต้องไปหาเพิ่ม

เอาเป็นว่า วันนี้เหนื่อยมากแล้วครับ (เหนื่อยง่ายจังเรา) เพราะเพิ่งได้ Java Workshop certificate จาก Software Park มาหมาดๆ (แต่ก็ยังถ่ายทอดเนื้อหาห่วยแตกเหมียนเดิม T_T)

สุดท้ายนี้ ก็ขอให้โชคดีนะครับ จบแล้ว เหอๆๆๆ = ="

* "เขา" คือ ดร.วีระศักดิ์ ซึงถาวร ครับ

2007-05-03

JAVA : GUI Basics

วันนี้ข้าน้อยรู้สึกเบื่อๆ ครับ ก็เลยมาโพสซะหน่อย เนื้อหาคงวกไปวนมาหน่อยนะครับ (เอาเรื่องยากมาลงก่อนนิ) แต่คงเป็นประโยชน์สำหรับคนที่กำลังทำ GUI อยู่นะครับ

เวลาเราเขียนโปรแกรม เราใช้คนเดียว เราใช้รับ String args[] เอาก็ได้ใช่ไหมครับ แต่ว่าเวลาเอาไปให้คนอื่นใช้ ถ้าเขาเป็น End User ก็คงใช้ไม่ถูก

ยิ่งสมัยก่อน ระบบเป็นแบบ Text-Based (เช่น สมัย DOS) แน่นอน GUI ไม่มีเลย ทุกอย่างใช้การส่งค่าเข้าไปในโปรแกรมตรงๆ ตลอด ตัวอย่างก็เช่น ping, tracert ก็ต้องระบุ IP ของเป้าหมายลงไป ก็ถือเป็นการส่งค่า parameter อย่างหนึ่ง

ต่อมา ในสมัย Windows ก็ได้เกิดการใช้สัญลักษณ์และภาพ หรือเมนู ในการแสดงผล และรับคำสั่งจากผู้ใช้ จากนั้นมาจนถึงปัจจุบัน การใช้งานคอมพิวเตอร์ทำได้อย่างสะดวกสบาย อย่างตอนที่ผมกำลังพิมพ์บทความนี้อยู่ ผมก็กำลังพิมพ์ลงใน Text Box ซึ่งก็เป็นส่วนหนึ่งของ GUI ครับ

GUI ที่ดี จะต้องสวยงาม (อย่างน้อยก็เป็นระเบียบละ) ใช้งานได้ง่าย ทำงานได้รวดเร็วไม่หน่วงระบบ และไม่ทำให้เกิดความสับสนแก่ผู้ใช้ครับ (ถ้าเราสร้่าง Frame1 Frame2 Frame3 etc. แบบนี้พร้อมๆ กัน แถมมีปุ่มอะไรไม่รู้อีกเยอะแยะ User คงงงตาย กดไปจะระเบิดรึเปล่าเนี่ย)

เอาละ เกริ่นกันมามาก เดี๋ยวท่านๆ จะนึกว่าข้าน้อยกำลังบ่นแบบคนแก่ซะเปล่าๆ เอาเป็นว่ามาเริ่มกันเลยครับ

ระบบ GUI ของ Java นั้นมีลักษณะเฉพาะตัว ก็เนื่องมาจากการที่ Java มี JVM อยู่นั่นเอง ทำให้การทำงานมีขั้นตอนมากกว่า C อยู่พอสมควร

Components
Component ก็คือ "ชิ้นส่วน" บน Interface นั่นเอง เช่น Button, TextField, ฯลฯ ซึ่งจะต้องวางลงบน Frame หรือ Component อื่นที่มีคุณสมบัติเป็น Container (เช่น Frame, Window, Dialog, Panel)

ทุกอย่างจะต้อง "วาด" ลงบนวัตถุที่เป็น Top-Level ก็คือ พื้นหน้าจอต่างๆ นั่นเอง หากตัวเองไม่ใช่ Top-Level แล้ว ก็ทำได้แค่ใช้หน่วยความจำ จากนั้นค่อยวาดลงไปบน Top-Level Component อีกที


Layout Manager
Layout Manager ก็คือระบบที่ไว้ช่วยจัดวาง GUI ให้เรานั่นเอง Layout Manager มีสี่อย่างหลักๆ ได้แก่...

- FlowLayout เป็นการแบ่งหน้าจอเป็นบรรทัดๆ วางลงให้เต็มทีละบรรทัด (เรียงตามลำดับการ new Component) จัดกลางเสมอ
- BorderLayout แบ่งจอเป็นห้าส่วน ได้แก่ North, East, South, West และ Center. แต่ละ Region จะวางวัตถุได้แค่ชิ้นเดียว (ซึ่งแก้ได้ด้วยการใช้ Panel)
- GridLayout จะรับค่าจากผู้ใช้ แล้วแบ่งจอออกเป็นส่วนๆ ตามที่ผู้ใช้กำหนด แต่ละช่องมีขนาดเท่ากันเสมอ
- Null - ที่สุดแห่งกระบวนท่า คือไร้กระบวนท่า - ระบบนี้จะให้เราจัดวางตำแหน่งของวัตถุต่างๆ ได้อย่างอิสระ โดยใช้คำสั่ง <object>.setBounds (X,Y,Width,Height); ในการช่วยจัดวาง


Toolkits
ระบบดั้งเดิมสำหรับทำ Interface ก็คือระบบ AWT (Abstract Windowing Toolkit) ซึ่งมีมาใน JDK ตั้งแต่รุ่นแรกๆ มีคำสั่งพื้นฐานสำหรับการสร้าง Interface มาให้ (import java.awt.*;)

ข้อดีของ AWT นั้นคือสามารถใช้ฝึกได้ เพราะไม่มีการอำนวยความสะดวกมากนัก ทำให้ไม่ "รู้สึกสบายจนเคยตัว" และ AWT นั้น ก็คือรูปแบบที่เข้าใจง่าย รูปแบบเรียบๆ

ส่วนข้อเสียนั้น ก็คือ AWT ทำงานค่อนข้างช้าครับ AWT ทำงานโดยการ....

1. ส่งไปยัง JVM
2. JVM โหลดเข้า API (ซึ่งเป็นของ OS)
3. API ใช้ subroutine ของตัวเอง (หลายบรรทัดอยู่มาก) ในการ render ออกมาเป็นภาพ

จากขั้นตอนเหล่านี้ ทำให้ระบบ AWT ไม่ค่อยเป็นที่นิยมในปัจจุบัน

ต่อมาในยุค Java 1.1 ก็ได้เกิดระบบ Swing ขึ้น (เกิดจากภาพ animation เจ้า Duke โล้ชิงช้าในระบบ GUI ในสมัยนั้น จึงได้ชื่อนี้มา) ซึ่งหลักการแตกต่างออกไป คือ จะมีการใช้ Graphic Memory เข้าช่วย และไม่ได้ใช้ subroutine ของ OS โดยตรง ทำให้ลดภาระลงไป และที่มากไปกว่านั้นก็คือ Components ต่างๆ สามารถโหลดเข้า Graphic Memory ได้จาก JVM โดยไม่ต้องใช้ API ทำให้...

1. เร็วขึ้น เนื่องจากไม่หน่วงเครื่องด้วย subroutine มากมาย
2. Platform-Independent เนื่องจาก ใช้ API น้อยลง ทำให้รันบนระบบใดก็ได้ผลคล้ายกันมากๆ
3. เนื่องจากความเป็น Free Source ของ Java ทำให้ออกแบบ component ใหม่เองได้อีกมาก


ก็คงพอจะอ่านเล่นแก้เบื่อได้นะครับ หากมีอะไรเพิ่มเติมก็ใส่ได้เลยนะครับ เพราะว่าอันนี้หนักไปทางการบันทึกทบทวนหลังเรียนเฉยๆ วันไหนว่างๆ จะมาต่อเรื่อง Client/Server นะครับ

2007-04-01

Thaimodz ภาคภาษาไทย!! เปิดตัวกะข่าวดีละกัน ^__^

สวัสดีครับท่านผู้อ่านที่เคารพ

ที่ท่านกำลังอ่านอยู่เป็นบล็อกใหม่ของกระผมเองครับ ไม่ใช่ใครอื่นที่ไหนหรอกครับ Thaimodz เนี่ยแหละ รู้จักกันดีแล้วมั้งครับ (ก็แน่ละสิ ไม่งั้นท่านๆ จะเข้ามาทำไมใช่มั้ยล่า ^_^)

ผมก็ อะนะ เป็นคนเดินดินธรรมดาคนหนึ่ง โดนกระทำอะไรๆๆ จากสังคมมากมาย แต่อยู่มาวันนึง ไอ้ Thaimodz คนเนี้ย มันเ*ือกโชคดี ได้ไปแข่ง MOS Olympic 2007 ที่ TK Park นี่เอง

เอาไงละทีนี้ มันไปลงแข่ง Excel 2003 ตั้งกะตอน ม.4 แต่ก็ยังได้คะแนนมาตั้ง 813/1000 เวลา 3001s (เครื่องแฮ้งอีกแน่ะ เอ้า) อีตอนรับรางวัล มันก็คิดว่าไม่ได้ เพื่อนมันก็ลุ้นกันตัวโก่ง กะแช่งให้มันได้ที่สอง หรือที่สาม เพราะรางวัลมันน้อย แต่ปีหน้าลง Excel2003 ไม่ได้เหมือนกัน

เอาละหว่า ชิบ*ายแล่ว ทีนี้ ไปๆ มาๆ ประกาศไปหมดแล้ว เหลือ Excel 2003 High School Champion ทีนี้ละเครียดกันทั้งเกษตร (ไปกันสิบกว่าคน เยอะมาก ผมนั่งไม่ได้อยู่คนนึง ที่ในรถไม่พอ อ.ที่ปรึกษาของ สบค. เขาเลยพาไปส่งเอง (ติดต่อด้วยนะครับอาจารย์ ผมเดือดร้อนมากครับ เจอกะพวก No Pic No Proof เต็มไปหมด))

เอาละ สุดท้าย กลายเป็นว่า คนที่เดินทางไปได้อนาถาที่สุด (เดิน รถเมล์ แท็กซี่ บีทีเ้อส) กลับไปได้ไอ้รางวัลใหญ่สุดนั่นซะงั้น แถมคะแนนยังไปเท่ากับแชมป์ฝ่ายอุดมศึกษาพอดิบพอดี แบบว่าเขาแทบจะทำหน้าต่อยผมให้ตายเลยทีเดียวเชียว เครียดกันไปหมด

รางวัล สองหมื่นห้า ตอนนี้ "ผู้จัดการ" เขาจะซื้อรถ "โค้ช" ก็จะซื้อคอม คนเป็นลูกก็ขอสำรองเงินไว้ละกันนะครับ

ก่อนจากกันไปในครั้งแรก ผมก็ขอขอบคุณ บริษัท M$ มากๆ ครับ ที่ทำ MS Office ได้ดีจนมีคนไปทำ OpenOffice ซะงั้น // Certiport ครับ อุตส่าห์ออกใบเซอร์ให้ แถมพนักงาน eSupport ใจดีมากครับ // TK Park และ ITIT ที่จัดงานนี้ครับ // Lactasoy แจกขนมกะนมมากมาย // สคบ เอ๊ย สบค. ม.เกษตร ครับ เอาข่าวมาบอกกัน // สาธิตเกษตร หลักสูตรคอมกะวิทย์ครับ // อาจารย์ "สุวิกรม" ครับ เป็นที่ปรึกษาให้ด้วย ใจดีมากมาย ^_^ // เพื่อนๆ ทุกคนครับ ที่ยอมรับว่าผมเป็นคน มีฐานะเช่นมนุษย์ทั่วไป (บางคนคิดว่าผมเป็นตัวลากไก่ไปกินในน้ำครับ) // พ่อกะแม่ ที่เป็น "โค้ช" และ "ผู้จัดการ" ทำทุกอย่างให้หมดเลย ยกเว้นตอนสมัคร // แล้วก็ "พี่หนิง" ที่ ITIT ครับ เช็คมีปัญหารีบโทรเชียว ถ้าไม่ทัน "โค้ช" เขาคงคิดว่าบริษัทพี่ทำเช็คเด้งซะงั้น // แล้วก็ขอบคุณแผ่นดินไทย บรรพชนชาวไทยทุกท่านที่ได้ปกป้องผืนแผ่นดิน ไพร่ฟ้าประชาชน ให้ตัวกระผมได้เกิดมาบนแผ่นดินไทย เป็นคนไทยโดยสายเลือดและชาติกำเนิด ผมให้สัญญาว่าจะรักษาคุณความดีไว้ตลอดไปครับ

เอ้า เลี้ยง สุกี้!!~~~~!!

แห้งหรือน้ำดี ไปสั่งไว้เลยเดี๋ยวจ่ายเอง 555+

ปล. นี่ไม่ใช่ April Fools นะครับ

ปล. อีกที มีคนเอารูปป๋มไปขึ้นด้วยแหละ แหะๆๆๆ v(^__^)V