งานสัปดาห์หนังสือแห่งชาติ ปี 57(กอเอ๋ย กอ ไก่)

พยายามจะเขียน Blog เรื่องนี้แบบมานานและ แต่ความขี้เกียจเข้าครอบงำ 555 โดยในวันนี้ผมมาเขียนเกี่ยวกับงานหนังสือแหละว่าไปมามีอะไรบ้าง และแนะนำบูธในส่วนที่ผมสนใจ โดยเป็นด้าน Computer กับการลงทุนครับ จริงๆวันนี้ไม่อยากไปหรอก เพราะคนเยอะมว๊ากกก แต่ที่บ้านไฟดับ เลยไม่รู้จะทำอะไรช่วงบ่าย ส่วนช่วงเช้าจัดต้นไม้ตามประสาพ่อบ้าน โดยวันนี้ผมออกจากบ้านประมาน 12.30 แดดร้อนๆ นั่ง 511 ไปลง Terminal 21 หลังจากที่ไม่ได้นั่งรถเมล์มานานมาก (ให้น้องขับรถไปส่งไปรับตลอด 55) สิ่งที่สังเกตุ คือ รถเมล์มีป้ายนี้ด้วยเหรอ แนะนำสถานที่ แต่ที่สงสัย ทำไมโซนปิ่นเกล้าถึงไม่เป็นเซนทรัลปิ่นเกล้าหว่า ? หลังจากนั่งรถเมล์ผ่านยาวนาน ผ่านแยกรถติดหลายแยกประมาณ 2 ชั่วโมงกว่าๆ (อย่างกะนั่งรถจากกรุงเทพฯ ไปนครนายกเลย) ผมมาถึง Landmark ที่คุ้นเคยอย่าง Terminal21 จากนั้นมุดดินลงไป MRT จากสถานีสุขุมวิทไป ศูนย์ประชุมแห่งชาติสิริกิติ์ 16 บาทถ้วนครับ สิ่งที่ผมสังเกตุได้ คือ ตัวสถานีมีการนำโฆษณามาติดตั้งแล้ว อนาคตหุ้น BMCL โตแน่ๆ (แอบถืออยู่ อิอิ) พอออกจากขบวนรถไฟเนี่ยแหละนรกเลย คนเต็มไปหมด (จริงๆทางสถานีควรจัดการ Flow การเดินให้ดีกว่านะ เพราะมีบางช่วงที่มีการเดินสวนกันทำให้ การจราจรติดขัด หลังจากลงทะเบียนเข้างานเรียบร้อย ผมได้เดินสำรวจงานเลย โดยเลือกหนังสือที่สนใจ และ Mark เอาไว้รอวันศุกร์หน้าจะมาไล่ซื้อ ถ้างบพอหมดนะ บูธแรกของตลาดหลักทรัพย์ อยู่ตรงข้ามกับซุ้มลงทะเบียนเลยครับ แว๊บไปดูเจอหนังสือเล่มนี้ครับ ไม่รู้มันเกี่ยวกับงานที่ทำปะ แต่แพงมาก 555 ดูและวางก่อน บูธ L62 CU-TEP มัดรวม 660 บาท แพลนเอาไว้เตรียมสอบปริญญาโทปีหน้า Finance Basics Secrets  ราคา 150 ลด -15% อันนี้เท่าที่อ่านดูเป็นการเปลี่ยนชื่อกับวิธีการนำเสนอนะ มองเหมือนกับพวกบัญชีแหละ แต่มีการจัดเรียงเนื้อหาให้ง่ายขึ้นครับ บูธ D10 จาก 1clickidea.com อันนี้น่าสนใจครับ โดยของร้านนี้จุดเด่น คือ หนังสือเกี่ยวกับการสร้าง…

[DB2] CALL SYSPROC.ADMIN_CMD( ‘REORG TABLE xxxx’ ) ?

IBM DB2

ทำงานเกี่ยวกับ DB2 จริงๆจังๆซักพักใหญ่แล้ว เคยสงสัยไหมว่าเวลาทำ SQL Script เราจะเจอคำสั่งชุดนึงที่มักจะอยู่ในลำดับท้ายๆ ของไฟล์ SQL Script นั้น คือ แล้ววันนี้เป็นโอกาสอันที่ ที่ผมมีเวลาว่าง เพราะเป็นวันหยุด 555 เดี๋ยวผมมาอธิบายกันว่าเจ้าคำสั่ง CALL SYSPROC.ADMIN_CMD( ‘REORG TABLE xxxx’ ) มันมันมีไว้ทำอะไรกัน ?โดยเราจะมองที่ละส่วนกัน เผื่อคนที่ยังไม่รู้ครับ ส่วนที่ 1: CALL SYSPROC.ADMIN_CMD คือ การเรียกใช้ Store procedure ของระบบ ซึ่งอยู่ใน Schema SYSPROC โดยเจ้า ADMIN_CMD คือ Procudure ที่เอาไว้รันคำสั่งในในระดับ administrative commands เพื่อจัดการกับ Database ของเราครับ โดยสิ่งที่เราสามารถจัดการได้ผ่านเจ้า ADMIN_CMD ได้แก่ RUNSTATS, PRUNE HISTORY/LOGFILE หรือ REORG INDEXES/TABLE เป็นต้นครับ ตัวอย่างการใช้งาน ส่วนความสามารถอื่นๆ สามารถดูเพิ่มเติมได้ที่นี้ครับ ADMIN_CMD procedure – Run administrative commands ส่วนที่ 2: ‘REORG TABLE xxxx’ คือ Command String หรือเป็นคำสั่งที่เราส่งให้ ADMIN_CMD ไปจัดการให้ โดยคำสั่งที่เราสนใจในตอนนี้ คือ ‘REORG TABLE xxxx’ ครับมากันที่คำสั่ง REORG มีหน้าที่โดยรวมคล้ายกับการ Defragment ใน Harddisk โดยมีการเคลียร์พื้นที่ว่างใน Page จัดการข้อมูล ถ้าเราเพิ่มคำสั่ง เมื่อไหร่เราถึงต้องใช้คำสั่งนี้หละ เวลาใช้งานจริงต้องเขียนอย่างไร ? แล้วเราจะรู้ได้อย่างไรว่า Table ของเรา ต้องมีการ…

[DB2] DB21007E seen when DB2 is accessing a text file

IBM DB2

จริงๆ ฺBlog อันนี้เป็นสาเหตุของ Blog นี้ครับ [PowerShell] Convert Unicode Text or SQL File To ASCII โดยสาเหตุของ Error Message นี้เกิดจากตัว line termination (ตัวบอกการขึ้นบรรทัดใหม่) ไม่ได้ใช้ตามมาตรฐาน ANSI ซึ่งจะใช้ (Carriage Return, ตัวย่อ CR, ASCII Code =13) เมื่อเรานำไฟล์จาก Windows ไปใช้งานบน Unix หรือ Linux นะครับ โดยการแก้ไขนั้นง่ายนิดเดียวครับ Reference

[DB2] WORKING WITH ISOLATION LEVEL

IBM DB2

ดองไว้นานมาสำหรับ Blog นี้ 555 เพราะตอนแรกได้ทำ Research เพิ่มคิวการทำงาน โดยใช้ Database เป็นตัวเก็บคิว ซึ่งปัญหาที่จะพบ คือ เราต้องควบคุมการดึงข้อมูลใน Step ต่างๆ เพื่อไม่ให้เกิดปัญหาหลุคคิวได้ โดยทางฝั่ง SQL Server มีคำสั่งใช้งานตรงตัวอยู่แล้ว อาจจะมีฟีเจอร์เพิ่มขึ้นมาจากที่กำหนดไว้ใน ANSI บ้าง ซึ่งผมมาเขียนสรุปใน Blog ถัดไปครับ คราวนี้เรามาลองดูที่พระเอกของเราบ้าง อย่าง DB2 เนี่ย ว่าเราใช้งาน ISOLATION LEVEL กันอย่างไรครับ ก่อนอื่น ผมขอสรุปเรื่อง ISOLATION LEVEL แบบรวบรัดสุดๆก่อนนะ ว่ามันมีอะไรบ้าง และทำไมต้องมีนะISOLATION LEVEL คือ ระดับการจัดการของข้อมูล เพื่อให้ Transaction นั้นถูกต้องโดยไอ้เจ้า ISOLATION LEVEL ตามมาตรฐาน ANSI ได้กำหนดไว้ว่าทุกๆ DBMS ต้องมีอย่างน้อย 4 อย่าง ได้แก่ ANSI Isolation Level DB2 Isolation Level READ UNCOMMITTED Uncommitted read (UR) READ COMMITTED (default) Cursor stability (CS) REPEATABLE READ Read stability (RS) SERIALIZABLE Repeatable read (RR) หมายเหตุ: ตัว DB2 ตัว DBMS default เป็น Cursor stability ครับ ตัวอย่างการใช้งานบ้าง Reference

[PowerShell] Convert Unicode Text or SQL File To ASCII

powershell

สำหรับที่มาของ Script ชุดนี้นี่ทำ Team วุ่นวายเลย เรื่องก็มีอยู่ว่าเวลาพัฒนาระบบต่างๆมันมีในส่วนของ Source Code และ SQL Script ซึ่งต้องนำไป Run ใน Enviromemt ของ Test, Dev หรือ Production ก็ตาม แต่เพราะความสะเพร่าของผมเองที่ Save File Script เป็นแบบ Unicode เกิดปัญหาขึ้นเมื่อนำไป Run บน Database Server DB2 บนเครือง AIX จะเกิด Error Message ดังนี้ Error DB21007E seen when DB2 is accessing a text file เพราะ End of File ของแต่ละ Encoding ในระบบปฏิบัติการ(Windows, Linux หรือ Unix) แต่ละแบบนั้นไม่เหมือนกัน ทางแก้ คือ เปลี่ยนมาใช้ Encoding ที่เป็น ANSI เพราะเป็นมาตรฐานกลางครับ แต่งานงานนึง มันคงไม่ได้มี Script แค่อันเดียว ผมเลยทำ PowerShell Script สำหรับแปลง Encoding ของ Text File หรือ SQL File จาก Unicode ไปเป็น ANSI ครับ (จริงๆอยากเขียนเป็น Unix Shell เพราะไม่ได้ทำนานและ แต่ขึ้เกียจลง VM 55) ต่อมาเราก็มาทดสอบกัน ขั้นแรก: เตรียมไฟล์ที่มี Encoding Unicode ดังรูป…

[PowerShell] Integrated PowerShell with C# Application

powershell

มาต่อบทความการใช้ C# กับ PowerShell สักที หลังจากไปลองสร้าง Winform Application จาก PowerShell เพียวๆกันแล้ว โดยคราวนี้ เราใช้โจทย์ของคราวที่แล้วแหละ โดยมีการออกแบบหน้าจอ ดังรูป จัดการ Add Code Event ต่างๆให้เรียบร้อย (อันนี้ผมใช้ Pattern MVP นะครับ เผื่อคนโหลดไปแกะ Code)จากนั้น เราต้องทำให้ C# รู้จักกับ PowerShell กันก่อน โดยการ Add Reference DLL เข้ามาใน Project ครับ โดยเราจะ Add DLL System.Management.Automation แต่ก่อนที่เรา Add DLL เข้ามาใน Project ของเรา ผมอยากให้ตรวจสอบ Version ของ PowerShell ครับ เพราะมันต้องเลือกให้เหมาะกับเวอร์ชัน Target Framework ในของ Project เราด้วยนะครับ โดยผมได้สรุปเป็นข้อมูล ดังนี้ .Net Framework PowerShell .NET Framework 3.5 PowerShell 2.0 .NET Framework 4.0 PowerShell 3.0 .NET Framework 4.5 PowerShell 4.0 เมื่อตรวจสอบเวอร์ชั่นของ DLL และ Target Framework ของ Project เราเรียบร้อยแล้ว เริ่มทำการ Add Reference DLL System.Management.Automation ซึ่งอยู่ใน Path C:\Program Files (x86)\Reference Assemblies\Microsoft\WindowsPowerShell\-เวอร์ชั่น- โดยของผมก็จะเป็น C:\Program Files (x86)\Reference…

[Visual Basic] Run time error 28- Out of stack space

หลายครั้งที่เราเขียนโปรแกรม อาจจะเจอ Error มาบ้าง แต่ Error วันนี้ผมว่าเป็นกรณีศึกษาที่ดีสำหรับคนที่เขียน VBA กับ VB6 นะครับ โดยเฉพาะคนที่ชอบเขียนโปรแกรม โดยอาศัย Event ต่างๆนะครับ ระวังจะทำให้เกิด Recursive ของ Event ทำให้เกิด Run time error 28- Out of stack space ดังตัวอย่างต่อไปนี้ ถ้ามีโจทย์ หรือ Business ที่ว่า ถ้า Check Box A ถูกติ๊กแล้ว  Check Box B ต้องไม่ติ๊ก เมื่อเรา Assign ค่าให้กับ Check Box จะทำให้เกิด Event Check ขึ้นนะครับ ทำให้โปรแกรมของเราเกิด Error นะครับ ท้าย่ที่สุดต้องมากำหนด Flag ดัก เพื่อมากันเรื่องนี้ครับ    

ปิด “Security and NQ Mobile” ไม่ให้มีแถบแสดงเตือนมากดให้เสียตังค์อีก

หลายคนคงได้อัพ ROM Kitkat ของ Lenovo กันแล้ว อย่างใน Blog ที่แล้วผมได้มีประเด็นอยู่ คือ ตัว Antivirus ที่ให้มา 2 ตัว ได้แก่  Security and NQ Mobile กับ Norton Mobile (ฝังมากับ ROM เลย เอาออกได้ แต่ยากครับ) ซึ่งแต่ละตัวมี Pop up ให้เรากด เพิ่ม Load โปรแกรม หรือ Update ข้อมูล ทำให้เราอาจจะต้องเสียตังค์ฟรี ทำให้เครื่องช้า และเปลืองแบตด้วย วันนี้ผมนำเสนอวิธีปิดการทำงานของโปรแกรม เพื่อไม่ให้มีการแจ้งเตือนมากกวนใจเราอีกนะครับ ดังนี้ครับ วิธีแรกถอนรากถอนโคน โดยการ Root ครับ (แต่ ROM Version ใหม่ ถ้าเรา Root แล้ว เวลา Update ระบบมันจะลบข้อมูลเดิมออกไปด้วย ตรงนี้ โดยวิธีนี้ผมไม่ขอกล่าวถึงนะครับ ลองไปหาวิธีดูครับ โดยมี App Framaroot  กดปุ่มเดียวจบครับ แต่ไม่แน่ใจว่ารองรับ ROM Version ใหม่ๆ หรือยัง (ณ วันที่ 28-09-2014  ROM ของ Lenovo เป็น Version ล่าสุดจะเป็น P780_ROW_S226_140919) ครับ วิธีที่สองปิดการทำงานของโปรแกรมพอ (อาจจะมีบาง Service บางส่วนที่ยังทำงานอยู่ แต่อย่างน้อยก็ไม่มีหน้าจอ หลอกให้เรากดไปแล้วเสียเงินครับ) โดยผมลองปิดตัว Security and NQ Mobile ครับ ตามมากันได้เลย เ้ข้าไปที่ “Setting” (รูปฟันเฟือง) เลื่อนลงมาล่างสุด เลือกเมนู  “แอปพลิเคชั่น”หรือ…

Economy of Scale กับ Return to Scale

จริงๆ ผมไม่ค่อยรู้ความหมายของคำนี้หรอก 55 แต่พอลงทุนให้หุ้น ผมต้องหาความรู้เพิ่มเติมเหมือนกัน เพราะ เราจะมั่นใจว่าเงินมันทำงานแทนเราได้ เราต้องมีความรู้ก่อน เพื่อจัดสรรให้เงินมันทำหน้าที่ของมันได้เหมาะสม วันนี้มีศัพท์สองคำมาแนะนำกับนะครับ คือ Economy of Scale กับ Return to Scale ว่านักลงทุนอย่างแรก ควรรู้ไปเพื่ออะไร มันมีผลอะไรกับหุ้นของเราบ้าง เริ่มต้นกันที่ Economy of Scale Economy of Scale แปลตรงตัว คือ การประหยัดของขนาด ถ้าพูดง่ายๆ คือ การลดต้นทุนต่อหน่วยให้ลดลง โดยการขยายกำลังการผลิตให้มากขึ้น ถึงตอนนี้หลายๆคนอาจจะลงสงสัยว่า ทำไมผลิตเพิ่ม แล้วต้นทุนถึงต่ำลง เราต้องมองไปที่ค่าใช้จ่ายในการผลิต มันจะส่วนที่เป็นที่คงที่ กับแปรผ้น โดย มาถึงตรงนี้หลายคนอาจะงงนะครับ เดี๋ยวผมยกตัวอย่างให้ง่ายๆ เช่น โรงงานชาเขียว มีเครื่องจักรผลิตชาเขียว 2 เครื่อง ถ้าผลิต ชั่วโมงละ 100 ขวด ต้นทุน 2,000 บาท ทุนขวดละ 20 บาท ถ้าเราผลิดเพิ่มหละเป็น 200 ขวดหละ ทุนลดลงไปเหลือ 10 บาท (ยังไม่รวมค่าวัตถุดิบเข้ามานะครับ) จากตัวอย่างนี้ จะเห็นแล้วค่าใช้จ่ายในส่วนของเครื่องจักรที่เป็น Fix Cost ทำไมต้นทุนที่ได้ถึงถูกลงครับ ถึงตรงนี้แล้ว ผมว่าหลายคนคงคิดว่ามันน่าจะดีนะ ถ้าเราทำให้ทุนมันลดได้ แต่ทำอย่างไร จากตัวอย่างที่ยกไป โรงงานอาจจะซื้อเครื่องจักรเพิ่ม (ถ้าในตลาดหุ้น อาจจะเป็นการขายหุ้นเพิ่มทุน เพื่อเอาเงินเหล่าเม่าไไปหาเรื่องจักรเพิ่ม) หรือปรับ Flow การทำงานแทน จากตอนกลางวันเป็นตอนกลางคืน เพราะ อากาศเย็นกว่าทำให้ไม่ต้องพักเครื่องบ่อยๆ หรือ จัดลำดับการผลิดของแต่ละหน่วยย่อยๆ เมื่อเห็นว่า Economy of Scale มีจุดเด่นอย่างนี้ แล้ว มันจะมีจุดตาย หรือไม่ ? มี ครับ เพราะ…

[PowerShell] Create Winform by PowerShell

หลังจากที่ได้ลองเล่น Powershell มาสักพักแล้ว ผมมี idea ขึ้นมา เนื่องจาก Workshop ที่แล้ว ผมได้ทำบน Console ซึ่งอาจจะไม่สะดวกมากนั้น คราวนี้ผมลองสร้างเป็น Winform เล็กๆขึ้นมาแทนครับ(จริงๆ กะลองกับ C# ก่อน แต่มาเจอการใช้ประยุกต์ใช้งานแบบนี้ เลยลองมาเล่นก่อน 555) มาถึงตรงนี้หลายๆคนอาจะมีคำถาม ผมเลยทำ Q/A สรุปได้เลยครับ Q: Power Shell มีความสามารถในการสร้าง Winform ด้วยเหรอ ?A: มีครับ เนื่องจากตัว PowerShell เองมีพื้นฐานมาจาก .Net Framework ทำให้สามารถเรียกใช้ library ของ Winform ได้ครับ Q: ต้องสร้าง Power Shell จาก Command ตรงๆเลย หรือ ไม่มี Tools ลากวางแบบ Visual Studio ?A: มีครับ โดย Tools ชื่อ Power Shell Studio มีทั้ง Version Community(ฟรี) และ License(เสียตังค์) แต่ในบทความนี้ผมของ Hard Code นะครับ อิอิ ใน Winform ที่ผมเขียนขึ้น จะมี Control ที่จำเป็นต่างๆ ในการรับค่า Parameter ต่างๆ ได้แก่ Textbox กับ MaskTextBox และการแสดงผลนั้น ผมใช้ตัว DataGridView ครับ โดยหน้าตาของโปรแกรมที่ได้มีลักษณะ ดังนี้ หลังจากเห็น Output แล้ว เรามาลองดู Code ที่ละส่วนกัน โดยผมแยกเป็นส่วนของ UI กับ…