ฟาสต์ฟู้ดธุรกิจ

ผมเริ่มมาอ่านหนังสือเล่มนี้จริงตอนปี 3 ปลายๆ ปี 4 ครับ เพราะเจอกับโปรเจคจบ ที่ท้อ เพราะปัญหาเรื่องสมาชิกกลุ่มที่กินแรง เพื่อนเลยเอาหนังสิอเล่มนี้มาให้อ่านกันครับ ตอนนี้ผมทำ List ไว้เผื่อตามล่าในงานหนังสือ พรุ่งนี้ หนังสือชุด ฟาสต์ฟู้ดธุรกิจ No. Series หนังสือ รูปปก ชื่อหนังสือ มีแล้ว ? 1 ฟาสต์ฟู้ดธุรกิจ พ.16 ฟาสต์ฟู้ดธุรกิจ พ.16 ✓ 2 ฟาสต์ฟู้ดธุรกิจ ๒ เดาะโลกดีดี แล้วตีลังกา ✓ 3 ฟาสต์ฟู้ดธุรกิจ ๓ มองโลกง่ายง่ายสบายดี  พ.17 ✓ 4 ฟาสต์ฟู้ดธุรกิจ ๔ ฝันใกล้ใกล้ไปช้าช้า พ.12 ✓ 5 ฟาสต์ฟู้ดธุรกิจ ๕ อารมณ์ดีกับชีวิต พ.10 ✓ 6 ฟาสต์ฟู้ดธุรกิจ ๖ ชีวิตไม่ยากถ้าตั้งโจทย์ง่าย ✓ 7 ฟาสต์ฟู้ดธุรกิจ ๗ เหยียบโลกไว้ไม่ต้องเครียด พ.9 ✓ 8 ฟาสต์ฟู้ดธุรกิจ ๘ พลิกมุมคิดชีวิตเปลี่ยน พ.11 ✓ 9 ฟาสต์ฟู้ดธุรกิจ ๙ แพ้ได้แต่ไม่ยอม ✓ 10 ฟาสต์ฟู้ดธุรกิจ ๑๐ ปัญหาคือยาวิเศษ ✓ 11 ฟาสต์ฟู้ดธุรกิจ ๑๑ ฝันเรื่อยเรื่อย เหนื่อยก็พัก พ.7  ✓ 12 ฟาสต์ฟู้ดธุรกิจ ๑๒ ไม่ตั้งใจแต่ทำไมจึงสุข  ✓ 13 ฟาสต์ฟู้ดธุรกิจ ๑๓ จุดหมายที่ปลายเท้า  ✓ 14 ฟาสต์ฟู้ดธุรกิจ สุข…

เวลาพัฒนาระบบ บางครั้งทำไมเราถึงต้องกำหนดให้ ID ติดลบ

ในการทำระบบงานต่างๆ ไม่ว่าจะระบบเล็ก หรือเป็นระบบใหญ่ขึ้นมาสักระบบนึง แน่นอนเลยว่าข้อมูลย่อมมีมหาศาลมากมาย แต่เราจำเป็นไหม ? ว่าจะต้องทำหน้าจอขึ้นมา เพื่อจัดการกับข้อมูลเหล่านี้ คำตอบ คือ ไม่ครับ ในข้อมูลส่วนที่ไม่ต้องมีการแก้ไขบ่อยๆ เช่น ข้อมูลจังหวัด ข้อมูลประเทศ หรือ เป็นข้อมูลราคาหุ้นจากตลาด SET หรือ MAI ครับ ปัญหาถัดมา คือ เราทำอย่างไร เพื่อไม่ให้ข้อมูลเหล่านี้มันหายไป ตอน Migrate ระบบ หรือระหว่างการใช้งาน เพื่อไม่ให้ User มือบอนไปกดลบได้ครับ ? ทางเลือกนึงที่ใช้ คือ การกำหนด Flag ขึ้นมา หรือเพิ่มคอลัมน์ในฐานข้อมูลเราแหละครับ แต่ถ้ามองไปอีกที การเพิ่ม Column = เพิ่มพื้นที่ในการจัดเก็บ ? หรือ เราแยก Script ขึ้นมา เพื่อ Initial ข้อมูล โดยเฉพาะ แต่เรามั่นใจได้อย่างไรว่า Script มันจะไม่หลาย ยิ่งหลาย Site นี่โคตรงง 555 และ Idea สุดท้ายครับ คือ การกำหนด ID ของ Row นั้นในฐานข้อมูลให้ติดลบครับ ทำไมถึงต้องทำ ID ติดลบหละ ง่ายแก่การ Clear Data เช่น จาก UAT ไป Production ข้อมูลที่เป็นค่า Default เหล่านี้ จะไม่ถูกลบออกไปด้วยครับ สามารถกำหนด Query เพื่อดึงข้อมูลที่เราต้องการให้แก้ไขได้ เช่น Price Source มีข้อมูล Default คือ ตลาด SET (-1) และ ตลาด MAI (-2)…

งานสัปดาห์หนังสือแห่งชาติ ปี 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 จัดการข้อมูล ถ้าเราเพิ่มคำสั่ง ‘REORG INDEX xxxx’ เป็นการ reorganize ข้อมูลสร้างเพื่อ Index…

[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 อย่าง ได้แก่ Read-Uncommitted : อ่าน Tx ได้ตลอด แต่จะเกิดปัญหา Lost Update Read-Committed : อ่าน Tx ที่มีการ Commit แล้วเท่านั้น แต่จะเกิดปัญหา Unrepeatable Read Repeatable-Read : อ่าน Tx ที่มีการ Commit และ Lock ข้อมูลนั้นไว้ แต่จะเกิดปัญหา Phantoms Read Serializable : มีการจัดการข้อมูลในระดับที่สูงสุด มองง่ายว่ามีการ Lock Transaction หรือ Table นั้นๆทั้งหมด เพื่อแก้ปัญหาต่างๆที่กล่าวมา แต่มีข้อเสีย คือ เกิด Dead Lock…

[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 ดังรูป…

[Power Shell] Integrated PowerShell with C# Application

มาต่อบทความการใช้ 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 เราด้วยนะครับ โดยผมได้สรุปเป็นข้อมูล ดังนี้ เมื่อตรวจสอบเวอร์ชั่นของ DLL และ Target Framework ของ Project เราเรียบร้อยแล้ว เริ่มทำการ Add Reference DLL System.Management.Automation ซึ่งอยู่ใน Path C:\Program Files (x86)\Reference Assemblies\Microsoft\WindowsPowerShell\-เวอร์ชั่น- โดยของผมก็จะเป็น C:\Program Files (x86)\Reference Assemblies\Microsoft\WindowsPowerShell\v1.0 ดังรูป (ของผมใช้ PowerShell 4.0 นะ แต่งงเหมือนกันว่าทำไมโพลเดอร์ที่เก็บเป็น 1.0) จากนั้น เราก็มาจัดการกับ Code ของเราเลย โดยในที่นี้ ผมจะใช้ Class PowerShell และ…

[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” (รูปฟันเฟือง) เลื่อนลงมาล่างสุด เลือกเมนู  “แอปพลิเคชั่น”หรือ…