วันจันทร์ที่ 5 พฤษภาคม พ.ศ. 2551

การแก้ปัญหา JasperException Cannot convert value '0000-00-00 00:00:00' from column 1 to TIMESTAMP

ปัญหา
org.apache.jasper.JasperException: Cannot convert value '0000-00-00 00:00:00' from column 1 to TIMESTAMP.

สาเหตุ

ในตารางที่โปรแกรมเข้าไปอ่านนั้นนั้นมีคอลัมน์ที่เป็น datetime หรือเป็นชนิดข้อมูลที่สามารถแปลงค่าให้เป็น TIMESTAMP ได้โดยที่ในตารางนั้นมีแถวที่มีค่า '0000-00-00 00:00:00' ในคอลัมน์ดังกล่าว

วิธีการแก้ปัญหา

1) ดูจาก trace ของ exception เพื่อไปที่โค้ดไฟล์ที่มีปัญหา แล้วจะทราบตารางที่มีปัญหาดังกล่าว
2) ดูโครงสร้างในตารางดังกล่าว พิจารณาดูว่าคอลัมน์ไหนมีชนิดข้อมูลที่สามารถแปลงให้เป็น timestamp ได้
3) เข้าไปดูข้อมูลในตารางดังกล่าว แล้วลบแถวที่มีค่า
'0000-00-00 00:00:00' ในคอลัมน์ดังกล่าว

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

การเรียนรู้คำสั่งลีนุกซ์บนระบบปฏิบัติการวินโดวส์

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

ขอยกตัวอย่างคำสั่งที่มีประโยชน์มากเช่น

บ่อยครั้งที่เราต้องการหาไฟล์ที่มี keyword 'Element' ในไฟล์ต่างๆ ที่มีนามสกุล .java ที่อยู่ไดเรกทอรี 'd'
เราสามารถทำได้โดยใช้คำสั่งหลังจากที่เราอยู่ที่ไดเรกทอรี 'd'
grep 'Element' *.java

ซึ่งจะดีกว่าเรามานั่งเปิดอ่านแต่ละ *.java ไฟล์ที่อยู่ในไดเรกทอรี 'd'









หรือเราต้องการจะทราบว่าไดเรกทอรีย่อยไหนใช้พื้นที่ดิสก์มากที่สุด เราสามารถทำได้โดยใช้คำสั่ง
du -s * | sort -n -r

du ย่อมาจาก disk usage
-s เป็นออปชันเพื่อจะบอกให้สรุปรวม (summary)
sort เป็นการจัดเรียงลำดับ
-n เป็นออปชันเพื่อจะบอกใ้ห้เรียงตาำมตัวเลข ไม่ใช่เรียงตามตัวอักษร
-r เป็นออปชันเพื่อจะบอกให้เรียงจากมากไปหาน้อย


วันศุกร์ที่ 25 เมษายน พ.ศ. 2551

พื้นที่โฮมเพจฟรีและทำโฮมเพจง่าย

หลายท่านอาจจะต้องการพื้นที่โฮมเพจฟรี เท่าที่ค้นหาจากเว็บ google และอ่านข้อคิดเห็นของผู้ใช้บริการพื้นที่โฮมเพจฟรี พบว่าหลายคนมีความพอใจในการบริการของ http://www.x10hosting.com/ ส่วนพื้นที่โฮมเพจฟรีซึ่งเว็บไซต์หลายแห่งในเมืองไทยใช้บริการจะอยู่ที่ http://www.icspace.net/

พอได้พื้นที่โฮมเพจฟรีแล้ว หลายท่านก็อาจต้องการมีโฮมเพจของตัวเองโดยที่ไม่ต้องมีความรู้ในการเขียนโปรแกรมเว็บเพจ ซึ่งก็สามารถทำได้โดยการใช้ CMS (Content Management System) ซึ่งมีอยู่หลายตัวที่ฟรี แต่ตัวที่สนับสนุนภาษาไทยดีและเป็นที่นิยมกันมาได้แก่

Joomla (http://www.joomla.org) ส่วนที่สนับสนุนภาษาไทย ดูเพิ่มเติมได้ที่ http://joomlacode.org/gf/project/thai/

Mambo (http://www.mambohub.com/th/)

Drupal (http://drupal.org/) ส่วนที่สนับสนุนภาษาไทย ดูเพิ่มเติมได้ที่
http://drupal.in.th/

แต่ CMS ดังที่ได้กล่าวมาแล้ว ต้องการใช้ฐานข้้อมูล บางองค์กรหรือบางการบริการโฮมเพจอาจไม่ให้บริการฐานข้อมูล ซึ่งเราก็สามารถอาจจะใช้ blog engine ที่ไม่ใช้ฐานข้อมูลเช่น http://www.flatpress.org
อ้างอิงจาก
http://www.blognone.com/topics/mambo

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

การตั้งค่า proxy ใน Eclipse

หากต้องการตั้งค่า proxy ใน Eclipse ซึ่งสามารถทำให้เราพัฒนาโปรเจกต์ที่ดึงมาจาก CVS repository ที่อยู่ที่เซิร์ฟเวอร์อีกแห่งหนึ่งได้ สามารถทำได้โดยใช้ขั้นตอนดังนี้

1. ไปที่เมนู Window แล้วเลือกเมนู Preferences...
2. จากนั้นจะมีหน้าต่าง Preferences ปรากฎขึ้นมาให้เลือกเมนู General แล้วไปที่เมนูย่อย Network Connections
3. จากนั้นให้กรอกค่า proxy setting ทางด้านขวามือของหน้าต่าง แล้วคลิก OK

เว็บรายวิชาของความรู้ต่างๆ ในสาขาวิศวกรรมคอมพิวเตอร์และวิทยาการคอมพิวเตอร์

1. Google Code University

2. Computer Engineering at Khon Kaen University

3. Open Course Ware at Chulalongkorn University

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

การติดตั้ง Glassfish บน Netbeans

หากยังไม่ได้ติดตั้ง Netbeans และต้องการใช้ Netbeans ร่วมกับ Glassfish แนะนำให้ไปที่เว็บ http://download.netbeans.org/netbeans/6.0/final/ แล้วเลือกดาวน์โหลดไฟล์ในช่อง All ซึ่งจะรวม Glassfish และ Netbeans เข้าด้วยกัน

หากมี Netbeans ติดตั้งที่เครื่องอยู่แล้ว ให้ไปที่เว็บ https://glassfish.dev.java.net/public/downloadsindex.html เพื่อดาวน์โหลด Glassfish และทำการติดตั้งเพิ่มเติม

วิธีเริ่มต้นใช้งาน Glassfish สามารถดูได้ที่เว็บ https://glassfish.dev.java.net/downloads/quickstart/index.html

การเป็นวิศวกรที่ดี

หลายคนที่อยากเป็นวิศวกร อาจคิดว่า ถ้าหากเรียนคณะวิศวกรรมศาสตร์และจบด้วยเกรดเฉลี่ยสูงแล้ว ก็จะเป็นวิศวกรที่ดีได้เลย จริงๆ แล้วการเป็นวิศวกรที่ดีนั้น ต้องอาศัยมากกว่าความรู้ที่ได้เรียนมาในมหาวิทยาลัย

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

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

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

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


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

แหล่งข้อมูลอ้างอิง
ฺำฺBeing a Better Enginer

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

สถิติและข้อมูลแรงงานไทยไอทีในปัจจุบัน

หลายคนที่เรียนสาขาวิทยาการคอมพิวเตอร์ วิศวกรรมคอมพิวเตอร์ สารสนเทศ ก็คงจะอยากรู้ว่าจบออกไปจะมีงานไหม งานที่จะให้ทำนั้นส่วนใหญ่จะเป็นงานด้านอะไร จากข่าวของหนังสือพิมพ์กรุงเทพธุรกิจ แนะสร้าง "แรงจูงใจ" บุคลากรไอที ลดปัญหาขาดคน เมื่อวันพุธที่ 9 เมษายน 2551 นั้นมีรายงานว่า

ขนาดตลาดซอฟต์แวร์มูลค่ากว่า 5.7 หมื่นล้านบาท และบริการไอทีอีกกว่า 2 หมื่นล้านบาท

นอกจากนี้ นายจำรัส สว่างสมุทร นายกสมาคมอุตสาหกรรมเทคโนโลยีสารสนเทศไทย (เอทีซีไอ) กล่าวว่า ปัจจุบันค่าแรงของผู้พัฒนาซอฟต์แวร์ไทยไม่ได้แตกต่าง หรือสูงกว่าโปรแกรมเมอร์ที่อยู่ตามเมืองใหญ่ของอินเดียหรือจีน

ทั้งนี้ จากการสำรวจผู้ประกอบการธุรกิจกว่า 1.7 พันราย คาดการณ์ว่าไทยมีแรงงานไอทีอยู่กว่า 4 หมื่นคน และปี 2551 คาดว่าจะมีความต้องการแรงงานเทคนิคอีก 6 พันคน โดยตำแหน่งที่ต้องการสูงสุด ได้แก่

  • กลุ่มนักพัฒนาและทดสอบซอฟต์แวร์ 53.2%

  • วิศวกรซอฟต์แวร์ /นักวิเคราะห์และนักสถาปัตยกรรมระบบ 22.6%

  • ผู้บริหารระบบดาต้าเบส 3.7%

  • ผู้จัดการไอที/ซอฟต์แวร์ 2.8%

  • ที่ปรึกษาไอที 1.8%

  • นักวิเคราะห์ธุรกิจ 1.4%

  • พรีเซลเทคโนโลยี 0.8%

  • ส่วนงานเอกสารอื่นๆ 13.8%

    นอกจากนี้ จากผลสำรวจระดับการศึกษาโดยเฉลี่ยของพนักงานเทคนิคในอุตสาหกรรมซอฟต์แวร์ไทย พบว่า

  • 88.6% จบปริญญาตรี

  • ระดับ ปวช./ปวส.มี 8.7%

  • ปริญญาโท 2.5%

  • ปริญญาเอก 0.2%



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

บุคลากรด้านซอฟต์แวร์และไอทีที่เป็นที่ต้องการ

จากการที่ได้เข้าร่วมฟังเสวนาเรื่อง "ความต้องการของตลาดแรงงานและอนาคตด้านวิชาชีพของบุคลากรด้านซอฟต์แวร์" โดยผู้พูดเป็นตัวแทนจากบริษัท รอยเตอร์ ซอฟต์แวร์ ประเทศไทย จำกัด บริษัท ไอบีเอ็ม โซลูชั่นส์ ดิลิเวอรี่ จำกดั และบริษัท ไมโครซอฟต์ ประเทศไทย จำกัด ในวันอังคารที่ 11 มีนาคม 2551 เวลา 11:00 น. ณ ห้องหน้าเมือง โรงแรมเจริญธานีปริ๊นเซส จังหวัดขอนแก่น จะขอสรุป

คุณสมบัติของบุคลากรด้านซอฟต์แวร์และไอทีที่เป็นที่ต้องการดังนี้

  • มีความสามารถสูงในการวิเคราะห์และการแก้ปัญหา (High Analytical/Problem Solving Skills)
  • มีความสามารถดีในการสื่อสาร (Solid communication Skills)
  • มีความสามารถในการจัดการการโปรเจกต์ (Project Management Skills)
  • มีจรรยาบรรณในการประกอบชีพ (Work Ethics and Value)
  • มีความรับผิดชอบและทุ่มเทในงานที่ทำ (Accountability and Passion)
  • มีทักษะคอมพิวเตอร์และความสามารถเชิงเทคนิค (Technical Dept & Computer Skills)
  • มีความกระตือรือร้นและแสวงหาโอกาสใหม่ๆ ด้วยตนเอง (Being pro-active and self-motivation)
  • มีความสามารถในการทำงานเป็นทีม (Team Working Skills)
  • มีความคิดสร้างสรรค์ (Being creative: Thinking out of box)
  • มีทักษะในการสื่อสารภาษาอังกฤษ (English Communication Skills)
โดยที่มีท่านหนึ่งได้พูดถึง

ข้อดีของบุคลากรไอทีไทยคือ
  • มีความเห็นอกเห็นใจผู้ร่วมงาน
  • เรียนรู้ไวแต่ต้องบอกให้เรียนรู้
แต่ข้อที่ควรปรับปรุงสำหรับบุคลากรไอทีไทยคือ
  • ควรจะติดตามข่าวคราวทางไอทีสม่ำเสมอ
  • ไม่ควรยึดติดกับเครื่องมือ ไม่ว่าจะเป็น Java หรือ .NET หรือ PHP
  • ควรจะนำเสนอความคิดและผลงานของตนเองอย่างมั่นใจ
  • ควรจะฝึกอ่าน พูด เขียน และฟังภาษาอังกฤษ
  • ควรจะกล้าที่จะถาม
  • ควรจะเรียนรู้และขวนขวายด้วยตนเอง


ลิงก์น่าสนใจที่เกี่ยวข้อง

วันจันทร์ที่ 7 เมษายน พ.ศ. 2551

การใช้ tex ในการเขียนภาษาไทยบน windows

หลายคนที่ใช้ Microsoft Office Word ก็คงรู้สึกว่าอยากมีโปรแกรมเขียนหนังสือหรือบทความที่มันสามารถจะอัปเดตและจัดการส่วนของสารบัญและบรรณานุกรมให้เราโดยอัตโนมัติ เพราะไม่งั้นทุกครั้งที่เนื้อหาเปลี่ยนเราก็ต้องมาจัดเรียงสารบัญและสิ่งที่ เราอ้างอิงใหม่ซึ่งเสียเวลาเป็นอย่างยิ่ง

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

  1. ติดตั้ง MiKTeX 2.7 แบบ "Basic MiKTeX 2.7"
  2. ติตตั้ง Notepad++ 4.8.2

3. เขียน batch ไฟล์เพื่อจะนำไปอ้างอิงถึงต่อไปใน Notepad++ เพื่อให้เราไม่ต้องรันคำสั่งเดิมๆ หลายครั้งโดยสมมุติว่าชื่อไฟล์นี้ว่า blatex.bat และให้บันทึกไฟล์นี้ในไดเรกทอรี "C:\Program Files\MiKTeX 2.7\miktex\bin"

=== ไฟล์ blatex.batch ===
xelatex %1.tex

bibtex %1.tex

xelatex %1.tex

xelatex %1.tex

"C:\Program Files\Adobe\Reader 8.0\Reader\AcroRd32.exe" %1.pdf
=== สิ้นสุดของไฟล์ ===

4. า กนั้นเปิด NotePad++ จากเมนู "Start >> All Programs >> Notepad++ >> Notepad++" แล้วคัดลอกเนื้อหาต่อไปนี้ในไฟล์ opensource-xmldb.tex ใน Notepad++

โดยที่ก่อนอื่นไปที่ เมนู Format และเลือก Encode in UTF-8 ดังแสดงในรูปที่ 1 เพื่อให้ Notepad++ เข้าใจและบันทึกข้อมูลที่เป็นภาษาไทยอย่างถูกต้อง








รูปที่ 1 การตั้งค่า Encode ใน UTF-8 ใน Notepad++

=== ไฟล์ opensource-xmldb.tex ===

\documentclass[12pt,a4paper]{article}
\usepackage{fontspec}
\usepackage{xunicode}
\usepackage{xltxtra}
\defaultfontfeatures{Scale=1.23}
\XeTeXlinebreaklocale "th_TH" %
\newcommand{\thi}{\fontspec[Scale=1.23]{Angsana New}}

% 1.23 เท่าคือจาก 12 pt บน LaTeX ให้เท่ากับ 16pt บน Word

\begin{document}
\title{{\thi การประเมินประสิทธิภาพของระบบการจัดการฐานข้อมูล} XML {\thi แบบโอเพนซอร์ส}}
\author{{\thi ณัฐกานต์ อัมรินทรารักษ์ กานดา สายแก้ว ศิษเฎศ ทองสิมา และ นุวีย์ วิวัฒนวัฒนา}}
\maketitle
\bibliographystyle{amsalpha}

\section{Introduction}
{\thi จากคุณสมบัติของภาษา} XML\cite{w3c:xml} {\thi ที่มีความยืดหยุ่น สามารถออกแบบรูปแบบข้อมูลที่เป็นชื่ออิลิเมนต์และแอตทริบิวต์ตลอดจนโครงสร้า ง
ของข้อมูลได้ และการที่ไม่ขึ้นอยู่กับแพลตฟอร์มใดแพลตฟอร์มหนึ่งทำให้} XML {\thi ถูกนำมาใช้งานอย่างแพร่หลาย
แต่ว่าการจัดการกับข้อมูลที่อยู่ในรูปแบบ} XML {\thi นั้นยังมีความยุ่งยาก จึงมีผู้พัฒนา} Native XML DBMS {\thi
ที่ช่วยทำหน้าที่ในการจัดเก็บและจัดการข้อมูลประเภท} XML {\thi เพื่อเพิ่มประสิทธิภาพในการจัดการข้อมูล}
XML {\thi ซึ่งมีโครงสร้างข้อมูลในรูปแบบต้นไม้ เพราะหากใช้} Relational DBMS
{\thi จะต้องเสียเวลาการแปลงรูปแบบข้อมูลให้เป็นตารางอีกทั้งใช้เวลามากในการหาความสัมพันธ์ระหว่างโหนดต่าง ๆ
ดังนั้นการเลือกใช้ฐานข้อมูลที่เหมาะสมกับรูปแบบข้อมูลและการใช้งานจึง
มีความสำคัญอย่างยิ่งต่อประสิทธิภาพของการทำงาน}
\bibliography{ref}
\end{document}

=== สิ้นสุดของไฟล์ ===

TeX จะเก็บแหล่งข้อมูลอ้างอิงในไฟล์นามสกุล *.bib ในที่นี้เราจะบันทึกไฟล์เป็น ref.bib ซึ่งทำให้เมื่อเราอ้างอิงถึงโดยใช้ \bibliography เราก็จะอ้างอิงถึงชื่อนี้เช่นเดียวกัน ในตัวอย่างนี้เนื้อหาของไฟล์ ref.bib จะมีดังนี้

=== ไฟล์ ref.bib ===

@misc{w3c:xml,
author = "W3C",
title = "Extensible Markup Language (XML)",
howpublished = "http://www.w3.org/XML/",
year = "2008"
}

=== สิ้นสุดของไฟล์ ===

5. จากนั้นคลิกที่เมนู "Run >> Run ..." แล้วพิมพ์ "C:\Program Files\MiKTeX 2.7\miktex\bin\blatex.bat" "$(NAME_PART)" เข้าไปในช่องดังแสดงในรูปที่ 2 โดยที่ $(NAME_PART) เป็น environment variable ของ Notepad++ [2]








รูปที่ 2 การเรียกใช้โปรแกรมภายนอกจาก Notepad++


จากนั้นก็ใส่ Shortcut ที่เราต้องการในการรันคำสั่งดังกล่าวดังแสดงในรูปที่ 3









รูปที่ 3 การระบุชื่อและุ Shortcut สำหรับคำสั่งที่เราสร้างขึ้นมา


ถ้าหากทำทุกอย่างสำเร็จเรียบร้อยดี ก็จะได้รูปที่ 4









รูปที่ 4 ไฟล์ PDF ที่ได้จากการทำขั้นตอนต่างๆ


อ้างอิง

[1] MiKTeX 2.7 (XeTeX) with Thai

http://thailatex.wordpress.com/miktex-27-xetex-with-thai/

[2] Run external tools

http://notepad-plus.sourceforge.net/uk/run-HOWTO.php