วันจันทร์, มกราคม 05, 2552

Bad Man return!

คิดถึงบล็อกเกอร์เหลือเกิน ติดอยู่ตรงหา username&password ที่จะเข้ามาจัดการบล็อกเกอร์ไม่ได้ ไปงมหาในอีเมล์อยู่นานพอควร ในที่สุดก็หาเจอจนได้ โฮ่.................. เริ่มต้นอีกครั้งในปีวัว ๒๕๕๒ หลังจากหยุดบล็อกไปหลายเดือน .....ปี

แล้วค่อยมาเล่าให้ฟังตอนหน้าครับ

วันพุธ, กรกฎาคม 05, 2549

ขอหายใจให้มันโล่งหน่อยเหอะ

อืม ก็หายไปอีกเป็นเดือน จากที่มาบล็อกไว้คราก่อน จบจากเรื่องงานช้างของแม่บ้านแล้ว จะเรียกว่าจบก็ไม่เชิงเรียกได้ว่าเป็นช่วงที่พึ่งจะอัพเดทตัวโปรแกรมไปบางส่วนให้มีความปลอดภัยกับโฮสต์ที่พี่ชายท่านหนึ่งกรุณาให้พื้นที่ในการทำเวบเดโม ในฐานะที่เป็นศิษย์เก่ารังสีรามาธิบดีด้วยกันกับแม่บ้าน เชิญเข้าไปชมและทดลองใช้ได้ ที่ http://phana.dpc7.net/caixray/ ก็ต้องขอขอบพระคุณพี่ชูชาติ บรรลือ มา ณ ที่นี่ด้วยครับ


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


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


ผมเคยคุยกับน้องที่เรียนมาทาง Computer Science, Computer Engineer ว่าทำไมไม่สนใจจะเข้าไปทำงานในฟิลด์ของสาธารณสุขบ้าง ก็ได้รับคำตอบที่รับฟังแล้ว ก็อึ้งไป น้องบอกว่าค่าตอบแทนต่ำเกินไป สำหรับมาตรฐานงานของเค้า แถมยังมีกฏ ระเบียบ ให้จุกจิกกวนใจอีก อือ คงจะจริงระบบงานของราชการ ไม่ค่อยเอื้ออำนวยให้การทำงานลักษณะนี้มากนัก ผมเคยได้ยินประกาศรับสมัครงานของโรงพยาบาลของรัฐแห่งหนึ่งใกล้ๆ บ้าน รับสมัครเจ้าหน้าที่ระบบคอมพิวเตอร์ มีหน้าที่ ................. ตั้งแต่ดูแล ฮาร์ดแวร์ เขียนโปรแกรม ดูแล บำรุงรักษาระบบเครือข่าย แล้วที่น่าสนใจก็คือ เงินเดือนเพียง x,xxx บาท (ไม่ถึงหมื่น) ก็นึกอยู่ในใจว่า ใครจะมาสมัครฟระ ทำซะป๊ะ ได้แค่เนี๊ยะ ทำงานบริษัทได้ต่ำๆ ก็เป็นหมื่น แถมยังทำงานเฉพาะด้าน ไม่จับฉ่าย ขั้นตอนการเบิกจ่ายค่า่ล่วงเวลาก็ไม่ยุ่งยาก สวัสดิการก็ไม่น้อยกว่าข้าราชการแล้ว


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


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


ขอจงทรงพระเจริญ ด้วยเกล้าด้วยกระหม่อม ขอเดชะ ข้าพระพุทธเจ้า นายอุทัย เลือดนักรบ พร้อมครอบครัว ขอถวายพระพร

วันพฤหัสบดี, พฤษภาคม 18, 2549

งานช้าง

หายไปนานกับการเขียนบล็อก นานมากด้วยนะ เรื่องราวที่เกิดขึ้นในช่วง 2-3 เดือนที่ผ่านมาเป็นเรื่องราวของคนใกล้ตัว เหอ เหอ คือคนที่อยู่กินด้วยกัน มีลูกด้วยกันนั่นแล
โจทย์ของเขาคนนั้น คือทำงานอะไรสักอย่างที่เกี่ยวข้องกับรังสีการแพทย์ ไม่จำกัดว่าจะเป็นอะไร ขอให้เป็นงานที่เอาไปใช้แล้วเกิดประโยชน์ มองดูแล้วเป็นของใหม่ ซึ่งไม่ได้ลอกเลียนเขามา เช่นทำอุปกรณ์ช่วยในการจัดท่าเอกซเรย์ หรือ ทำวิจัยเรื่องเกียวกับรังสี ทำอะไรก็ได้่ว่างั้น
ก็มานั่งคุยกัน แฟนผมก็อยากทำเกี่ยวกับการสอน เหตุจูงใจก็มาจาก เมื่อก่อนตอนที่ยังอยู่บ้านพัก ก็ต้องอยู่เวรนอกเวลา เวลามีเคสนอกเวลาก็ขึ้นไปทำเอง ปัญหาเกี่ยวกับเทคนิคการฉายรังสีก็ไม่เกิด ทีนี้พอมาอยู่บ้านตัวเอง ก็ไม่ได้อยู่เวรแล้ว เป็นน้องๆ ที่แฟน เค้าเทรนขึ้นมาเพื่อที่จะปฏิบัติงานแทนในเวลาที่ไม่ได้มาทำงาน หรือไปอบรม ไปราชการ ตอนแรกๆ ก็ราบรื่นดีอยู่หรอก ช่วงหลังๆ มา แพทย์เวรมักสั่งให้เอกซเรย์ท่าแปลกๆ ใหม่ๆ น้องที่อยู่เวรก็ไม่ชัวร์ว่าัจะจัดท่าอย่างไร ใช้อุปกรณ์อย่างไร ต้องโทรมาถามให้แน่ใจ กว่าจะลงมือทำได้ก็เนิ่นนาน คิดไปก็บ่นไปว่าทำอย่างไรจะให้น้องๆ เค้ามีคู่มือเกี่ยวกับเทคนิคง่ายๆ ประกอบการใช้งาน นอกจากหนังสือ,แผ่นป้ายที่ได้รับจากบริษัทขายอุปกรณ์ เพื่อที่จะเห็นว่าจัดท่าอย่างไร ใช้ปริมาณรังสีเท่าไร ฟิล์มที่ได้ควรเป็นอย่างไร เครื่องคอมพิวเตอร์ในที่ทำงานก็มีว่างอยู่ น่าจะเอามาทำประโยชน์ตรงนี้ได้
ทบทวนอยู่หลายรอบแล้วมีความเห็นตรงกันว่าจะทำเป็น บทเรียนช่วยสอน (Computer Assisted Instruction) แต่ว่าจะทำอย่างไรล่ะ ใช้เครื่องไม้เครื่องมือตัวไหนมาพัฒนา นึกไปถึง Authorware ซึ่งผมเองเคยไปอบรมมาเมื่อหลายปีก่อน (หลายปีมากๆ แล้ว) คิดว่าพอจะรื้อฟื้นไหวน่า
แต่แฟนผมกลับมีโจทย์เพิ่มเติมมาอีกว่า เมื่อทำเป็น CAI แล้ว ควรที่จะให้ผู้ใช้ เพิ่มเติม แก้ไข ข้อมูลเหล่านั้นด้วยตัวเองได้ด้วย อืม Authorware มันจะทำได้ป่าวฟระ เริ่มคิดอยู่หลายตลบ หนักใจมากขึ้น คิดถึง Web Application ขึ้นมาตะหงิดๆ
Web Application เป็นคำตอบที่ชัดเจนในโจทย์นี้ สามารถโต้ตอบกับยูสเซอร์ได้แน่ๆ แต่การ implement ระบบนั้นหิน ต้องมีเวบเซอร์เวอร์ มีฐานข้อมูล โอวพระเจ้าจอร์ช แค่คิดก็เหนื่อยแ้ล้ว ลำพังแค่การเขียนเวบเพจเพื่อติดต่อฐานข้อมูล ก็ยากอยู่แล้ว (ผมเรียนมาทางวิทยาศาสตร์สุขภาพ) งานการที่ทำอยู่ทุกวันก็ให้บริการผู้ป่วย ไม่ได้ร่ำเรียนมาโดยตรงในด้านวิทยาการคอมพิวเตอร์ นึกๆ แล้วก็ค่อนข้างท้อ
พักเรื่องนี้ไปหลายวัน ขณะนั้นก็ไซโคแฟนไปเรื่อย ให้เปลี่ยนโปรเจ็คซะดีกว่า งานนี้ยากทั้งคนทำ ยากทั้งคนเอาไปใช้ เล่นเอาซึมไปทั้งคนฟัง และคนพูด
แวบนึงที่ผุดขึ้นมาในสมอง คือ AppServ 3 in 1 ทั้ง Apache, MySQL, PHP การติดตั้งก็ไม่ยากมาก Next Next ... แล้วก็ Finish ตามสไตล์ของหน้าต่าง ใช้บนหน้าต่างได้ กลุ่มที่เซียนหน่อย (ใช้ลินุกซ์เป็น) ก็เอาแค่เวบเพจไปวางที่เวบรูท ส่วนการสร้างฐานข้อมูลก็ไม่น่าเป็นปัญหา อืม เริ่มมีความหวังมาบ้าง กลับมาคุยกันอีกครั้งกับแฟน ว่าเอางัยดี ยังพอรับไอเดียนี้ได้ปะ ถ้าตกลงก็จะได้เริ่มลงมือทำงาน ถ้าคิดว่ามันดูไม่เวอร์คก็จะได้ช่วยหาข้อมูลทำโปรเจ็คอื่นๆ ให้ คำตอบก็อ่อยๆ ว่าตอนนี้ยังคิดไม่ตก พอจะทำให้ดูก่อนได้ไหม
ตัดสินใจว่าจะลองทำเป็นเดโมให้ดูก่อน ว่ามันพอจะเป็นโปรเจ็คสำหรับการไปนำเสนอเพื่อจบการเรียนได้ไหม สรุปแล้วก็มีอะไรที่เกี่ยวข้องดังนี้เอง
1. AppServ
2. เวบเพจที่เขียนด้วย html, PHP, Javascript
ใช้เวลาอยู่พอสมควรในการออกแบบฐานข้อมูล, ภาพรวมของระบบทั้งหมด, หาข้อมูล ตลอดจนสคริปต์ของ php ที่น่าจะเอามาประยุกต์ใช้ได้จากอินเทอร์เน็ต ได้หน้าเวบเพจมาสองเพจ 5555 อย่างที่บอกครับ ว่าคนที่ไม่เคยทำอะไรเกี่ยวกับการเขียนโปรแกรมเนี่ย ไอเดียกระฉูดก็จริง แต่พอลงมือทำแล้วมันก็ติด ก็ไปค้นหาคำตอบจากอินเทอร์เน็ตบ้าง ถามคนที่เค้าหากินกับเวบบ้าง กว่าจะสรุปแล้วทำเป็นเวบเพจสองเพจเนี่ย มันยาก แต่ก็น่าชื่นใจที่มาถูกทาง สรุปเป็นคำตอบสุดท้ายได้ว่าใช่
ลงมือทำงานอย่างจริงๆ จัง เปลี่ยนเวลาทำงานจากการนอนดึก เป็นการเข้านอนแต่หัวค่ำ ตื่นมาตอนตีสอง นั่งโค๊ดไปด้วย หาข้อมูลไปด้วย อากาศในช่วงนั้นก็เริ่มร้อน บางทีก็หยุดเนื่องจากติด ต้องค้นหาวิธีการแก้ปัญหา ประกอบกับเจ้าของโปรเจ็คไปฝึกงานที่ในเมืองหลวง ไม่ได้อยู่ช่วยกันเตรียมข้อมูลพื้นฐานบางส่วนให้ เลยทำให้งานไปได้ช้า ช่วงนี้เริ่มเครียด concept ของโปรแกรมมันก็ไม่ได้มีอะไรที่หวือหวา เรื่องที่ไม่คิดว่าจะยาก แต่ทำให้ใช้เวลานานคือ การที่เราต้องเขียนโปรแกรมเกี่ยวกับฐานข้อมูล ต้องมี Insert, Update, Delete ตรงนี้ต่างหากที่เป็น Critical ผนวกกับเราไม่มีประสบการณ์เกี่ยวกับการโค๊ดโปรแกรม Logic ในบางจุดเราหาทางออกไม่ถูกทาง ก็ต้องกลับมาทบทวนใหม่ โชคดีที่ยังมีที่ปรึกษาที่ดีมากๆ จากทีมงาน iMed คือ กวงกะเหน่ง สองโปร คอยให้คำแนะนำว่าึควรจะทำในลักษณะไหน ค้นหาข้อมูลเพิ่มเติม
ประมาณกลางเดือนเมษายน เดือนที่ร้อนที่สุด และเป็นเดือนที่มีวันหยุดต่อเนื่องยาว ก็เปิดตัว alpha ได้ ท่ามกลางความกังขาของทั้งสองคน ผัวเมีย ว่ามันจะไปรอดอะป่าว เหอ เหอ แต่เราก็มาไกลเกินกว่าจะหยุดได้ซะแล้ว อีกอาทิตย์ต่อมา ตัว beta ก็คลอด ตามมาติดๆ ด้วย preview release, release candidate1 ...... 10 กว่าๆ ภายในระยะเวลาไม่กี่วัน พร้อมกับคู่มือการติดตั้ง, การใช้งาน ทั้งหมด เตรียมพร้อมสำหรับทำเป็นรูปเล่มได้
ต้นเดือน พฤษภาคม ทดสอบบนหน้าต่างใช้งานได้ไม่มีปัญหา แต่พอมาลองทดสอบบน ลินุกซ์ อ้าว ติดขัดเต็มไปหมด ต้องกลับมารีวิวใหม่อีกรอบ ต้องถอยกลับมาเป็น beta อีกครั้ง ทีนี้เริ่มทำงานได้เร็วมากขึ้นกว่าเดิม โค๊ดที่ดูว่ามันบ้านนอก ก็ปรับแก้ไปแล้วบางส่วน (เฉพาะส่วนที่เจอ) ในที่สุดก็สามารถทำให้โปรแกรมใช้งานบนลินุกซ์เซอร์เวอร์ได้ แต่ฐานข้อมูลยังมีการอัพเดทไปเรื่อยๆ พร้อมกับคู่มือที่เขียนใหม่อย่างเร่งด่วนซะเหลือเกิน
วันที่ 10 พฤษภาคม 2549 เป็นวันที่ปิดงานในเฟสแรก (Stable) คิดว่าจะทำให้มันนิ่ง นิ่งเฉพาะในส่วนของโค๊ด แต่ในส่วนของฐานข้อมูลยังคงมีการอัพเดทอยู่เรื่อย สืบเนื่องมาจากตอนนี้ แฟนกลับมา แล้วเอางานไปนำเสนออาจารย์ที่ปรึกษาแล้ว ก็มีงานที่ต้องปรับปรุงอีกในส่วนของรูปการจัดท่าและ คำอธิบาย
ตอนนี้ผมอัพโหลดไฟล์ไว้ที่ Hospital-os dot com แล้ว นำเสนอกับชุมชน เพื่อหา Feedback นำไปปรับปรุงโปรแกรมให้เหมาะสมในการใช้งาน ง่ายในการดูแล ไม่รบกวนเวบเซอร์เวอร์
ไฟล์ที่นำเสนอมีอยู่ด้วยกันสองส่วนคือ
1. Win32 Plateform มีไฟล์ที่จำเป็นอยู่สองสามไฟล์คือ
1.1 appserv-win32-2.4.4a.exe
1.2 appserv-AddOns-ZendOptimizer-2.5.10.exe
1.3 AppServProjectXAddOns_stable_1.0_11052006.exe (ผมทำเป็น Appserv Addons ไว้เพื่อให้ยูสเซอร์ติดตั้งง่ายที่สุด)
ซึ่งไฟล์ตามข้อ 1.1, 1.2 ดาวน์โหลดได้ที่ไซต์ของ appservnetwork โดยตรงเลยนะครับ
1.4 ส่วน projectx-addons ก็ดาวน์โหลดได้ที่ home ของผมผ่าน http://www.hospital-os.com/~uthai/Download/phpCaiXray/win32/AppServProjectXAddOns_stable_1.0_11052006.exe
1.5 md5 ของไฟล์ข้างต้นคือ 7d236df57c2ef7daa9d84eadf2e281d2
1.6 สำหรับคู่มือก็ดาวน์โหลดได้ที่ http://www.hospital-os.com/~uthai/Download/phpCaiXray/win32/handbook.zip อ่านให้ละเอียดนิดนึงนะครับ
2. Linux Platform
2.1 ไฟล์ www.hospital-os.com/~uthai/Download/phpCaiXray/linux/phpCaiXray.zip
2.2 MD5 ก็ดาวน์โหลดไฟล์นี้ไป www.hospital-os.com/~uthai/Download/phpCaiXray/linux/phpCaiXray.md5
2.3 การติดตั้งก็อ่านได้จากไฟล์ www.hospital-os.com/~uthai/Download/phpCaiXray/linux/howto.txt
ยาวมากไปแล้ว ไว้ต่อคราวหน้าแล้วกัน

วันศุกร์, มกราคม 27, 2549

Hi Speed Internet กับความฝัน

หลังจากที่หงุดหงิดมานานเกี่ยวกับ การเชื่อมต่ออินเทอร์เน็ตที่บ้านจากที่เคยใช้โมเด็ม 56K ผ่านเน็ตเวอร์คของสำนักงานสาธารณสุขจังหวัดลำพูน ซึ่งก็คอนเน็คได้บ้างไม่ได้บ้าง ดูเว็บได้บ้าง ช้าบ้าง ไม่อยากพูดเรื่อง apt-get เลยอายชาวบ้านเค้า พอๆกับแก้กางเกงแล้วโชว์ตูดให้ดูนั่นแหละ อยู่มาวันหนึ่งก็เลยคุยกันในครอบครัว ความจริงก็คือ ผมกับเมีย (คือผู้หญิงที่เป็นแม่ของลูกผม ซึ่งอยู่กินด้วยกันทุกวันนี้) ว่าเราน่าจะหาอินเทอร์เน็ตความเร็วสูงมาใช้กันบ้างนะ บ้านเราก็อยู่ในพื้นที่ให้บริการอยู่ เหอะๆ ง่ายกว่าที่คิดแฮะ แต่ก็ต้องแลกเปลี่ยนกับการใช้โทรศัพท์แบบ Post paid มาเป็นแบบเติมเงิน เพื่อหมุนเวียนการใช้เงินค่าโทรศัพท์ให้เกิดประโยชน์มากที่สุด เออ ค่อยยังชั่วหน่อยนึกว่าเงื่อนไขจะซับซ้อน ได้ๆ เรื่องนี้จัดให้ พอติดต่อกับ TT&T จนกระทั่งใช้ได้จนถึงทุกวันนี้รู้สึกว่ามีความสุขในการใช้อินเทอร์เน็ตมากขึ้นไม่ว่าจะเป็นการ search ข้อมูลให้เมีย apt-get ให้ตัวเอง ดาวน์โหลด iso ซีดีของลินุกซ์ดิสโทรที่สนใจ โอยพึ่งรู้ว่ามันแฮปปี้จริงๆ แต่รู้สึกว่ายังไม่คุ้มเท่าไหร่เนื่องจากว่าตอนกลางวันก็ไปทำงานกว่าจะกลับมาใช้อินเทอร์เน็ตอีกทีก็ปาเข้าไปสาม สี่ทุ่มไปแล้ว เคยคุยกับเพื่อนๆ เค้าบอกว่าอย่าให้เสียเวลาเด่ โหลตบิตมาเบอร์นลงแผ่นขายดิ๊ ในเน็ตประเภทปลุกใจเสือป่ามีเยอะ บ้านมึงก็บ้านนอก คงไม่มีคนใช้ Hi Speed Internet กันทุกหลังคาเรือนหรอกวะ เบอร์นลงแผ่นขายเอาเงินมาจ่ายค่าเน็ตเดือนละ สอง สามร้อยก็ดี ดีกว่ามึงจ่ายเองนา เออไอ้นี่ไอเดียจ๊าบว่ะ แต่กรูน่ะ เสี่ยงคุกเสี่ยงตาราง แถมไม่พอยังถูกตราหน้าว่าเป็นคนลามกจกเปตรอีก ความคิดนี้คงไม่เอาด้วยแน่ๆ แต่ที่คิดๆ ไว้ตอนนี้ที่อยากทำคือ
1. อยากจะลองลงเดเบียนแบบใช้ debootstrap ดูกะเค้าสักทีจะได้มีความรู้เกี่ยวกับเดเบียนขึ้นอีกหลังจากที่เคยลองครั้งหนึ่งแล้วพักไปเนื่องจากเน็ตเร็วไม่พอ
2.อยากจะลองลง gentoo ดูอีกครั้ง เพราะรู้สึกว่าการลง gentoo ทำให้ได้ความรู้เกี่ยวกับลินุกซ์เยอะมาก ครั้งก่อนก็เคยลองแต่ไม่สำเร็จเหตุผลเดียวกับข้อแรก
3.ค้นหาข้อมูลและซอพท์แวร์เกี่ยวกับ Business Intelligence สืบเนื่องมาจากไป TMI มาแล้วไปชมการสาธิต iAnalysis (เป็นโปรเจ็กต์ของบริษัทโอเพ่นซอร์สเทคโนโลยี คือบริษัทที่พัฒนา Hospital OS นั่นแหละ เพียงแต่ว่าตัว iAnalysis เนี่ยไม่ใช่ Opensource) ไปค้นหาอยู่นานก็มาจบที่ Mondrian ซึ่งเป็น OLAP Server อยู่ก็เลยจะพยายามแกะเอามาใช้ร่วมกับ PostgreSQL อาจจะเป็นประโยชน์กับหน่วยงานที่เราทำงานอยู่ ฐานข้อมูลของโรงพยาบาลก็มีแล้ว หากทำได้ตรงนี้ ก็อาจจะทำเป็นโซลูชั่นเอาไปเสนอขายให้กับ โรงพยาบาลอื่นๆ อาจจะได้ขาย แล้วก็จะได้เงิน เอามาจ่ายค่าเน็ต ความรู้ก็ได้ เงินก็ได้ ไม่ต้องเสี่ยงคุก เสี่ยงตารางด้วย เอาตามนี้แล้วกัน แต่ทำไมมันยากอย่างนี้ แกะมาเป็นเดือนยังไม่ก้าวหน้าเลย เฮ้อ รู้สึกว่าเงินทองมันหายากจริงๆ ท่านใดที่เคยใช้ และมีประสบการณ์เกี่ยวกับ Mondrian ก็ขอความรู้บ้างนะครับ สนับสนุนการศึกษาผู้ใหญ่

วันพฤหัสบดี, ธันวาคม 22, 2548

ต้นตอของปัญหา

ในที่สุดก็ค้นหาคำตอบจนได้ว่าทำไม PostgreSQL 8.0.3 ที่คอมไพล์เองบนเครื่องที่เอาไว้ทำเป็นมิเรอร์ถึงไม่สนับสนุนเรื่อง multibyte ก็เป็นเรื่องที่คาใจมาตลอดระยะเวลาหลายสัปดาห์ ว่าทำไม ....


ขอย้อนกลับไปนิดนึงว่าปัญหาที่เกิดขึ้นเป็นอย่างไร


postgres@phoenix:/etc/postgresql/8.1/main$ psql reportdb_v3
Welcome to psql 8.1.0, the PostgreSQL interactive terminal.

Type: \copyright for distribution terms
\h for help with SQL commands
\? for help with psql commands
\g or terminate with semicolon to execute query
\q to quit

reportdb_v3=# select item_common_name From b_item where LOWER(item_common_nam e) LIKE '%cpm%';
item_common_name
---------------------------------
CPM .-inj ( 10 mg./ml. ) *
CPM .-tab ( 4 mg. )*
CPM .-Syr (2mg./5ml.) - 60ml.
CPM hand
CPM Elbow
CPM
(6 rows)

reportdb_v3=# select item_common_name From b_item where UPPER(item_common_nam e) LIKE '%cpm%';
ERROR: invalid multibyte character for locale
reportdb_v3=#

และเมื่อลองดูตัวแปรที่เกี่ยวข้องก็ได้ตามนี้

postgres@phoenix:/etc/postgresql/8.1/main$ cat /etc/environment
LANGUAGE="en_TH:en_US:en_GB:en"

LANG=en_US.UTF-8



ไปค้นดูใน กูเกิล ด้วย keyword error+multibyte+locale site:postgresql.org ก็พบว่ามีคนเคยเจอเหมือนเรา ที่นี่ วิธีการแก้ปัญหาของเค้าคือ

  1. ก่อนทำการคอมไพล์ Postgres ให้ export LANG=en_US.UTF-8 ซะก่อน แล้วค่อยทำการ ./configure ; make ;make install ไปตามลำดับ

  2. ต่อเมื่อจะ initialize database ให้เพิ่ม option --locale=C ไปด้วย
    For Example
    postgres@mirror:$/usr/local/pgsql/bin/initdb -E UNICODE --locale=C -D /usr/local/pgsql/data


เมื่อเราทำการทดสอบดูก็ได้ผลตามนี้

เทสต์แล้วครับ บนเครื่องที่ใช้ทำงานจริง work work work ดูการ select ซะก่อน
postgres@mirror:~/tmp$ /usr/local/pgsql/bin/psql v3_repl_db
Welcome to psql 8.0.3, the PostgreSQL interactive terminal.

Type: \copyright for distribution terms
\h for help with SQL commands
\? for help with psql commands
\g or terminate with semicolon to execute query
\q to quit

v3_repl_db=# select item_common_name from b_item where UPPER(item_common_name) like '%cpm%';
item_common_name
------------------
(0 rows)

v3_repl_db=# select item_common_name from b_item where LOWER(item_common_name) like '%cpm%';
item_common_name
---------------------------------
CPM .-inj ( 10 mg./ml. ) *
CPM .-tab ( 4 mg. )*
CPM .-Syr (2mg./5ml.) - 60ml.
CPM hand
CPM Elbow
CPM
(6 rows)

v3_repl_db=#

จริงๆ ผมก็พึ่งนึกได้ว่าตอนที่ลง postgres จากแพกเกจของเดเบียนน่ะ ก่อนที่เค้าจะ initdb น่ะเค้าก็ถามเหมือนกันว่าจะใช้ locale เป็น C หรือว่า en_US ไอ้เราความที่เคยตัวซะชินก็ Enter ผ่าน (Enter ผ่านแล้วมันไม่มี error เรื่องนี้) เอ้อก็ต้องขอโทษขอโพยด้วยที่ไปนึกเหมาเอาว่าเกิดจากเดเบียน แฮ่ แฮ่ กว่าจะค้นหาปัญหาได้ก็ผ่านไปเดือนกว่าๆ ถ้าเกิดอะไรขึ้นกะเซอร์เวอร์ที่ให้บริการจริง ป่านนี้คงเอาหน้าไปไว้ที่ไหนไม่ได้แล้วล่ะ คิดๆอยู่เหมือนกันว่าจะเอาปัญหาไปถามที่ LTN ไหนก็เล่าแล้ว เล่าให้ฟังเลยดีกว่าว่า ตอนที่ไปงาน TMI 2005 ปีนี้คณะแพทยศาสตร์ มหาวิทยาลัยเชียงใหม่รับเป็นแม่งาน ก็ได้เจอกับ คุณ ott (ภัทระ เกียรติเสวี) ด้วย ขออนุญาตพาดพิงถึงหน่อย ในฐานะที่ติดตามงานของแกมานานตั้งแต่ทำ Linux-SIS แล้ว วันนั้นก็เข้าไปนั่งฟังคุณ ott คุยเรื่องเกี่ยวกับ Linux และการนำไปใช้งาน หลังจากจบ session แล้วผมก็ได้มีโอกาสได้พูดคุยแล้วก็เล่าให้ฟังถึงปัญหาที่ผมเจอเข้าจริง คุณ ott ก็อุตสาห์ถามย้ำแล้วนะ ว่าเซต locale แล้วหรือยัง ไอ้เราก็ยังไม่ค่อยเข้าใจ (บ้านน๊อก บ้านนอก) กลับมาก็พยายามมาค้นดู ก็เลยเจอคำตอบจังเบ้อเร่อ ก็คุยกันนานพอสมควร ทราบว่าตอนนี้กลับมาอยู่เมืองไทยแล้ว ทำธุรกิจเปิดบริษัท metamedia ร่วมกับ คุณพูลลาภ ก็ขออำนวยอวยพรให้กิจการก้าวหน้าด้วยดีนะครับ วันหน้าผมอาจจะมีโอกาสไปเป็นลูกค้า้บ้างก็ได้ถ้าปีหน้า defend งบได้มากๆ สรุปแล้วก็ Happy ที่ได้ผ่านเหตุการณ์อันไม่คาดฝันแล้วพยายามแก้ปํญหาไปได้ถึงแม้ว่า จะช้าไปมาก ปัญหามา ปัญญาก็มี ความรู้ก็ได้มากขึ้น กำไรเห็นๆ


พูดถึง TMI 2005 นิดนึงว่าปีนี้ค่อนข้างเงียบเหงาไปหน่อย อาจจะเป็นเพราะว่า ขาใหญ่ คือ Intel ไม่ได้เป็น titanium sponsor กลายเป็น Sun Microsystem ไปซะ บูตก็เลยน้อย พริตตี้ก็เลยพลอยน้อยไปด้วย (สาเหตุใหญ่ที่ชอบไปงานคอม เหอ เหอ)

วันเสาร์, ธันวาคม 03, 2548

เยือนถิ่นชาละวัน

ผ่านเรื่องที่ซีเรียสมาแล้วก็มาเล่าเรื่องที่เบาๆ กันหน่อย เดือนก่อน (พ.ย.) ผมมีโอกาสเดินทางไปต่างจังหวัด (พิจิตร) ซึ่งมีคำขวัญประจำจังหวัดว่า "ถิ่นประสูติพระเจ้าเสือ แข่งเรือยาวประเพณี พระเครื่องดีหลวงพ่อเงิน เพลิดเพลินบึงสีไฟ ศูนย์รวมใจหลวงพ่อเพชร รสเด็ดส้มท่าข่อย ข้าวเจ้าอร่อยลือเลื่อง ตำนานเมืองชาละวัน" ครั้งแรกเมื่อวันที่ 19 ก็ไปเยี่ยมญาติน่ะครับ เป็นน้องของแม่ยาย แกไม่สบายป่วยเป็นมะเร็งที่ทรวงอก ออกเดินทางกันเช้ามืดวันที่ 19 ประมาณตีห้าครึ่งมีผม แม่ของเด็ก แล้วก็เด็กๆ ไปแวะรับ แม่ยายกับพี่ของแม่ยายอีกรวมเป็น 6 คนผู้ใหญ่ 4 เด็ก 2 ครั้งแรกที่ก็ไปเริ่มต้นที่อำเภอเถิน แล้วก็เดินทางจากอำเภอเถินเข้าสู่อำเภอทุ่งเสลี่ยมจังหวัดสุโขทัย ตามทางหลวงหมายเลข 1048 เมื่อยังอยู่ในเขตอำเภอเถิน เป็นเส้นทางที่ค่อนข้างชำรุด แคบ เปลี่ยว และคดเคี้ยว ไม่เหมาะในการเดินทางในกลางคืน ต่อเมื่อเข้าสู่เขตอำเภอทุ่งเสลี่ยมแล้วค่อยดีขึ้น ก็มองเห็นสภาพชีวิตของชาวบ้านในฤดูเก็บเกี่ยว เริ่มเห็นรถอีแต๋นแล่นขนข้าว กันค่อนข้างหนาตา ถึงอำเภอสวรรคโลก ก็ใช้เส้นทางหมายเลข 101 ถึงอำเภอศรีสำโรงแวะกินข้าวเช้ากัน ช่วงตั้งแต่สวรรคโลกมาถึงศรีสำโรงก็เริ่มเห็นว่าการชลประทานที่นี่ดีมาก ปลูกข้าวนาปรังกันเขียวขจีเต็มทุ่งนาไปหมด จากศรีสำโรงไปสุโขทัยก็ใช้เวลาไม่นานมากนัก ผมเลือกใช้เส้นทางเลี่ยงเมือง เนื่องจากไม่อยากเข้าไปหลงทางในตัวเมืองสุโขทัย มุ่งสู่อำเภอกงไกรลาศด้วยทางหลวงหมายเลข 12 ยาวถึง จังหวัดพิษณุโลก ซึ่งบางช่วงก่อนที่เข้าตัวเมืองพิษณุโลกมีการปรับปรุง เพื่อขยายทำให้การเดินทางช้าลงไปพอสมควร ทีนี้ก็มุ่งหน้าไปจังหวัดพิจิตร ด้วยเส้นทางสายเลี่ยงเมืองอีกเช่นเคย โดยจุดหมายอยู่ที่ อำเภอวชิรบารมี จังหวัดพิจิตร ตามทางหลวงหมายเลข 117 ผ่านมหาวิทยาลัยนเรศวร ผ่านนิคมอุตสาหกรรมภาคเหนือตอนล่าง แล้วก็เลี้ยวซ้ายเปลี่ยนไปใช้ทางหลวงหมายเลข 115 เข้าสู่อำเภอสามง่าม อำเภอเมืองจังหวัดพิจิตร จากวชิรบารมีถึงพิจิตร เนี่ยเห็นว่าปลูกข้าวนาปรังกันเป็นล่ำเป็นสัน บางแห่งก็เริ่มเก็บเกี่ยวด้วยรถเกี่ยวข้าว บางแห่งก็เริ่มหว่านเมล็ดกล้า บางแห่งต้นกล้าก็เริ่มโต มองดูเขียว ก็ถึงบ้านคลองคู้ อ.เมือง สิ้นสุดการเดินทางเมื่อเวลา 11 นาฬิการวมใช้เวลา 5 ชั่วโมงกว่าๆ ก็ค้างคืนซะคืนหนึ่ง รุ่งเช้าก็พาเด็กๆ ไปเที่ยวดูปลาที่บึงสีไฟ ก่อนเดินทางกลับ ซึ่งกว่าเด็กๆ จะยอมกลับเนื่องจากเพลินกับการให้อาหารปลาที่บึงก็ปาเข้าไปเที่ยงวันพอดี ขากลับผมไม่ได้กลับทางเดิมเนื่องจากรู้สึกว่ามันขับลำบาก อีกอย่างนึงก็คืออยากจะลองเดินทางอีกเส้นทางหนึ่ง คือจาก พิจิตร ตามทางหลวงหมายเลข 115 ผ่านสามง่าม วชิรบารมี เข้าสู่ จังหวัดกำแพงเพชร ช่วงนี้เป็นทางตรงยาวสุดลูกหูลูกตา รถราก็พอประมาณ ไม่ชุมมากนักอาจจะเป็นเพราะช่วงเที่ยง ก็เป็นได้ ทิวทัศน์ข้างๆ ทางก็เป็นนาปรัง สลับกับไร่อ้อย ให้เห็นเป็นระยะ บังเอิญฟังวิทยุอยู่ ดีเจเหมือนจะรู้ใจ เปิดเพลง ไร่อ้อยคอยรักของ หนู มิเตอร์ ก็ทำให้นึกภาพได้ชัดเจนมากขึ้น จากถนนหมายเลข 115 ก็มาบรรจบกับถนนพหลโยธิน (หมายเลข 1) ก็ใช้เส้นทางนี้ต่อจนถึงอำเภอเถิน แล้วก็แยกเข้าอำเภอลี้ด้วยเส้นทางหมายเลข 106 (พหลโยธินเดิม) จนถึงบ้านเวลา 5 โมงเย็น รวมระยะทางทั้งขาไปและขากลับก็ 687 ก.ม. หลังจากนั้นไม่กี่วันประมาณวันศุกร์ที่ 26 ก็ทราบข่าวว่าน้าแกเสียแล้ว การเดินทางครั้งที่สองก็เริ่มขึ้นเมื่อวันอังคารที่ 29 เพื่อไปร่วมฌาปนกิจศพ Trick นี้ผมเลือกใช้เส้นทางสาย เถิน ตาก กำแพงเพชร พิจิตร แทนทั้งขาไปและกลับ รู้สึกว่าขับได้สะดวกกว่าและเส้นทางไม่ซับซ้อนมากนัก พื้นผิวการจราจรก็ดีทีเดียว แต่ไปคราวนี้ไม่ได้ไปค้าง ไปเช้าเย็นกลับ ซึ่งเริ่มที่ 8 โมงเช้าหลังจากที่ไปส่งเด็กๆ ที่โรงเรียนก่อน ตอนเย็นก็ฝากเด็กๆ ไว้กับ ปู่-ย่า ไปก่อน เพราะคิดว่าคงจะกลับถึงบ้านดึก ซึ่งก็กว่าจะทำพิธีก็ปาเข้าไปสามโมงเย็น แต่พิธีการค่อนข้างรวบรัดไม่เยิ่นเย้อเหมือนพิธีทางเหนือ ซึ่งเริ่มประมาณ บ่ายโมง แต่กว่าจะเสร็จก็ปาเข้าไปสามสี่โมงเย็น ทางภาคกลางไม่นิยมจูงศพ ไปที่ป่าช้าเหมือนภาคเหนือ เนื่องจากที่วัดมักจะมีเมรุอยู่ในวัดเลยทำให้ลดเวลาลงไปได้เยอะ แต่ถึงกระนั้นกว่าจะได้เวลาเดินทางกลับก็ไปเข้าไป 17.30 น. ขากลับก็ไม่สามารถใช้ความเร็วมากนักเนื่องจากไม่ได้เอารถเก๋งที่ใช้ทุกวันไป เนื่องจากคิดว่าน่าจะเอารถกระบะไปจะดีกว่า ญาติพี่น้องจะได้ไปด้วยกันหลายๆ คน (แฟนผมเนี่ยญาติเยอะ) ผมก็รับหน้าที่โชเฟอร์ไปคนเดียว กว่าจะถึงบ้านก็ปาเข้าไปตั้ง 5 ทุ่มกว่าๆ เกือบเที่ยงคืน เนื่องจากเหยียบไม่ไหว บรรทุกหนัก ขากลับนี่ได้ส้มท่าข่อยมาหลายสิบลูก แค้นที่ไปครั้งก่อนหาซื้อไม่ได้ 5555 รสชาดก็สมกับคำขวัญของจังหวัดเค้าล่ะครับ หวาน ชุ่มคอดี ถ้ามีโอกาสไปอีกจะไปเหมาสวนเลยล่ะ ตั้งใจไว้อย่างนั้น หรือว่าจะเอาลำไยไปแลกเอา อิ อิ ระยะทางไป-กลับก็ 666 กิโลเมตร พอดิบพอดี

Hospital OS V III era has Begun.

เกือบเดือนที่ไม่ได้มาบล็อก เนื่องจากสาละวนอยู่กับการเตรียมการแก้ไขปัญหาที่พบจากบล็อกเมื่อเดือนก่อน ว่าจะยังยื้ออยู่กับ PostgreSQL 7.4.7 อยู่ หรือว่าจะใช้เวอร์ชั่นใหม่กว่าคือ 8.0.x ตามที่ทางทีมงานแนะนำซึ่งชาวบ้านชาวช่องที่ขึ้นระบบไปแล้วเค้าก็ใช้กัน ไอ้เราจะมาดันทุรังใช้ต่อหรือ คิดอยู่ คิดทบทวนตั้งนาน ก็ต้องยอมอัพ PostgreSQL ไปใช้ 8.0.x ให้เหมือนๆ กัน เวลาคุยกันกับทีมงานจะได้คุยกับเค้าได้ เป็นคำตอบสุดท้าย...


ตัดสินใจว่าจะใช้ PostgreSQL แบบคอมไพล์จากซอร์สดีกว่า เนื่องจากยังไม่อยากจะอัพดิสโทรไปเป็น Etch ประกอบกับทดสอบแล้วบนเครื่องที่ใช้ทำงาน ว่า Sarge+PostgreSQL 8.0.3 (Compile เอง) มันก็เวอร์คดีไม่มีปัญหา สิ่งที่ไม่ได้คิดว่าจะเป็นปัญหาแม้แต่น้อยก็คือว่า เมื่อจัดการ apt-get remove --purge postgresql บนเครื่องที่ใช้งานจริง + เครื่องที่ใช้ทำดาต้าเบสมิเรอร์ ตามขั้นตอนต่อไปนี้

db :~/tmp/postgresql-8.0.3/#./configure --prefix=/usr/local/pgsql
db :~/tmp/postgresql-8.0.3/#make
db :~/tmp/postgresql-8.0.3/#make install
db :~/tmp/postgresql-8.0.3/#mkdir /usr/local/pgsql/data
db :~/tmp/postgresql-8.0.3/#chown -R postgres.postgres /usr/local/pgsql/data
db :~/tmp/postgresql-8.0.3/#chmod -R 700 /usr/local/pgsql/data
db :~/tmp/postgresql-8.0.3/#su postgres
db :~/tmp/postgresql-8.0.3/$/usr/local/pgsql/bin/initdb -E UNICODE -D /usr/local/pgsql/data
db :~/tmp/postgresql-8.0.3/$exit
db :~/tmp/postgresql-8.0.3/#nano -w contrib/start-scripts/linux
db :~/tmp/postgresql-8.0.3/#cp contrib/start-scripts/linux /etc/init.d/postgresql-8.0
db :~/tmp/postgresql-8.0.3/#chmod 700 /etc/init.d/postgresql-8.0
db :~/tmp/postgresql-8.0.3/#/etc/init.d/postgresql-8.0 start

ต่อไปก็เป็นการสร้างดาต้าเบส ดัมพ์ฐานข้อมูลเดิมกลับเข้าไป อัพเดทด้วย SQL สำหรับใช้กับเวอร์ชั่นสาม ทั้งสองเครื่องใช้เวลาไม่นานมากเท่าไรประมาณชั่วโมงกว่าๆ พร้อมกับทำดาต้าเบสมิเรอร์ด้วยแหละ อะไรจะขนาดนั้น จากที่เริ่มต้นปิดระบบตอนประมาณ 3 ทุ่มๆกว่าเสร็จก็ 4 ทุ่มกว่าๆ ของคืนวันที่ 30 พ.ย 2548 ก็เดินลงมาบอกน้องพยาบาลเวรให้เริ่ม login เข้าทำงานได้ อิ อิ พอเริ่มเปิด visit ผู้ป่วยบันทึกอาการเจ็บป่วยเสร็จ พอจะสั่งยาเท่านั้นแหละ ค้นหารายการออเดอร์ไม่เจอ ตอนนั้นยังไม่ซีเรียสอะไรมาก ลองโทรไปถามเบะซะหน่อย คำตอบที่ได้รับปรากฏว่า postgres ไม่สนับสนุนการใช้งานแบบ multibyte ทำให้ค้นหารายการออเดอร์ไม่เจอ เป็นเหตุการณ์เดียวกันกับที่ ชุมแสง และเป็น Critical มากเลยสำหรับซอพท์แวร์ที่เกี่ยวกับการให้บริการสุขภาพ ถ้าสั่งยาไม่ได้ก็แทบจะไม่มีความหมายอะไร ไม่ได้เป็นแค่เซอร์เวอร์ที่ใช้บริการจริงๆ นะ ตัวที่ทำเป็นมิเรอร์ก็เป็นไปกับเค้าด้วย โอ จอร์ช มันยอดมากเลย มีทางแก้มั๊ย อากาศตอนสี่ทุ่มกว่าๆ ที่ทุ่งหัวช้างก็เย็นมากแล้ว แต่ทำไมผมรู้สึกร้อนๆ เหงื่อเต็มฝ่ามือไปหมด ที่ชุมแสงแก้ปัญหาโดยเปลี่ยนจากเดเบียนไปเป็น Redhat Enterprice ที่เบะติดเอาไปด้วยแล้วคอมไพล์ postgres ใหม่ก็สามารถทำงานได้ปกติ เอ้อแล้วกรู จะไปเอา Redhat Enterprice มาจากไหนฟะ ดึกดื่นขนาดนี้แล้ว อย่าว่าแต่ดึกๆ เลย กลางวันแสกๆ ยังไม่มีปัญญาไปหา Distro อื่นหรอก ก็คบเดเบียนมานานโขแล้วจนไม่คิดที่จะใช้อย่างอื่น ก็มีแต่เดเบียน เอ๊ะแต่ทำไมทองแสนขันถึงใช้เดเบียน+postgresql คอมไพล์ได้ว่ะ เริ่มมีกำลังใจมานิดๆ แต่ตอนนี้มันห้าทุ่มกว่าๆ แล้วจะโทรไปถามก็ดึกมาก ไม่เป็นไรลองคอมไพล์ใหม่เพิ่ม option --enable-multibyte ไปด้วยซะ ก็ตอนแรกๆ ที่ใช้ Postgres ก็ใช้แบบคอมไพล์นี่แหละ แต่ตอนนั้น option เยอะกว่านี้มากจำไม่ได้แล้ว จำได้แค่ว่าใช้ Linux SIS + PostgreSQL 7.1.3 ก็ใช้มาตลอดตั้งแต่เดือน ตุลาคม 2545 (เริ่มใช้ Hospital OS เวอร์ชั่นแรกๆ) จนถึง มกราคม 2548 ก็เปลี่ยนมาใช้เดเบียนซึ่งยังไม่ stable+PostgreSQL ที่มากับ Distro พร้อมๆกับ upgrade มาเรื่อยจน Sarge กลายเป็น Stable และ PostgreSQL หยุดอยู่ที่ 7.4.7 กลับมาที่การคอมไพล์ครั้งที่สองบวก option --enable-multibyte ไปด้วยผลออกมาก็คือยังไม่สามารถใช้งานได้ มาถึงตอนนี้เริ่มเครียดเนื่องจากว่าเข้าสู่วันใหม่แล้ว โชคดีที่เวรดึกไม่มีผู้มารับบริการเลยทำให้ตัดความกังวลไปได้บ้าง คิดว่าจะต้องลงเดเบียนใหม่อีกที ทีนี้ขออัพเกรดไปเป็น Etch เพื่อเลือกใช้ PostgreSQL 8.0.3 ที่มากับ Distro อาจจะตัดปัญหาเรื่อง multibyte ไปได้ (คิดอะไรไม่ออกแล้วตอนนี้ต้องเสี่ยง) เสร็จประมาณตีสามกว่ารวมเวลาที่คอยการ fetch package จากอินเทอร์เน็ตด้วย เน็ตก็ไม่ค่อยเป็นใจเท่าไร โอยกว่าจะก้าวหน้าที่ละ k ใจจะขาดซะให้ได้ ผลที่ออกมาน่ะเรอะ เหอะ เหอะ เหมือนเดิม ตอนนี้เครียดกว่าเดิมอีก เหลือเวลาอีกไม่กี่ชั่วโมงก็จะสว่างแล้ว แล้วยังมีคลินิคเบาหวานด้วย โอ จอร์ช พระเจ้าจะช่วยกรู ได้ไหมฟะเนี่ย ทำงัยดีล่ะ เอางี้แล้วกันถอยกลับไปใช้เวอร์ชั่นสองอีกครั้ง เอาเครื่องที่เป็นมิเรอร์นั่นแหละ ให้บริการไปก่อน ลืมบอกไปว่าหลังจากที่พบว่ามีเออร์เรอร์เรื่อง multibyte ผมก็เอา PostgreSQL 8.0.3 ที่คอมไพล์บนเครื่องมิเรอร์ออก แล้วก็กลับไปใช้ 7.4.7 เหมือนเดิมปรากฏว่าไม่มีเออร์เรอร์เรื่อง multibyte แฮะ อย่างน้อยก็ยังอุ่นใจได้อย่างน้อยก็สักวันหนึ่ง แต่จะหวังให้ใช้งานหนักๆ เร๊อะ คงยากเนื่องจากสเปคของ Hardware เป็นสเปคของ Desktop PC ธรรมดาลำพังการเอามาทำเป็นมิเรอร์เนี่ยก็ค่อนข้างโหลดมากแล้ว มองดูนาฬิกาอีกทีตีสามกว่าเกือบตีสี่แล้ว เอาเป็นลงเดเบียนอีกทีน่ะ คราวนี้เอา Sarge เหมือนเดิมก็แล้วกันแล้วคอมไพล์ PostgreSQL เอา ลองดูอีกทีน่ะยังพอมีเวลา ทีนี้ตอนลงเพิ่ม Repository ของ update เข้าไปด้วยตีห้ากว่าๆ ก็เสร็จ ตอนที่ login เข้าไปเทสต์น่ะ ผมงี้ลุ้นใจจะขาด ในที่สุดสวรรค์ยังเมตตา ไม่ให้ผมต้องรับกรรมไปมากกว่านี้อีก กว่าจะเริ่ม fine tunning , set up crontab อีกสว่างคาตาเลยครับ คำพูดที่ว่าฟ้าเหลืองน่ะ มีจริงผมยืนยันได้ เจอกับตัวเองเข้าถึงรู้ เหอ เหอ


ปัญหาที่เกิดขึ้นผมพอจะเดาเอาเอง ซึ่งอาจจะไม่ใช่สาเหตุจริงๆ ก็ได้

  1. Sarge ที่ติดตั้งบนเครื่อง Database Server ไม่ได้ update เลยอาจทำให้บางแพคเกจมีปัญหาในการใช้งาน PostgreSQL+mutibyte

  2. เครื่องที่ทำเป็น Database Mirror ผมมักจะใช้เป็นเครื่องที่ทดลองการใช้งาน Debian อยู่เสมอและเปิดการอัพเดทด้วยทำให้ไม่มีปัญหากับ multibyte เมื่อใช้กับ Postgres 7.4.7 แม้ว่าจะคอมไพล์ 8.0.3 ไม่ผ่านแต่ก็สามารถ Down ลงมาใช้ของเดิมได้

  3. Etch ไม่มีระบบการ update security เนื่องจากยังอยู่ในการ Testing บางทีอาจจะยังไม่พบปัญหานี้ก็ได้ เป็นปัญหาของเดเบียนหรือว่า Postgres กันแน่ ?


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

ทีนี้ก็เหลือภาระงานอีกอย่างที่ต้องรีบเร่งทำ คือการทำมิเรอร์ ให้กับ Database จากประสบการณ์ที่ผ่านมาทำให้ไม่วางใจในเซอร์เวอร์เพี่ยงเครื่องเดียว คงต้องเหนื่อยอีกรอบ สู้โว๊ย

วันศุกร์, พฤศจิกายน 04, 2548

อึดอัด

หลังจากที่ โครงการวิจัยและพัฒนาซอพท์แวร์สำหรับโรงพยาบาลขนาดเล็ก
ได้ปล่อยตัวเวอร์ชั่นสามออกมาเรียบร้อยโรงเรียนภูเก็ตไปแล้วเมื่อเช้ามืดวันที่ 31 ตุลาคม ที่ผ่านมาและประกาศสัญญาอนุญาตให้ใช้ซอฟต์แวร์เป็นแบบ GPL ปรากฏว่าได้รับการตอบรับอย่างล้นหลาม รับดาวน์โหลดอย่างหูดับ ตับไหม้ เหอ เหอ ที่ใช้ ADSL ก็สบายกันไปแต่สำหรับผมต้องรออีกวันถึงจะดาวน์โหลดได้กะเค้า เห็นทีว่าอาจจะต้องเซพค่าโทรมือถือเอามาแชร์เป็นค่า ADSL บ้างคงจะดีไม่น้อย

แต่สิ่งที่ทำให้ผมรู้สึกอึดอัด คือ เจ้า SQL ที่ทำขึ้นมาเพื่ออัพเดทฐานข้อมูลจากเวอร์ชั่นสอง ไปเวอร์ชั่นสามนี่สิที่ทำให้หลายวันมานี้ต้องคร่ำเคร่งเพื่อค้นหาว่าทำไมฐานข้อมูลที่ใช้งานอยู่ทุกวันนี้จึงอัพเดทกะเค้าไม่ได้ซะที หลังจากที่ใช้เวลามามาก ประกอบกับสอบถามไปทางน้องๆ ทีมงานที่เขียนโปรแกรมกันอยู่ก็ทราบว่า ในเวอร์ชั่นสามนี้ น้องๆ ใช้ PostgreSQL 8.0.3 เป็นพื้นฐานกันอยู่ทำให้เวลาดัมพ์ข้อมูลออกมาจึงอยู่ในฟอร์แมตของเวอร์ชั่น 8 ซะเป็นส่วนใหญ่ และเมื่อเอามาใช้กับ PostgreSQL เวอร์ชั่น 7.4.7 (Sarge) ทำให้มีเอ๋อเหล๋อให้เห็นมากมายเหลือเกิน เช่น

  1. คำสั่ง ALTER TABLE ADD COLUMN vn VARCHAR(255) DEFAULT ""; ก็ใช้ไม่ได้นะจ๊ะ ต้องใช้แบบนี้
    บรรทัดแรก ALTER TABLE ADD COLUMN vn VARCHAR(255);
    บรรทัดที่สอง ALTER TABLE ALTER COLUMN vn SET DEFAULT "";
  2. คำสั่ง ALTER INDEX ก็ใช้ไม่ได้ต้องคอมเม้นท์ไว้จึงจะไม่มีเอ๋อเหล๋อ
  3. ที่น่าปวดหัวยิ่งกว่านั้นคือว่าตามข้อ 1 ข้างบนเนี่ยบางบรรทัดก็ทำตามได้ถูกต้องแต่บางบรรทัดก็ผ่านไปเฉยๆ เหมือนกับว่าถูกคอมเม้นท์ไว้ซะอย่างนั้น ทำให้ต้องมาคอยเช็คดาต้าเบสทุกตาราง ทุกคอลัมภ์ว่าครบหรือปล่าว สามร้อยกว่าตารางครับ

จนแน่ใจว่า SQL ที่เอามาโมดฟายใหม่นั้นทำครบทุกบรรทัดแล้วก็ลองมาเรียกจากตัว Application ดู ฮื่อๆ ทำให้เข่าอ่อนเลย ตัว Setup นั้นเรียกใช้ได้ไม่มีปัญหา แต่ตัว Class Main นั้นเรียกด้วย user ธรรมดาไม่ได้ เรียกได้เฉพาะ user admin แต่ก็ไม่ค่อยสมบูรณ์คือเจ้าตัว tab ต่างๆ ไม่ปรากฏให้เห็น ก็เลยลองโทรไปถามทั้ง henbe (Chief Programmer ในเวอร์ชั่นสาม) พร้อมกับส่ง Exception ไปให้ดู + schema ของฐานข้อมูลที่ได้ทำการอัพเดทไปแล้ว + SQL ที่โมดิฟาย เพื่อให้ตรวจสอบอีกทีนึงว่า ในดาต้าเบสนั้นน่ะ Table, Column ครบจริงๆ หรือปล่าว (ทำมาหลายวัน ตาอาจลายมองเห็นว่าครบก็ได้) เท่านั้นยังไม่พอยังแอบโทรไปถามโต้งอีกว่าเกิดจากอะไรได้มั่ง ก็ได้คำตอบที่ค่อนข้างทำให้เครียดเลยว่า ตัว jar file ทั้งหลายน่ะถูกเขียนขึ้นจากการทดสอบบน PostgreSQL 8.0.3 อาจจะมีผลได้นะเพ่

ทางออกที่ดีที่สุดคือเปลี่ยนไปใช้ PostgreSQL 8.0.x ซะ ปัญหาทั้งหลายก็จะหายไป อันนี้เห็นด้วยว่ะ แต่หนักใจมากเนื่องจากที่ทำงานใช้ sarge ก็ postgres มันเป็น 7.4.7 ซึ่งก็ทำงานอย่างซ์่อสัตย์มาตลอด (ไม่มีความผิดอะไร ) จู่ๆ จะให้ทิ่งไปด้วยเหตุผลที่ว่า เธอร์ดีเกินไป (สำนวนเด็กแนวที่เห็นตาม MV ทั่วไป) ก็ทำไม่ได้ ถ้าทำก็คือ อัพทั้งดิสโทรขึ้นไปเป็น etch เลยเหยอ อันนี้ยิ่งไม่อยากทำในงานที่ต้องใช้ความเสถียรสูง เกิดดาต้าเบสหรือเครื่องเซอร์เวอร์เป็นอะไรไป กรูมิไปเกิดใหม่เลยเหรอฟะ หรือจะเอาซอร์สของ Postgresql 8.0.x มาคอมไพล์เองบน sarge ซึ่งก็เป็นทางออกที่มีเหลืออีกทาง ลง readline , zlib อีกสองแพกเกจก็คอมไพล์ได้แล้วว่ะ เออรู้สึกว่าง่ายหน่อย แต่ก็หนักใจเนื่องจาก dependency ของระบบผูกติดกันอย่างแน่นหนาเหลือเกิน บางโปรแกรมอาจเรียกไม่ได้ ยอมมั๊ย

ทางออกในตอนนี้คือรอ ๆ รอมันไปเรื่อยๆ เหตุผลที่ต้องรอก็เพราะว่าเครื่องของหน่วยบริการปฐมภูมิ (Primary Care Unit PCU) ก็ยังไม่มาถึงซะที ทั้งๆ ที่น้องเค้าก็มาตามจิกอยู่ทุกวันว่าเมื่อไหร่จะได้ใช้โปรแกรมซะที (ไป Present ไว้ซะเยอะ แล้วเป็นงัยล่ะ) ตามเครื่องคอมให้หน่อยนะ หนูต้องบันทึกข้อมูลมากนะ อีกอย่างที่ต้องรอคือคำตอบจาก henbe ว่า schema ที่ส่งไปให้ดูน่ะครบหรือปล่าว ถ้าครบก็เป็นเรื่องของ henbe ที่ต้องไปตามดูบักต่อ แต่ถ้ามันไม่ครบก็ต้องตาแฉะหาวิธีอัพเดทให้ได้ คิดแล้วเหนื่อย ไอ้เช็ค SQL ไม่ค่อยยากใช้ editor ช่วยก็ได้แต่เช็คดาต้าเบสนี่ดิ มันเป็นอะไรที่ต้องใช้สมาธิสูงมาก แล้วต้องใช้กำลังใจมากด้วย (อิ อิ) เอ้าก็รอกันไป วัดกว่าจะสร้างเสร็จก็เป็นปี หมู่บ้านที่ผมอยู่ วิหารยังสร้างมาตั้งหลายปีแล้วยังไม่เสร็จซะที ช่วงนี้ตอนเย็นเลยหาเรื่องไปเตะชาวบ้านเค้าไปทั่ว เตะเค้าแล้วก็วิ่งหนีซะ (เล่นบอล) ค่อยหายอึดอัดหน่อย ก็ได้แต่หวังว่าคงไม่ต้องเปลี่ยนไปใช้ PostgreSQL 8.0.x นะ (ขอให้เป็นคำตอบสุดท้ายก็แล้วกัน)

Powered for by Blogger Templates free hit counter code
Copyright ? 2008-2009 Uthai Lueadnakrop. All Rights reserved