ปรับแว็บไซต์ (wap site) และเพิ่มข้อสอบ

ข้อสอบใน wap site

20 ก.พ.53 ตรวจสถิติจากไซต์ของผู้ให้บริการโฮส พบว่า เว็บเพจโปรแกรมข้อสอบผ่าน wap ถูกใช้บริการมีปริมาณการเข้าใช้สูงมากในเดือนมกราคม 2553 เป็นเว็บเพจที่ไม่มีระบบสถิติใด ๆ วางไว้ เพราะต้องการให้เข้าถึงด้วยโทรศัพท์เคลื่อนที่อย่างรวดเร็ว ครั้งแรกที่ออกแบบโปรแกรมนั้นมีความตั้งใจให้ลูกได้เข้าไปเรียนรู้เกี่ยวกับคำศัพท์อย่างง่ายเท่านั้น
     การปรับปรุงโปรแกรมในชุดแว็บไซต์ มีดังนี้ 1) ให้ลูกช่วยพิมพ์ศัพท์ 5 ตัวอักษรร้อยกว่าตัว เป็นข้อสอบร้อยกว่าข้อ 2) ตรวจข้อสอบศัพท์ 4 ตัวอักษรแล้วเพิ่มเป็น 316 ข้อ 3) ปรับโปรแกรมทั้งหมดเข้ามาตรฐาน xml ให้ใช้ได้กับ wapsilon.com ถ้ามีโอกาสก็จะเข้าไปเพิ่มศัพท์ 6 ตัวอักษร และ 7 ตัวอักษรต่อไป
+ http://www.thaiall.com/wap
+ http://www.wapsilon.com
+ http://tagtag.com/site/emulator
+ http://www.mobilerunner.net/emu_wap3/p/wap3/

แปลงเลขอารบิกเป็นเลขไทย

การแปลงเลขอารบิกเป็นเลขไทยด้วย macro

10 ก.พ.53 เรื่องนี้ควรเขียนเมื่อหลายเดือนก่อนหน้านี้ เพราะ ผศ.ดร.จินดา งามสุทธิ ท่านอธิการบดี รณรงค์ให้ใช้เลขไทยในบันทึกข้อความ แต่ความไม่ชินและความมักง่าย ทำให้ผมเลือกใช้วิธีแปลงเลขอารบิกด้วยการ replace ถึง 10 ครั้ง เพื่อเปลี่ยนตัวเลขทีละตัว แต่ถ้าให้อัตโนมัติก็จะเข้าไปกำหนดใน autocorrect สำหรับแต่ละตัวเลข แต่ใช้ได้กับเลขหลักเดียว ก็ช่วยได้เพียงระดับหนึ่ง (วันนี้ผมเคลียร์งานเขียนแผน km ของมหาวิทยาลัยล้อกับโครงการอบรมประกันฯของ อ.ศศิวิมล แรงสิงห์ เสร็จเร็วกว่าที่คาด) จึงคิดว่าถึงเวลาที่ไม่ควรผลัดวันประกันพรุ่งอีกต่อไป เมื่อศึกษาวิธีการแทนที่ตัวเลขด้วย macro ที่เขียนแบบใช้ใน word กับ excel เผยแพร่ใน thaiall.com/vb เพราะ macro ใช้ visual basic script ใน module สำหรับการประมวลผล
แหล่งเก็บ macro มี 2 แบบคือ ใน normal หรือ ใน document ถ้าเป็นแบบใน document เมื่อสร้างเอกสารก็จะติดเอกสารไป เปิดเอกสารใหม่จะไม่พบ macro เดิม แต่ถ้าเป็นแบบใน normal จะมี macro ติดอยู่ใน template ของ word ทำให้เปิด word แล้วเรียกใช้ macro ได้ทุกครั้ง สำหรับวิธีสร้างและใช้ macro นั้นเริ่มต้นด้วยการคัดลอกโค้ดไปใส่ใน module ของ macro แล้วสั่ง run ใน macro เมื่อต้องการเปลี่ยนตัวเลขทั้งหมดเป็นเลขไทย ซึ่งโค้ดได้สั่งแทนที่ทั้ง 10 ตัวอักษรเป็นเลขไทยอัตโนมัติ การนำไปใช้สำหรับ word กับ excel ต่างกันเล็กน้อย ถ้านำไปใส่ไม่ได้ โปรดติดต่อช่างเทคนิคใกล้บ้าน เพราะส่งเข้า word ครั้งเดียว แต่ใช้งานได้ตลอดไป .. ต่อไปผมก็จะเริ่มใช้แล้ว เพราะ replace 10 ครั้ง ไม่ดีแน่

source code : macro of word

Sub arabictothai()
For i = 0 To 9
With Selection.Find
.Text = Chr(48 + i)
.Replacement.Text = Chr(240 + i)
.Wrap = wdFindContinue
End With
Selection.Find.Execute Replace:=wdReplaceAll
Next
End Sub

source code : macro of excel

Sub arabictothai()
For i = 0 To 9
Cells.Replace What:=Chr(48 + i), Replacement:=Chr(240 + i)
Next
End Sub

การแปลงเลขใน excel

1. ถ้าเป็น excel ไม่ต้องใช้ function ให้กด Ctrl-A แล้วกำหนด format ของ cell ใน Number,  Custom เป็น [$-D07041E]0 ก็จะทำให้ข้อมูลที่เป็นตัวเลขทั้งหมดเป็นเลขไทย
2. ถ้าต้องการมี , กั้นหลักพันก็ใช้ [$-D07041E]#,###,##0 อะไรทำนองนี้ ok ไหมครับ

สาธิต : http://www.youtube.com/watch?v=JNy15bLnt9k
ข้อมูลเพิ่มเติม : http://www.thaiall.com/blog/burin/1496/

สถิติเข้า wap ของผมเดือนธันวาคม52

สถิติทำให้เห็นรายการที่ผู้ใช้เข้าถึงระบบ wap

4 ก.พ.53 สถิติการเข้าเว็บไซต์มีอยู่หลายระบบ แต่ที่บริการโดยผู้ให้บริการเช่าเครื่องมีความละเอียดสูงมาก จากการตรวจสอบในปลายเดือนธันวาคม52 พบว่า thaiall.com/wap มี hits ของเว็บเพจสอบศัพท์อย่างง่ายสูงมาก เป็นศัพท์ 4 คำถึง 2หมื่นกว่า และศัพท์ 3 คำอีกหมื่นกว่าจาก 9383 แฟ้ม วันนี้จึงเข้าไปปรับให้ศัพท์ 4 คำมีความถูกต้อง และเพิ่มศัพท์อีกร้อยหนึ่ง รวมเป็นศัพท์ในข้อสอบสุ่มชุดนี้ประมาณสามร้อยกว่าคำ แต่ผมไม่ได้ใส่ adsense หรือ truehits เพราะต้องการให้ load ได้เร็วแม้จากโทรศัพท์เคลื่อนที่และ code ถูกออกแบบให้เปิดได้ทั้ง web browser และ wap browser
+ http://tagtag.com wap browser simulator

ติดตั้งสาย fiber optic จากหอพักไปสระว่ายน้ำและสนามกอล์ฟ

แลกเปลี่ยนเรียนรู้กับทีมผู้เชี่ยวชาญการติดตั้ง fiber optic

3 ก.พ.53 นายอนุชิต ยอดใจยา ให้ความสะดวกแก่เจ้าหน้าที่บริษัท Com-Link ในการติดตั้งสาย Fiber Optic โดยลากสายจากหอพักหญิงไปตามเสาไฟฟ้าในมหาวิทยาลัยจนถึงสระว่ายน้ำ และสนามกอล์ฟ โดยเป็นทีมที่ประจำอยู่ จังหวัดลำปางและพิษณุโลก รวมทั้งหมด 5 คนมาติดตั้งรวม 2 วันระหว่าง 3-4 ก.พ.53 โดยมีนายธรณินทร์ สุรินทร์ปันยศ และนายวศิลป์ สินพูลทรัพย์ เข้าร่วมเรียนรู้ แลกเปลี่ยนกับช่างมืออาชีพ และเก็บภาพประทับใจบริเวณไซท์งานร่วมกัน กิจกรรมต่อไปคือการติดตั้งอุปกรณ์กระจายสัญญาณ (Access Point) ที่สระว่ายน้ำ และสนามกอล์ฟ ส่วนอาคารนิเทศจะติดตั้งเพิ่ม 1 จุด เพื่อให้บริการคลุมพื้นที่สนามฟุตบอล โดยมีพี่สมศักดิ์ นำทีมจากกรุงเทพฯ มาติดตั้งในวันจันทร์ที่ 8 ก.พ.53 ซึ่งมีนายอนุชิต ยอดใจยาให้การต้อนรับและประสานงานเช่นเดิม
+ http://thaiabc.hi5.com
+ http://www.thaiall.com/mis/mis05.htm

กรมคำสั่ง application.openforms

mdiparent กับ 2 form

28 ม.ค.53 ปกติผมไม่เขียนเรื่องเทคนิคการโปรแกรมใน blog เพราะมีรายละเอียดมาก และเขียนไว้ในเว็บเพจอยู่แล้ว แต่หัวหน้าแนะว่าอยากให้ เขียนเรื่อง application.openforms ซึ่งเป็นวิธีการส่งค่าระหว่างฟอร์มลูกใน mdiparent ซึ่งผมเคยเขียนไว้ในเว็บเพจว่าใช้วิธีอ้างผ่าน mdiparent แต่ทั้ง 2 วิธีที่จะนำเสนอนี้มีความแต่ต่างกันชัดเจน ซึ่งผมจะเขียนเรื่องนี้ไว้ใน
+ http://www.thaiall.com/vbnet/testtoolbox.htm
ขั้นตอนที่ 1 การสร้างคอนโทล เพื่อเตรียมความพร้อม
    
สร้าง mdi parent form และ windows form ขึ้น 2 form เมื่อเปิด solution ให้เรียกทั้ง 2 ฟอร์มมาแสดงใน mdi parent form ทันที โดยใส่คำสั่งในโหลดของเอ็มดีไอ คือ dim f1 = new form1 : f1.mdiparent = me : f1.show() : dim f2 = new form2 : f2.mdiparent = me : f2.show() แล้วในฟอร์มทั้งสองมี ปุ่มและเท็คบ็อกอย่างละหนึ่ง
ขั้นตอนที่ 2 ทดสอบคำสั่งที่ใช้ส่งค่าเมื่อกดปุ่ม
    กรณีที่ 1 กรอกข้อมูลและสั่งจากฟอร์มหนึ่งแต่มีผลในฟอร์มสอง ใส่คำสั่งในปุ่มของฟอร์มหนึ่งว่า For Each f As Object In MDIParent1.MdiChildren : If UCase(f.name) = “FORM2” Then : Dim f2 As Form2 = f : f2.TextBox1.Text = Me.TextBox1.Text : MsgBox(“wait”) : f2.Close() : End If : Next
    กรณีที่ 2 ทดสอบตามที่หัวหน้าแนะนำให้ใช้ application.openforms โดยสั่งจากฟอร์มสองแต่มีผลในฟอร์มหนึ่ง โดยใส่คำสั่งในปุ่มของฟอร์มสองว่า Dim f As Form : f = Application.OpenForms.Item(“form1”) : For Each i As Object In f.Controls : If UCase(i.name) = “TEXTBOX1” Then : i.text = “abc” : End If : Next : MsgBox(“wait”) : f.Close()
ขั้นตอนที่ 3 อธิบายความแตกต่าง
     ทั้ง 2 กรณีต่างกันที่ กรณีที่ 1 อ้างอิงฟอร์มเป้าหมายผ่าน mdiparent1 แล้ววนลูปตาม object ทั้งหมดในนั้น โดยมองหาวัตถุที่ชื่อ FORM2 เมื่อพบก็จะส่งเข้าวัตถุชิ้นใหม่ให้อ้างอิง แล้วจึงเรียกใช้ textbox1 ตามวัตถุประสงค์ แต่กรณีที่ 2 อ้างอิงฟอร์มเป้าหมายผ่าน Application.Openforms ซึ่งเรารู้ว่า Form1 เปิดอยู่ แล้วก็วนลูปเข้าไปใน controls ทั้งหมด เมื่อพบ textbox1 ก็ดำเนินการทันที

พบปัญหาจูมลาในเว็บไซต์สมาคมฯ ของโรงเรียน

24 ม.ค.53 จูมลา (joomla) 1.5 บาง template มีปัญหากับ IE6 ของผมก็พบครับ ทดสอบกับเครื่องที่ใช้ Windows SP2 ทั้งหมด 5 เครื่องของ 5 คน จะมี IE6 มากับ Windows ทุกคน เมื่อเปิดเว็บไซต์ของสมาคมผู้ปกครองและครูโรงเรียนแห่งหนึ่ง พบว่า IE6 ค้างแบบ Not Response ต้อง End Process ถ้าไม่ end process ก็จะเปิดเว็บอื่นไม่ได้ ผู้ใช้บางคนต้องปิดเครื่องเพื่อแก้ปัญหา แต่มีเครื่องหนึ่งเปิดได้ เมื่อค้นข้อมูลเรื่องนี้จาก google.com ก็มีการพูดคุยกันว่า joomla 1.5 มีปัญหากับ IE6 จริง สถิติการใช้ IE6 ของไทยยังสูงสุด ถ้าหากทำเว็บให้ผู้พัฒนาดูคนเดียวก็ไม่มีปัญหา แต่ถ้าต้องการให้คนอื่นดู การให้ความสำคัญกับการแก้ปัญหา และทดสอบคงเป็นเรื่องสำคัญ .. ก็รู้ว่าวิธีแก้ปัญหากับ CMS นั้นไม่ง่ายเลยครับ
   วิธีแก้ คือบังคับให้ผู้ใช้ download ie7 มิเช่นนั้นเปิดเว็บไซต์เราไม่ขึ้น .. ผมว่าวิธีนี้ดูแปลก ๆ นะครับ แต่ webmaster บางคนเขาทำจริง

เก็บ log ของผู้ใช้ระบบอินทราเน็ตไม่เข้า

สถิติ และข้อมูลผู้ใช้ล่าสุด

19 ม.ค.53 เมื่อ 2 วันก่อนคือวันอังคารที่ผ่านมา พบปัญหาว่า อ.อติชาต หาญชาญชัย เข้าสู่ระบบอินทราเน็ต (เป็นผู้ทดสอบที่ไม่ได้มาจากการรับบันทึกเชิญชวนบุคลากรของมหาวิทยาลัยให้เข้าทดสอบระบบ แต่มาจากการบอกต่อของบุคลากร) สิ่งที่พบคือไม่แสดงข้อมูลการเข้าใช้ในระบบเก็บ log และจำนวนผู้ใช้หยุดที่จำนวน 27 คนเท่านั้น จึงแจ้งไปยังคุณธรณินทร์ สุรินทร์ปันยศ ว่าเกิดอะไรขึ้น มีการปรับข้อมูลอะไรหรือไม่ เพราะข้อมูลล่าสุดเป็นของวันที่ 15 ม.ค.53 แล้วผมก็เห็นกับตาว่าท่านได้เข้าใช้ระบบเมื่อวานนี้ และผลลัพธ์ใน log ไม่ถูกปรับอย่างที่ควรจะเป็น เวลาผ่านไปประมาณ 2 ชั่วโมง ก็ได้ทราบว่าพบปัญหาจริง แต่ยังแก้ไขไม่สำเร็จ เพราะ code ทำงานในเครื่องจำลองที่ใช้เป็นฐานในการพัฒนานั้นทำงานอย่างถูกต้อง มีข้อสงสัยว่าระบบ mysql ในเครื่องหลักมีปัญหา .. ก็สงสัยว่าจริงหรือ
     เมื่อผมเข้าไปดู code ก็พบว่าปกติ แต่ insert record ใหม่ไม่เข้าเท่านั้น ไปตรวจจำนวนระเบียนพบว่ามี 127 ระเบียน และไม่มีการเพิ่มขึ้นอีก .. นึกไปนึกมา ก็นึกได้ว่า 127 คือครึ่งหนึ่งของ 256 ซึ่งเป็นเลขที่อาจเป็นข้อจำกัดของ data type ที่เก็บข้อมูล จึงเข้าไปดูโครงสร้างแฟ้มด้วย phpmyadmin ก็พบว่า autonumber กำหนดเป็น tinyint ซึ่งรับระหว่าง -128 – 127 เมื่อแก้ไขเป็น int แล้ว ก็เก็บข้อมูลของผู้ที่ login เข้าสู่ระบบได้ตามปกติ ถึงวันนี้มีผู้เข้าระบบไปแล้ว 33 คน สำหรับคณะวิทย์ฯ มีบุคลากรเข้าใช้งานไปแล้วร้อยละ 75 ซึ่งสูงที่สุดเมื่อเทียบในระดับคณะวิชาด้วยกัน

หัวหน้าทักว่าทำไมไม่เขียน blog อีก .. ต้องตอบ

20 ม.ค.53 หลายวันมานี้ผมติดภารกิจ มีหลายเรื่องที่แก้ไม่ตก ส่วนเรื่องเขียนนั้น ผมก็เขียนตามปกติไว้ที่ thaiall.com/blog แต่ไม่ได้เขียนที่ blog ของโยนก เพราะเรื่องบางเรื่องเป็นเรื่องส่วนตัว อาจเป็นแง่ลบต่อสังคมโยนก และสังคมมนุษย์ ที่ไม่อยากให้เกิดบูมเมอแรงเข้าตัว จึงไปเขียนนอกโยนก อย่าง 2 เรื่องล่าสุดที่เขียนไป คือ pr ซึ่งเป็นประสบการณ์เกี่ยวกับ sw ที่ไม่เหมาะนักและไม่อยากให้โยนกติดร่างแห่ไปด้วย อีกเรื่องคือเรื่องอุบัติเหตุจากการฟ้อนรำ ซึ่งผมคิดว่ามนุษย์เราควรเลิกได้แล้วเรื่องการเอาผู้หญิงมาฟ้อนรำ เป็นการไม่ให้เกียรติเพื่อนมนุษย์ด้วยกัน .. ก็เป็นการแบ่งปันความเชื่อให้ชวนคิดกันเท่านั้นครับ ว่าสิ่งที่เราทำอาจไม่ถูกทุกเรื่อง และสิ่งที่ถูกอาจยังไม่ได้ทำ

ผ่านไปอีกเรื่องกับ pr 4

นกของลำปางที่ไปอยู่ใน youtube.com
นกของลำปางที่ไปอยู่ใน youtube.com

20 ม.ค.53 วันนี้ clear ปัญหา pr 4 ไปได้ระดับหนึ่ง เหตุเกิดจากมีนักศึกษาคือ กร กับปราง ทำโครงงานตัดต่อวีดีโอ ทั้งสองเป็นเจ้าของเว็บไซต์ goto69.com และ ldy69.com แต่พวกเขาบ่นเรื่องปัญหาการตัดต่อให้ฟังหลายประเด็น เช่น โหลดไม่เข้า มีสีแดงแทรก ตัดเสียงรบกวนไม่ได้ ซึ่งชื่อเสียงของ pr 4 นั้นเรียกได้ว่าสุดยอดในด้านนี้ ผมเองเคยใช้แต่ movie maker กับ proshow ในการตัดต่อภาพยนต์ ประกอบกับหาคนเล่าเรื่อง pr ในอินเทอร์เน็ตไม่ค่อยพบ อีกประเด็น คือ ต้องการตัดต่อวีดีโอด้านการศึกษาเผยแพร่ใน youtube.com เป็นเหตุให้คิดจะใช้ pr สักครั้งกับเครื่องที่มีแรมสองเม็กขึ้นไปที่มีอยู่ในบ้านให้เกิดประโยชน์

     ใช้เวลา 3 วันกับเรื่องนี้ วันแรกดาวน์โหลดใช้เวลา 1 คืนกับอีก 1 วันกว่าจะโหลดสำเร็จ มาลงแผ่น DVD ขนาด 4 GB เกือบเต็มแผ่น วันที่สองใช้โปรแกรมที่ได้จากเน็ตมาติดตั้ง ซึ่งใช้เวลากว่า 2 ชั่วโมง แล้วทำตามขั้นตอนที่แนะนำมากับแผ่น แต่ก็มีปัญหาเรื่อง license จึงได้คัดลอกแฟ้มที่ให้มาลงไปในห้องต่าง ๆ ตามที่แนะนำมา แต่ก็เรียกใช้ pr ไม่สำเร็จ ตอนเรียกใช้โปรแกรม pr จะดับไปเฉยตั้งแต่เริ่มต้น อาการนี้ไม่เกิดกับโปรแกรมอื่นในตระกูลนี้ หลังทดสอบเปิดปิดหลายโปรแกรม เมื่อเปิด pr อีกครั้งก็พบว่าเปิดได้ แต่พบว่า import movie ไม่เข้า มีข้อความว่า format unsupport จึงตัดสินใจ upgrade เป็น 4.2.1 แต่ก็มีปัญหาเหมือนเดิม วันที่สามได้แผ่นจากคุณธรณินทร์มาเป็นรุ่น 4.0.0 ติดตั้งครั้งแรก พบปัญหาเดิมคือ pr shutdown ขณะ start จึงตัดสินใจ uninstall แล้วลบ folder ให้ clear เมื่อติดตั้งอีกครั้งก็ใช้งานได้ ไปจนถึงการ export เป็น flv พบว่าไม่มีปัญหา แต่ export นานมากเหมือนที่ปรางเล่าให้ฟังจริง หนังยาวสิบสี่นาทีใช้เวลา encode กว่า 50 นาทีแล้ว

     การใช้งาน pr ยังมีปัญหาเหมือนวันแรกซ่อนอยู่ คือ เปิดขึ้นมาแล้วดับไปเฉยเลย พบวิธีหนีปัญหา คือ เปิดโปรแกรมนี้ 2 – 6 รอบ ก็จะใช้งานได้รอบสุดท้ายนั้น เครื่องที่ใช้เป็น drive f ที่ลงโปรแกรมครบชุดกับฮาร์ดแวร์ มิได้ลงใน os ตัวที่เหลือที่ค่อนข้างสะอาดกว่า แต่ os ตัวนี้เป็นตัวที่ใช้ option ของ asus ค่อนข้างสมบูรณ์ จึงเป็นไปได้ว่าเกิดจาก software confict แต่ก็ยังไม่ได้ทดสอบปิดบริการทีละตัวเพื่อหาสาเหตุที่แท้จริง .. บางปัญหาปล่อยไปบ้างก็น่าจะดี

Smart Education Sim หรือ AIS Smart Solution

13 ม.ค.53 ที่มหาวิทยาลัยโดย งานทะเบียน และ งานประชาสัมพันธ์ ร่วมให้บริการ Smart Education Sim หรือ AIS Smart Solution หรือ YONOK Sim แก่นักศึกษา คือ บริการส่งข้อมูลข่าวสารจากมหาวิทยาลัยถึงนักศึกษาฟรี สำหรับนักศึกษาที่ใช้โทรศัพท์มือถือระบบ AIS GSM และ AIS One-2-Call เท่านั้น นักศึกษาที่สนใจสามารถเข้าไปสมัครด้วยตนเองที่ http://www.yonok.ac.th/sim หรือสมัครผ่านโทรศัพท์มือถือ โดยส่ง sms พิมพ์ yonok,รหัสนักศึกษา,ปีพ.ศ.เกิด (2หลัก) เดือนเกิด(2หลัก) วันเกิด (2หลัก) เช่น yonok,5010000001,321019 ส่งมาที่เบอร์ 9010112 แล้วนักศึกษาจะได้รับข้อความตอบกลับว่า “การลงทะเบียนเสร็จสิ้น ท่านได้เป็นสมาชิกของระบบเรียบร้อยแล้ว” เป็นอันว่าการสมัครเสร็จสมบูรณ์ บริการนี้เป็นความร่วมมือของมหาวิทยาลัยโยนก กับบริษัท AIS ซึ่งพัฒนาระบบโดยบริษัท G-Able เป็นอีกช่องทางที่ใช้เทคโนโลยีช่วยในการสื่อสารจากมหาวิทยาลัยถึงนักศึกษาอีกวิธีหนึ่ง ซึ่ง อาจารย์ คณะวิชา หรือหน่วยงาน สามารถใช้เป็นช่องทางได้อย่างมีประสิทธิภาพ
+ http://www.thaiall.com/mis/mis08.htm