การสร้าง installer ด้วย visual studio .NET 2010


publish page
publish page
16 ธ.ค.55 การสร้าง installer เพื่อ publish ผลงานที่ทำการ build จาก vs.net 2010 แล้วเผยแพร่ให้กลุ่มเป้าหมาย ไม่ซับซ้อนเมื่อใช้ vs.net (ใน nsis หรือ android ซับซ้อนกว่า) จึงได้ทำ demo ตัว installer โดยมีขึ้นตอนดังนี้ 1. โจทย์ หรือความต้องการ มีโจทย์ว่าจะทำโปรแกรมแสดงบทความไอทีในชีวิตประจำวันให้ผู้อ่านเปิดอ่านแบบ offline ได้ ซึ่งปกติเผยแพร่ไว้ที่ thaiall.com/itinlife แล้วเคยทำแบบนี้ในรูป android apps เผยแพร่ใน play store หรือ thaiall.com/android จึงคัดลอก script ส่วนของ array ที่เป็นภาษา C มาปรับเป็นภาษา Basic 2. การออกแบบโปรแกรม ทำใน vs.net แบ่งเป็น 2 ส่วนคือ windows forms application และ class library โดยเนื้อหาบทความอยู่ใน .dll แต่โปรแกรม form ที่ใช้ทำงานจริง จะเรียกใช้เนื้อหาจาก library หากจะเพิ่ม-ลบบทความก็เพียงแต่ปรับ .dll แล้วถ้าปรับการแสดงผลก็ต้องไปปรับ form ซึ่งแยกให้เห็นการทำงานที่แตกต่างกัน 2 ส่วน 3. เปิดให้ download 3 แบบ 3.1 source code ของ class library ได้รวมเป็น .rar ไว้ที่ http://www.thaiall.com/itinlife/vs2010_dll_itarticles.rar ถ้ามีเฉพาะ library จะประมวลผลไม่ได้ เพราะผมไม่ได้ทำ main() ทิ้งไว้ 3.2 source code ของ windows forms application ได้รวมเป็น .rar ไว้ที่ http://www.thaiall.com/itinlife/vs2010_form_itarticles1.rar ใน form นี้ ผม add reference ไว้แล้ว สามารถทดสอบประมวลผลได้ 3.3 execute file ที่เกิดหลัง build และ publish ผมใช้ ftp ส่งแฟ้มในห้อง publish ไปเผยแพร่แบบออนไลน์ไว้ที่ http://www.thaiall.com/itinlife/publish/publish.htm ถ้ากดปุ่ม install หรือ run setup.exe ก็จะได้โปรแกรมไว้ในเครื่อง แต่ในการติดตั้งจะ download จาก net เพราะตัว setup.exe กับใน publish\Application Files นั้นแยกกันชัดเจน

การ export, import data – biblio ใน senayan

biblio data convertion
biblio data convertion

3 ธ.ค.55 ได้ export แฟ้มจากระบบของเสนายัน ซึ่งมีให้เลือก 2 รายการ คือ Data Export และ Item Export โดย 1) Data Export จะได้แฟ้ม senayan_biblio_export.csv มีรายการหนังสือทั้งหมด และ  2) Item Export จะได้แฟ้ม senayan_item_export.csv มีรายละเอียดแยกเล่มอยู่ในรายการหนังสือ พบว่า ข้อมูลในแฟ้มเป็นภาษาไทยแบบ UTF-8 ทำให้โปรแกรม editplus2 หรือ excel หรือ wordpad เปิดขึ้นมาไม่ได้ ต้องใช้ notepad แม้เปิดได้แต่ไม่มีประสิทธิภาพในการจัดการข้อมูล จึงใช้ editplus3 เปิดแฟ้มเพื่อคัดลอก และเปลี่ยนตัวอักษรให้เป็นไปตามรูปแบบต่อไป
http://www.editplus.com/download.html

บันทึกผลการทดสอบ มีขั้นตอนดังนี้
1. เมื่อเลือก Data Export: biblio ออกมาแล้ว สามารถทำ Data Import: biblio กลับเข้าไปได้ โดยไม่เขียนทับของเดิม แต่เพิ่มระเบียนใหม่ และไม่มีการถามว่าจะเลือกแบบใด เพราะดำเนินการทันที .. ปัญหาที่พบจากการทำ Data Import คือ ข้อมูล label หายไป
2. เปิดแฟ้ม .csv ด้วย editplus3 แล้วคัดลอกไปวางใน excel แล้วเลือก data, text to columns
3. แก้ไขข้อมูล และ column D กำหนด format cells เป็น Number และ Decimal places เป็น 0
4. export save as แบบ  Text (Tab Delimited) (*.txt) พบว่าไม่มีเครื่องหมาย “”
5. เปิดแฟ้มที่ได้ด้วย editplus3 แล้ว เติมเครื่องหมาย ” คร่อมฟิลด์ทั้งหมด
6. save as เป็น .csv และกำหนด encoding เป็น utf-8

การเติมเครื่องหมาย ” คร่อมฟิลด์ มีขั้นตอนดังนี้
1. replace tab ด้วย “,”
2. replace “\n ด้วย “”\n” (regular expression)
3. เติม ” ปิดหัว กับ ปิดท้าย แฟ้มด้วยนะครับ

+ http://www.thaiall.com/senayan/senayan_biblio_export.csv
+ http://www.thaiall.com/senayan/senayan_item_export.csv
+ http://www.thaiabc.com/senayan/
+ http://www.thaiall.com/senayan

ปัญหากับ ldap ล้มอาการใหม่ แต่วิธีแก้เหมือนเดิม

stop on swap space after ldap service
stop on swap space after ldap service

อาการขอวันนี้
1. fedora core 4 บูทไม่ขึ้นอีกแล้วหลังไฟดับ .. บูทแล้วค้าง โดยฟ้องคำว่า swap
2. reboot แล้วกด i ตามคำแนะนำ press ‘I’ to enter interactive startup
3. กดปุ่ม y เลือกบริการไปเรื่อย ๆ แล้วก็พบ ldap ผมเลือก n เพราะถ้า y ก็จะค้างอยู่ตรงนั้นอีก
4. หลังเข้าไปก็ทดสอบ start แบบ manual
พบคำว่า Checking configuration files for slapd: แล้วก็ค้างตรงนั้น
ผมต้องกดปุ่ม ctrl-c ออกมา

วิธีแก้ไข

1. สั่ง recover ด้วยคำสั่งต่อไปนี้ แต่ถ้าท่านใช้ต้องเปลี่ยนคำว่า myname
#/usr/sbin/slapd_db_recover -v -h /var/lib/ldap/myname
2. ต้องแก้ไขสิทธ์ของแฟ้ม จึงจะ start ได้สำเร็จ
โดยเข้าห้อง /var/lib/ldap/myname
แล้วสั่ง #chown ldap:ldap *
3. สั่ง #/etc/init.d/ldap start
หรือ #/etc/init.d/ldap status พบว่ามาบริการเหมือนเดิม

press 'I' to enter interactive startup
press 'I' to enter interactive startup

http://www.thaiall.com/blog/burin/4571/

แนวโน้มการรับชมทีวีสดลดลง (itinlife371)

online tv
online tv

1 ธ.ค.55 ทีวีสด หรือทีวีแบบดั้งเดิม (Traditional TV) หมายถึง การรับชมทีวี (Receive) จากสัญญาณที่มีการถ่ายทอดในขณะนั้น แต่ถ้าเป็นทีวีออนไลน์ (Online TV) หรืออินเทอร์เน็ตทีวี (Internet TV) มักเป็นการเข้าชม (Access) รายการที่ถูกบันทึกไว้ เรียกดูย้อนหลัง หรือรับชมซ้ำได้ หรืออาจเป็นรายการสดก็ได้ จากผลสำรวจในอเมริกาแม้ยอดผู้ชมทีวีผ่านเคเบิ้ลทีวีจะลดลง แต่ยอดจำหน่ายทีวีแบบ HD (High Definition) ที่ให้ความละเอียดในการแสดงผลสูงกลับมียอดจำหน่ายสูงอย่างต่อเนื่อง ตัวอย่างการชมอินเทอร์เน็ตทีวี เช่น ผู้ชมที่ติดละครเรื่องแรงเงาที่ออกฉายในปี 2544 นำแสดงโดยคุณแอน ทองประสม หรือปี 2555 ที่นำแสดงโดยคุณเจนี่ เทียนโพธิ์สุวรรณ สามารถชมย้อนหลังได้ทุกตอน ไม่ต้องรอชมทีวีสดเหมือนในอดีตที่เป็นเพียงทางเลือกเดียว

ในรายงานเรื่อง How People Watch-A Global Nielsen Consumer Report ของเนลสัน บริษัทวิจัยตลาดรายใหญ่ สำรวจจากผู้ใช้อินเทอร์เน็ตประมาณ 27,000 คน จาก 55 ประเทศ พบว่าคนไทยดูทีวีสดน้อยที่สุด ส่วนชาวอเมริกันดูทีวีสดมากที่สุด แต่คนจีนดูวีดีทัศน์ผ่านคอมพิวเตอร์ หรือสมาร์ทโฟนมากที่สุดในโลก เมื่อผมสอบถามนักศึกษาในห้องเรียนเกี่ยวกับพฤติกรรมการรับรู้ข่าวสารก็พบว่าเป็นไปในทิศทางเดียวกัน เพราะมีน้อยมากที่ดูทีวีสดอย่างหน้าพร้อมตากันในครอบครัว และส่วนใหญ่จะรับชมคลิ๊ปวีดีโอที่หาดาวน์โหลดได้จากอินเทอร์เน็ตเป็นการส่วนตัว หรือหมกตัวอยู่กับเครือข่ายสังคม หรือเล่นเกมออนไลน์

ในอดีตคนไทยรับชมช่องทีวีได้เพียงไม่กี่ช่อง แต่ปัจจุบันสามารถติดตั้งจานดาวเทียม หรือเคเบิ้ลทีวี แล้วรับชมได้นับร้อยช่อง สถิติการรับชมทีวีสดมักมีปัจจัยมาจากการศึกษา อาชีพ ฐานะ ครอบครัว ความชอบ และสภาพแวดล้อม ส่วนปัจจัยที่ทำให้การรับชมทีวีสดลดลงได้แก่ รับชมรายการทีวีย้อนหลังจากอินเทอร์เน็ต หรือ TV on demand โดยไม่เสียค่าใช้จ่าย และมีให้เลือกชมแบบไม่จำกัดจากหลายเว็บไซต์ อาทิ การรับชมคลิ๊ปกังนัมสไตล์ที่มียอดการรับชมสูงที่สุดในโลก เวลานี้มียอดไปแล้วมากกว่า 800 ล้านวิว โค่นแชมป์เพลงเบบี้ของจันติน บีเบอร์ ไปแล้ว หรือการชมหนังซูมตามเว็บไซต์ต่าง ๆ ก็สามารถสืบค้นได้ไม่ยากนัก หรือการชมหนังแผ่นแบบ 8 เรื่อง 100 บาท ตามร้านสะดวกซื้อก็เป็นปัจจัยที่ทำให้เวลาที่จะรับชมทีวีสดลดลงเช่นกัน

http://variety.thaiza.com/detail_189254.html

http://www.thairath.co.th/content/oversea/259158

การทำ Shared Folders ของ Debian กับ VirtualBox

share folders
share folders

29 พ.ย.55 ในกรณีต้องการ share folders จาก host ที่เป็น windows ไปให้เครื่อง guest ที่เป็น Debian ใน Oracle VirtualBox  มีขั้นตอนดังนี้

http://mirror1.ku.ac.th/debian-cd/6.0.5-live/i386/iso-hybrid/

1.1 เข้า Debian ใน VirtualBox
https://www.virtualbox.org/manual/ch04.html
1.2 menubar, Applications, Accessories, Terminal
$su
#apt-get update
#apt-get upgrade
#apt-get install make gcc
#uname -a
#apt-get install linux-headers-2.6.32-5-686
1.3 เตรียมพร้อมกับการ share และการติดตั้ง
#cd /media/cdrom/
แล้ว share folder ผ่าน menubar, Device, Share Folders
1.4 สั่งประมวลผล script จาก cd ที่มาจาก Install guest additions
#sh ./VBoxLinuxAdditions.run
แล้ว restart
จะพบว่ามีการทำ automount ใน /media/..
ตรวจด้วยคำสั่ง #mount
1.5 หากจะเข้าใช้งาน ต้องเปลี่ยน group ของ user เป็น vboxsf
แล้ว restart จึงจะเข้า folder ที่ share มาจากระบบ Windows เพื่อใช้งานได้

การติดตั้ง centos ผ่าน liveDVD .iso บน virtual box

centos 6.3 from ku in oracle virtual box
centos 6.3 from ku in oracle virtual box

28 พ.ย.55 เหตุเกิดจาก ได้ทดสอบ CentOS 6.3 ซึ่งเป็นอีก 1 ระบบปฏิบัติการลีนุกซ์ที่น่าสนใจ เริ่มจาก นายภส.. นักศึกษาของผม เล่าให้ฟังว่าติดปัญหาในการติดตั้งกับเครื่อง notebook และที่ผ่าน oracle virtual box ในห้องแล็ป ทำให้ผมต้องหา CentOS มาติดตั้งก็ได้จาก ku.ac.th เป็น CentOS-6.3-i386-LiveDVD.iso

ผลการดำเนินการ จากการทดสอบบนเครื่องคอมพิวเตอร์จำนวน 3 เครื่องใน 3 วัตถุประสงค์ คือ 1) เริ่มทดสอบกับเครื่องห้องแล็บเดิมที่ลง win xp มี CPU 3.2 GHz ram 1 GB พบว่า boot แบบ liveDVD ผ่าน .iso แล้วเข้าระบบและใช้งานได้ แต่ต้องลดอุปกรณ์บน vm ให้หมดให้เหลือน้อยแบบที่เรียกว่า minimum device ปัญหาที่พบคือ คลิ๊กปุ่ม install to harddisk drive แล้วไม่ทำงาน คาดว่า device ไม่พร้อม จึงเปลี่ยนเครื่องทดสอบ 2) ใช้กับเครื่องที่พร้อมกว่า คือ เครื่องใหม่ที่ลง win 7 มี CPU 3.2 GHz ram 4 GB พบว่า boot และ install บน harddisk ได้ปกติ โดยติดตั้งผ่าน .iso เมื่อถอด .iso ออกก็บูทได้เอง จึง export ไปเป็น .ova เพื่อนำไปใช้ในเครื่องอื่นต่อไป ควรเร็วไม่แตกต่างกับ win 7 เพราะ hw รองรับได้ 3) เครื่องห้องแล็บเดิม แต่เปลี่ยนเครื่อง ใช้วิธีการ import แฟ้ม .ova และลดอุปกรณ์ให้เหลือน้อยที่สุด ในการทดสอบครั้งแรกนั้นจะเหลือ network ไว้ทำงาน แต่พบว่า การ boot ในบางครั้งไม่สำเร็จ จึงต้องถอดอุปกรณ์ออกให้หมด ก็จะสามารถใช้งานแบบค่อยเป็นค่อยไปได้

พอสรุปได้ว่า CentOS ยังต้องการ hardware ที่พร้อมโดยเฉพาะขนาด RAM นอกจากนี้ยังทดสอบสั่ง auto startup ให้เปิด CentOS บน VM ทันทีที่ win เริ่มทำงานด้วยคำสั่ง  “C:\Program Files\ Oracle\ VirtualBox\ VBoxManage.exe” startvm “centos63” แต่ทดสอบกับเครื่องห้องแล็บ พบว่าบางครั้งก็บูทสำเร็จ บางครั้งก็ไม่สำเร็จ จากปัญหาขนาด RAM จึงถอนคำสั่งนี้ออกจาก program/startup

Oracle virtual box is a virtualization software
Oracle virtual box is a virtualization software

http://www.virtualbox.org/
http://mirror1.ku.ac.th/centos/6.3/isos/i386/

ISO = application/x-iso9660-image

OVA = Open Virtualization Appliance

สถิติเว็บบล็อก (blog statistic)

blog
blog

27 พ.ย.55 สถิติเว็บบล็อก (blog statistic) ใน truehits.net เมื่อวันที่ 27 พ.ย.2555 พบว่ามีรายการบล็อกในระบบกว่า 30,000 blog และจาก 400 blog-site แรก พบว่ามีเพียงไม่กี่กลุ่มบล็อกที่อยู่ใน 400 อันดับ ได้แก่ 1) bloggang.com 2) dek-d.com 3) oknation.net 4) eduzones.com 5) exteen.com 6) ohozaa.com และ 7) other ที่น่าแปลกคือคนไทยมี blog-site เป็นของตนเองน้อยกว่าที่คาดไว้มาก หากดูภาพรวมที่มี blog กว่า 100,000 members พบว่า อยู่ในกลุ่ม others ซึ่งกลุ่ม other หมายถึง blog-site ที่ไม่เข้าไปอยู่ในระบบบริการของผู้ให้บริการ และมีจำนวนเพียง 8 blog-site หากเทียบเป็นร้อยละก็มีไม่ถึงร้อยละ 0.001 เท่านั้น

http://blogrank.truehits.net/

ldap server สำหรับ windows

ldap for windows
ldap for windows
22 พ.ย.55 จากการทดสอบติดตั้งโปรแกรม ldap for windows เพื่อจัดตั้ง ldap server
สำหรับให้บริการข้อมูล ก็พบว่า OpenLDAP for Windows 2.4.30 ติดตั้งง่าย
ในการติดตั้งก็กด next เป็นส่วนใหญ่ ยกเว้นรหัสผ่านของ user name ที่ผมได้กำหนดไป
โดยกำหนดให้เหมือนค่า default password ของ server ที่มีมาให้
เมื่อใช้คำสั่ง netstat -na ก็พบว่า port 389 ถูกเปิดรอให้บริการอยู่แล้ว
แล้วใช้ Apache Directory Studio
เชื่อมต่อไปที่ host:localhost port:389
แล้วเลือก No Authentication ก็เข้าได้แล้วครับ
ldap : apache directory studio
ldap : apache directory studio

การติดตั้ง Apache Directory Studio นั้น ต้องมี JRE อยู่ในเครื่อง
แล้วผมก็ copy ห้อง /jre ไปไว้ใน  C:\Program Files\Apache Directory Studio
แล้วสามารถเรียกใช้โปรแกรมได้ตามปกติ เพราะพัฒนาด้วยภาษา Java
ถ้าเข้าระบบแบบ No Authentication จะมองเห็นข้อมูลทั่วไป
แต่ไม่เห็นรหัสผ่าน ของสมาชิก จะต้องกำหนด User และ Password สำหรับแบบ Simple Authentication
จึงจะเข้าแก้ไขข้อมูลที่ถูกปิดไว้ ได้แก่ password ของ member นั่นเอง

ldap ou=xxx,dc=xxx,dc=xxx
อาทิ ldap ou=xxx,dc=xxx,dc=xxx

ldap ในเครื่องบริการ .. ไม่ตื่นอีกแล้ว

ldap fail
ldap fail

ขั้นตอนการตรวจสอบ และแก้ไข
ในกรณี ldap server ล้มหลังไฟฟ้าดับ แล้ว ldap server ก็ตอบว่า ldap unbind

1. พบว่าสั่ง start บริการ ไม่สำเร็จ
#/etc/init.d/ldap start
Checking configuration files for slapd: [FAILED]
2. แก้ไขปัญหาด้วยการ recover
#/usr/sbin/slapd_db_recover -v -h /var/lib/ldap/myname
ได้แฟ้ม log.0000000001 มาใหม่ และดูเหมือน recover สำเร็จ
แต่ก็ยังใช้งานไม่ได้ จึง restart เครื่อง เพื่อล้างค่าต่าง ๆ
3. restart เครื่องคอมพิวเตอร์
4. เมื่อสั่ง start บริการ ก็พบคำว่า OK
สั่ง start กี่ครั้ง ก็ตอบว่า OK .. หมายความว่าไม่ OK
เมื่อตรวจดู status ก็พบว่าบริการไม่ได้ถูกเปิดให้ใช้
#service ldap start เป็นวิธีเปิดบริการ ldap อีกแบบ
#/etc/init.d/ldap status เป็นวิธีตรวจสอบสถานะว่า running รึเปล่า
5. ทดสอบสั่ง start อีกแบบด้วย #/usr/sbin/slapd หรือ slapd -d 10
เมื่อตรวจ status ก็พบว่า ระบบเปิดบริการแล้ว (เรียกว่าเปิดบริการแบบ manual)
แต่ก็ต้องหาว่าสาเหตุคืออะไรต่อไป เพราะ ไม่สามารถ start ตามปกติได้
6. พบสาเหตุว่าเจ้าของแฟ้มในห้อง myname ไม่ใช่ ldap:ldap แต่เป็น root:root
จึงต้องเปลี่ยนเจ้าของ #chown ldap:ldap * ในห้อง /var/lib/ldap/myname
สรุปว่า ใช้งานได้ปกติหลังเปลี่ยนเจ้าของ
7. ใช้โปรแกรมจาก http://www.ldapadministrator.com/
ซึ่งเป็น ldap client admin เข้าไปจัดการข้อมูลได้ครับ

28 ก.ค.58 คุณตั้งแจ้งว่า verify stdid ไม่ผ่านอีกแล้ว หลังไฟดับเมื่อเช้า
หารือกับคุณตุ้ย ก็พบว่ามีปัญหาจริง ซึ่งก็ไม่รู้ว่าเกี่ยวกับไฟฟ้าดับรึเปล่า
ใช้วิธีข้างบนไม่ขลังเหมือนก่อน  ทั้งคุณเปรม และผมปลุกตามวิธีเดิม ๆ ก็ไม่ขึ้น
แล้วเวลาสั่ง start พบคำว่า
Finding last valid log LSN: file: 7 offset 8689191
Recovery starting from [7][8689099]
Recovery complete at Tue Jul 28 15:31:48 2015
Maximum transaction ID 80000007 Recovery checkpoint [7][8689191]

สรุปว่าลองลบ log
แล้วแฟ้ม ___db.001 ก็มากันปกติ จึงได้ใช้ chown จากนั้นก็ ok
แต่ก็ไม่แน่ใจ เพราะปัญหาหายไปแล้ว ถ้าเกิดอีกค่อยตามร่องรอยกันใหม่

http://www.thaiall.com/blog/admin/4282/
http://www.thaiall.com/blog/burin/3713/
http://www.thaiall.com/blog/burin/3698/
http://www.thaiall.com/blog/burin/3680/

fail to restart ldap
fail to restart ldap

There was a problem sending the command

There was a problem sending the command
There was a problem sending the command
พบข้อความว่า There was a problem sending the command to the program ในโปรแกรม excel 2007 และ 2010 เมื่อ double click บน icon ของ excel file จะต้องใช้วิธี open file ตามปกติจาก menu bar
แก้ไขโดย
1. คลิ๊ก Office button, Excel Options, Advanced
2. คลิ๊ก checkbox หน้าตัวเลือก Ignore Other Applications that use Dynamic Data Exchange (DDE)