วันเสาร์ที่ 17 เมษายน พ.ศ. 2553

จังหวัดกำแพงเพชร

# 2 / 76

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

อาณาเขต
ทิศเหนือ : ติดกับจังหวัดสุโขทัย
ทิศตะวันออก : ติดกับจังหวัดพิษณุโลก และ พิจิตร
ทิศใต้ : ติดกับจังหวัดนครสวรรค์
ทิศตะวันตก : ติดกับจังหวัดตาก

สถานที่ท่องเที่ยวดังๆ
- อุทยานประวัติศาสตร์กำแพงเพชร

จังหวัดปราจีนบุรี

# 1 / 76

- อยู่ในภาคตะวันออก
- มีพื้นที่ป่ามากที่สุดในภาคตะวันออก
- แต่ก่อนมีพื้นที่ใหญ่มาก จึงแยกออกมาส่วนหนึ่งเป็น จังหวัดสระแก้ว

อาณาเขต
ทิศเหนือ : ติดกับจังหวัดนครนายก และ นครราชสีมา
ทิศตะวันออก : ติดกับจังหวัดสระแก้ว
ทิศใต้ : ติดกับจังหวัดฉะเชิงเทรา
ทิศตะวันตก : ติดกับจังหวัดนครนายก และ ฉะเชิงเทรา

สถานที่ท่องเที่ยวดังๆ
- แก่งหินเพิง
- เขาใหญ่

วันเสาร์ที่ 10 เมษายน พ.ศ. 2553

รูปแบบของ Concurrency Control กับ Database

Database Concurrency Control คือ วิธีการควบคุม จัดการ กรณีที่ user 2 คนขึ้นไป
จะทำการแก้ไข เปลี่ยนแปลง หรือ ลบ ข้อมูลใน Database พร้อมๆกัน ซึ่งการที่ user 2 คนขึ้นไป
เข้ามาทำอะไรพร้อมๆกันนั้น อาจทำให้เกิดความผิดพลาดกับข้อมูลได้
แล้วจะจัดการกับเคสนี้อย่างไร ?
1. ไม่จัดการอะไรเลย
เคสนี้ ก็สะดวกดีกับคนเขียนโปรแกรม(-*-) ก็คือ ใคร update ทีหลังสุด ชนะไปเลย(เขียนทับของคนก่อนไปให้หมด) ซึ่งแน่นอน เกิด error ชัวร์ๆ ล้าน%
2. จัดการโดยใช้วิธีที่เรียกว่า Pessimistic concurrency control
ก็คือ ใครที่เข้ามาก่อน จะได้สิทธิ์ Lock Database ไปด้วยในตัว ทำให้ user ที่ 2 ที่เข้ามา จะไม่สามารถ grant เอา role สำหรับการแก้ไข เปลี่ยนแปลง ข้อมูล มาใช้ได้ ต้องรอให้ user คนแรกทำธุระให้เสร็จก่อนนั่นเอง
วิธีนี้ก็ดูเหมือนจะปลอดภัยดี แต่กับระบบเว็บ เราจะไป Lock ทิ้งไว้เลยแบบนี้คงไม่เวิร์ค ไหนจะ ปิด web browser โดยไม่ log out มั่งล่ะ จะค้างยาวไป จนกว่าจะ time out ไปนั่นแหละ(เซ็ต time out ไว้นาน ก็รอกันไปเถิด)
3. จัดการโดยใช้วิธีที่เรียกว่า Optimistic concurrency control(อันนี้ละแหล่มสุด)
ก็คือ จะไม่มีการ Lock Database ไว้ยาวๆแต่อย่างใด(จริงๆมันก็ Lock แป้ปนึงแหละ) ประเด็นคือ ไอ่ตอนเขียนข้อมูลทับลง Database นั่นแหละ จะมีการตรวจสอบว่า ข้อมูลที่ user เรียกขึ้นมาเห็นในหน้าจอ ก่อนที่จะแก้ไข กับ ข้อมูลที่อยู่ใน Database จริงๆ ณ ช่วงที่จะ update Database จริง ตรงกันฟิลด์ต่อฟิลด์หรือไม่
ถ้าตรงกัน ก็ยอมให้ Update ได้ แต่ถ้าไม่ แสดงว่า มีใครซักคนมาเขียนทับไปก่อนเรา เคสนี้ จะ throw Exception ออกมาได้ครับ โปรแกรมเมอร์ก็แค่ show error message ที่หน้าเว็บก็พอแล้ว

ผมเอง เน้นไปที่ Optimistic concurrency control เป็นหลัก(กำลังศึกษาอยู่) เพราะด้วยการ implement แนวทางนี้ จะสามารถนำไปใช้กับ web application ได้จริง
กำลังลองผิดลองถูกอยู่ครับ(ยังไม่สำเร็จ) ไว้ได้ผลยังไงจะมารายงานอีกรอบละกัน

วันพฤหัสบดีที่ 8 เมษายน พ.ศ. 2553

เว็บบล๊อกนี้มีเพื่อวัตถุประสงค์อะไร (draft ver.)

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

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

วันพุธที่ 7 เมษายน พ.ศ. 2553

ทดสอบจ้า

ทดลองสร้างนะ