Technical Talk หัวข้อ Open Source: Smart Computer Lab

 ได้ไปร่วมงาน WUNCA ครั้งที่ 33 ที่จัดที่จุฬาลงกรณ์มหาวิทยาลัยเมื่อ 13-15 กรกฎาคม 2559 และได้บรรยายในส่วน Technical Talk หัวข้อ Open Source: Smart Computer Lab จึงอยากนำมาเล่าสู่เพื่อน ๆ ฟัง เผื่อว่าเพื่อน ๆ จะช่วยแนะนำบอกต่อว่า มีระบบจัดการห้องบริการคอมพิวเตอร์ที่ดีน่าใช้ชื่อ PSU12-Sritrang Server เอกสารประกอบการบรรยาย   Link to Youtube video วิดีโอชุดแนะนำ Open Source: Smart Computer Lab Short URL: https://goo.gl/1ly7c1 วิดีโอชุดแนะนำการติดตั้งและใช้งาน Server สำหรับทำ Cloning PC และ Control PC Short URL: https://goo.gl/SLheTL   แผ่นพับแนะนำ PSU12-Sritrang Server สำหรับห้องบริการคอมพิวเตอร์ เพื่อบอกว่าระบบนี้ทำอะไรได้บ้าง คลิกเปิดอ่านแผ่นพับ   หวังว่าคงจะได้รับข่าวดีนะครับ ขอบคุณครับ  

Read More »

เชื่อมต่อ GitHub Repository ด้วย Visual Studio 2015

ในการพัฒนาแอปพลิเคชันหรือระบบงานหนึ่งขึ้นมา การจัดการ File source code ไม่ว่าจะเป็นการสร้าง การแก้ไข การควบคุม file version ต่างๆ ถือเป็นเรื่องสำคัญ ซึ่งในบทความนี้นำเสนอการใช้งาน Visual Studio 2015 ในการเชื่อมต่อไปยัง GitHub Server Git คือ Version Control ตัวหนึ่ง มีหน้าที่ในการจัดเก็บการเปลี่ยนแปลงของ file source code มีการ backup code ให้เรา สามารถที่จะเรียกดูหรือย้อนกลับไปดูเวอร์ชั่นต่างๆของ project เรา รวมถึงสามารถ track ได้ว่าไฟล์นั้นๆใครเป็นคนเพิ่มหรือแก้ไข ถูกสร้างโดยใคร ถูกปรับปรุงโดยใคร GitHub คือ web open source ที่ให้บริการพื้นที่จัดเก็บ source code ของ project ที่เราได้พัฒนา โดยมีระบบควบคุม (version control) แบบ Git ซึ่งทำให้การพัฒนา project ต่างๆ สามารถแชร์ file source code ได้ง่ายขึ้น   เครื่องมือที่ใช้ในการเชื่อมต่อ GitHub Repository ด้วย Visual Studio 2015 Microsoft Visual Studio 2015 GitHub Extension for Visual Studio สามารถ download ได้จาก link ของ github โดยตรง >> Download Now  Account ที่ใช้ในการเข้าถึง web GitHub   ขั้นตอนการเชื่อมต่อ GitHub Repository ด้วย Visual Studio 2015 1.ติดตั้ง GitHub Extension for Visual Studio ที่ได้ดาวน์โหลดจากลิงค์ข้างบน 2. เมื่อติดตั้งเสร็จจะขึ้นดังรูป 3.เปิด Visual Studio 2015 ขึ้นมา ไปยังแท็บ Team Explorer แล้วกด Manage Connections ที่ไอคอนรูปปลั๊ก ดังรูป 4.ที่เมนู GitHub ให้คลิก Login 5.กรอกข้อมูล GitHub Account ที่จะเชื่อมต่อ แล้วกดปุ่ม Login 6.เมื่อ Login สำเร็จ จะแสดง GitHub repository ทั้งบน GitHub server และ repository บนเครื่อง local ของเราเองดังรูป 7.เข้าไปที่ https://github.com/ แล้ว Login ด้วย GitHub Account ของเราแล้วไป tab>> Repository เพื่อสร้าง Repository ที่จะเก็บ Project ที่เราต้องการจะเพิ่มเข้าไปจาก Visual Studio โดยกรอก repository name และกดปุ่ม Create repository 8. เราจะได้ repository เปล่าๆ ที่เราสร้างขึ้นดังรูป 9. เปิด project ที่ต้องการเพิ่มเข้า repository ขึ้นมา คลิกขวาที่ solution เลือก add solution to source control ดังรูป 10.จะปรากฎหน้าต่างให้เราเลือก Source Control ที่เราเลือก Git แล้วกดปุ่ม OK   11.ให้เรากรอก Commit Message

Read More »

Oracle Database 12CR1 monitoring with MRTG

OS: Oracle Enterprise Linux  7.2  (CentOS 7.2) วิธีติดตั้ง MRTG สามารถติดตั้งได้โดยสามารถดูคู่มือที่ ติดตั้ง mrtg บน ubuntu อาจไม่เหมือนกันแต่สามารถทำได้ทำนองเดียวกัน กราฟสำหรับ Idle CPU and Load average, CPU Time spent waiting for IO, Traffic Analysis for eth0, TCP Current Establish สามารถใช้ script เดียวกับลิงค์ในข้อ ๒ ได้เลย สร้างแฟ้ม /etc/mrtg/get-memory.sh มีข้อความว่า #!/bin/bash FREE=$(free |grep “Mem:”|awk ‘{print $7}’) SWAP=$(free |grep “Swap:”|awk ‘{print $3}’) TIME=$(uptime) echo “${FREE}” echo “${SWAP}” echo “$TIME” hostname  สร้างแฟ้ม /etc/mrtg/myhost-memory.cfg มีข้อความว่า WorkDir: /var/www/mrtg/myhost Target[myhost-mem]:`/etc/mrtg/get-memory.sh` MaxBytes[myhost-mem]: 20000000000 Title[myhost-mem]: Free Memory and Swap Used PageTop[myhost-mem]: <H1>Free Memory and Swap Used</H1> ShortLegend[myhost-mem]: bytes YLegend[myhost-mem]: bytes LegendI[myhost-mem]:  Free Memory: LegendO[myhost-mem]: Swap Used: Legend1[myhost-mem]: Free memory, in bytes Legend2[myhost-mem]: Swap Used, in bytes Options[myhost-mem]: gauge, nopercent, growrightทดสอบสร้างภาพต้นแบบด้วยคำสั่ง env LANG=C /usr/bin/mrtg/myhost-memory.cfgปรับปรุงแฟ้ม index.html ด้วยคำสั่ง indexmaker –column=2 –output=/var/www/mrtg/myhost/index.html /etc/mrtg/myhost-cpu.cfg /etc/mrtg/myhost-cpu-io.cfg /etc/mrtg/myhost-speed-eth0.cfg /etc/mrtg/myhost-tcpestab.cfg /etc/mrtg/myhost-memory.cfg โฟลเดอร์ที่ต้องเฝ้าระวังได้แก่ /u02/app/oracle/adump, /u02/app/oracle/diag/rdbms/regist/regist/alert, /u02/app/oracle/rdbms_trace ซึ่งเป็นโฟลเดอร์สำหรับเก็บ Log ไฟล์ต่างๆ ซึ่งอาจมีขนาดเพิ่มขึ้นจนระบบไม่สามารถให้บริการได้ และโฟลเดอร์ /u03 เป็นโฟลเดอร์ที่ใช้เก็บ archive log (ในกรณีที่ฐานข้อมูลเปิด archive log mode) สร้างแฟ้ม /etc/mrtg/get-diskfree-misc1.sh มีข้อความว่า #!/bin/bash adump=$(du -sm /u02/app/oracle/adump|awk ‘{ print $1 }’) free=$(df -m /u02|grep u02|awk ‘{ print $4 }’) TEMP=$(uptime|grep -o “load average.*”|awk ‘{print $3}’|cut -d’,’ -f 1) LOAD=$(echo “${TEMP:-0} * 100″|bc|cut -d’.’ -f 1) TIME=$(uptime) echo “${adump}” echo “${free}” echo “$TIME” hostname สร้างแฟ้ม /etc/mrtg/myhost-diskfree-misc1.cfg มีข้อความว่า WorkDir: /var/www/mrtg/myhost Target[myhost-misc1]:`/etc/mrtg/get-diskfree-misc1.sh` MaxBytes[myhost-misc1]: 20000000000 Title[myhost-misc1]: Free disk space and disk Used of /u02/app/oracle/adump PageTop[myhost-misc1]: Free disk space and

Read More »

เล่าเรื่อง KM การใช้งานโอเพนซอร์สซอฟต์แวร์ ตอน การทำวิดีโอสื่อการสอนง่าย ๆ

มีเพื่อน ๆ มาร่วมแลกเปลี่ยนเรียนรู้ ทั้งที่เป็น ผู้ดูแลระบบ และ อาจารย์ที่ให้ความสนใจ จำนวน 20 คน ผู้นำในการแลกเปลี่ยนฯในครั้งนี้คือ คุณคณกรณ์ หอศิริธรรม ศูนย์คอมพิวเตอร์ ม.อ. ได้นำความรู้จากการปฏิบัติจริงมาถ่ายทอดอย่างเป็นขั้นเป็นตอน เริ่มด้วยแนะนำการบันทึกวิดีโอด้วย Hangouts on Air ผู้เรียนทุกคนใช้ PSU GAFE (Google Apps For Education) account ซึ่งก็คือ PSU Email ที่ใช้อยู่และได้ผ่านขั้นตอน Password Setting (https://webmail.psu.ac.th/src/resetpassword.html) ในหน้าเว็บ https://webmail.psu.ac.th/src/login.php แล้ว แต่อาจใช้ gmail account ที่มีอยู่ก็ได้ โดยเริ่มต้นที่ไอคอนรูป Google+ เมื่อมีไฟล์ presentation พร้อม (เช่น Microsoft Powerpoint เป็นต้น) ก็ทำการ share เข้ามาใน hangouts on air ซึ่งเลือกได้ว่าจะแชร์ทั้งหน้าจอหรือเฉพาะ presentation ที่เตรียมไว้ แล้วทำการเริ่มบันทึกวิดีโอ เมื่อเสร็จก็ไปตัดต่อไฟล์บน youtube สนุกมาก ง่ายด้วย ถัดไปก็แนะนำ CamStudio Screen Recorder ให้เอาจาก http://sourceforge.net/projects/camstudio/ แต่ให้ระมัดระวังอย่าคลิกที่ปุ่มสีเขียว Download แต่ให้คลิก hyperlink ที่เขียนว่า Browse All Files ข้างใต้ ซึ่งจะเป็นไฟล์ติดตั้งที่ปลอดจาก Adware ครับ CamStudio นี้ก็เอาไว้ใช้บันทึกหน้าจอที่เราจะบันทึกวิดีโอ ซึ่งเลือกได้เช่นกันว่าจะบันทึกเฉพาะบริเวณใด หรือ ทั้งหน้าจอ เมื่อทำการ Save จะได้ไฟล์ที่มีความคมชัดสูง ไฟล์ชนิด .avi ขนาดค่อนข้างใหญ่ อย่าบันทึกวิดีโอนานเกินไป เมื่อได้ไฟล์ชนิด .avi มาแล้ว เราก็นำไฟล์ไปผ่านกระบวนการตัดต่อด้วยโปรแกรม Windows Movie Maker ซึ่งติดตั้งจากที่นี่ Windows Movie Maker 2012 http://windows.microsoft.com/en-us/windows/get-movie-maker-download เมื่อตัดต่อ เพิ่มเสียงเพลง เพิ่มเสียงคำบรรยาย เพิ่มข้อความคำบรรยาย เพิ่มหน้านำ เพิ่มหน้าจบ เสร็จ ก็มีตัวเลือกให้อัปโหลด youtube ได้เลย สุดท้าย เราก็ได้เรียนรู้โปรแกม Screen Capture ที่น่าใช้มากทีเดียว ชื่อ Greenshot – a free screenshot tool optimized for productivity http://getgreenshot.org/ ใช้งานแทน Snipping Tools ของ Windows ได้ดีกว่า และใช้งานแทน Snagit ที่ต้องจ่ายค่าใช้งานซอฟต์แวร์ได้ โดยสรุปคือ เราสามารถทำการบันทึกเป็นวิดีโอได้ด้วยโปรแกรม Hangouts on Air จะได้ไฟล์เก็บอยู่ที่ youtube ทันทีแล้วค่อยดาวน์โหลดลงมาตัดต่อก็ได้ หรือ ตัดต่อด้วย Tools บน youtube ก็ได้ เราสามารถเลือกอีกโปรแกรมที่เป็น Client รันบน Windows คือ CamStudio แล้วนำไปตัดต่อด้วย Windows Movie Maker จนเสร็จ แล้วจึง upload ขึ้นบน youtube

Read More »

สร้างเอกสาร PDF ด้วย iTextSharp

ที่มา บ่อยครั้งที่ในชีวิตของโปรแกรมเมอร์จะต้องพบกับความต้องการของลูกค้าที่อยากได้รายงานหรือเอกสารที่สามารถสร้างได้จากระบบ แน่นอนว่าประเภทเอกสารที่ต้องการย่อมมี PDF บรรจุไว้แน่นอนเพราะเป็นเอกสารที่นิยมใช้กันอย่างแพร่หลาย ทั้งนี้ เครื่องมือสำหรับการสร้างเอกสารประเภทดังกล่าวมีอยู่มากมาย แต่จุดสำคัญนั้นอยู่ที่การเลือกใช้งานซึ่งย่อมแตกต่างกันไปตามปัจจัยต่าง ๆ เช่นในบทความนี้ ลูกค้าต้องการเอกสารเพื่อพิมพ์เป็น hard copy ไว้ที่หน่วยงาน ยังไม่ถึงขั้นรายงานนะครับ แค่เอกสารบันทึกข้อความ ดังนั้นผู้เขียนจึงไม่เลือกใช้เครื่องมือที่เก่งกาจเช่น Crystal report หรือ Reporting service และทำการค้นหาเครื่องมือที่มีน้ำหนักเบา (เวลาใช้ไม่กินทรัพยากรเยอะ) แต่ตอบสนองความต้องการได้ในขณะนั้น รวมไปถึงการมี documentation ที่ดี เข้าใจง่าย ปฏิบัติตามได้ไม่ยาก ซึ่งสุดท้ายก็มาเจอกับเครื่องมือที่ชื่อ iTextSharp คุณสมบัติของเครื่องมือ iTextSharp เป็นผลงานของ iText ซึ่งทำมาเพื่อการสร้างเอกสาร PDF บน C# platform โดยเฉพาะ ในขณะเดียวกันก็มีเครื่องมือแบบเดียวกันสำหรับ platform อื่น ๆ ด้วย เราจึงจะได้เห็นตัวอย่างใน documentation ของเขาเป็นภาษา Java ความสามารถของ iTextSharp คือการสร้างเอกสาร PDF รวมไปถึงการตัดต่อเอกสารด้วย เช่น การนำเอกสารมารวมกัน การแยกเอกสารออกจากกัน นับว่าเป็นเครื่องมือที่ครบเครื่องทีเดียวสำหรับจุดประสงค์หลัก ๆ ของเรา แต่ความสามารถอื่น ๆ ก็ยังมีครับแต่ผู้เขียนยังไม่ได้ต้องการใช้งานความสามารถนั้นจริง ๆ จึงยังไม่ได้นำเสนอในบทความนี้ การใช้งานเครื่องมือนี้จะต้องใช้การเขียนโปรแกรม 100% ครับหรือเรียกเป็นภาษาอังกฤษว่า Programmatically ซึ่งยุ่งยากพอควรทีเดียวโดยเฉพาะการจัดวางตำแหน่งของแต่ละส่วน พูดได้ว่าจะต้องจินตนาการหรือร่างแบบลงบนกระดาษเลยทีเดียว ทั้งนี้ทั้งนั้นนี่ก็เป็นข้อดีข้อหนึ่งสำหรับคนชอบเขียนโปรแกรมเพราะเห็นกระบวนการชัดเจน (ไม่ค่อยสะดวกแต่สนุกดี) ทดลองใช้ ติดตั้งโปรแกรม ก่อนอื่นเลยก็ต้อง download library มาก่อนครับ (Link)การติดตั้งนั้นไม่ยาก แค่ reference ไปหา dll ที่เค้าให้มาก็พอ ไฟล์ที่ได้มามีทั้งหมด 3 ชุดครับคือ itextsharp-dll-core itextsharp-dll-pdfa itextsharp-dll-xtra ทั้งหมดนี้ทำหน้าที่แตกต่างกันครับ สำหรับการสร้าง PDF เราใช้แค่ตัว itextsharp-dll-core ก็พอ องค์ประกอบพื้นฐาน องค์ประกอบพื้นฐานของ itextsharp นั้นมีหลายตัว แต่ตัวที่เพียงพอสำหรับความต้องการของผู้เขียนในตอนนี้มีดังนี้ครับ Chunk เป็นองค์ประกอบสำหรับ “คำ” Phrase คือ “ประโยค” ซึ่งประกอบด้วยหลาย Chunk Paragraph คือ “ย่อหน้า” ซึ่งประกอบด้วยหลาย phrase และ chunk PdfPCell คือ cell ในตาราง PdfPTable คือ ตารางประกอบด้วยหลาย PdfPCell iTextSharp.text.Image คือรูปภาพ การกำหนด font และการเพิ่ม font iTextSharp นั้นสามารถเพิ่ม font ได้ครับ โดยการทำตามขั้นตอนดังนี้: BaseFont bf_bold = BaseFont.CreateFont(HttpContext.Current.Server.MapPath(“~/Regist/Theme/fonts/THSarabunNewBold.ttf”), BaseFont.IDENTITY_H, BaseFont.EMBEDDED); เท่านี้เราก็จะมี font แบบที่เราอยากได้ไว้ใช้งานในเอกสารครับ หลังจากนั้น เราก็สร้างตัวอักษรเพื่อใช้งาน ตามตัวอย่างนี้ครับ // Bold BaseFont bf_bold = BaseFont.CreateFont(HttpContext.Current.Server.MapPath(“~/Regist/Theme/fonts/THSarabunNewBold.ttf”), BaseFont.IDENTITY_H, BaseFont.EMBEDDED); h1 = new Font(bf_bold, 18); bold = new Font(bf_bold, 16); smallBold = new Font(bf_bold, 14); // Normal BaseFont bf_normal = BaseFont.CreateFont(HttpContext.Current.Server.MapPath(“~/Regist/Theme/fonts/THSarabunNew.ttf”), BaseFont.IDENTITY_H, BaseFont.EMBEDDED); normal = new Font(bf_normal, 16); smallNormal = new Font(bf_normal, 14); เริ่มต้นสร้างเอกสาร PDF เมื่อเรากำหนด font ไว้ใช้งานเสร็จแล้ว เราก็สามารถสร้างเอกสารได้เลยครับ  การสร้างเอกสารจะเริ่มจากการกำหนดขนาดเอกสารครับ ตามตัวอย่างนี้   Document

Read More »