[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 ข้อมูล ทำให้เราอาจจะต้องเสียตังค์ฟรี ทำให้เครื่องช้า และเปลืองแบตด้วย วันนี้ผมนำเสนอวิธีปิดการทำงานของโปรแกรม เพื่อไม่ให้มีการแจ้งเตือนมากกวนใจเราอีกนะครับ ดังนี้ครับ วิธีแรกถอนรากถอนโคน วิธีที่สองปิดการทำงานของโปรแกรมพอ วิธีนี้อาจจะมีบาง Service บางส่วนที่ยังทำงานอยู่ แต่อย่างน้อยก็ไม่มีหน้าจอ หลอกให้เรากดไปแล้วเสียเงินครับ โดยผมลองปิดตัว Security and NQ Mobile ครับ ตามมากันได้เลย หมายเหตุ  

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 กับ…

[PowerShell] Getting File by File Version

powershell

จากบทความที่แล้ว ที่ได้เกริ่นสาเหตุของปัญหาไปแล้ว ว่ามี Program หลากหลายเวอร์ชันมากในการทดสอบ วันนี้ผมเลยได้ลองเขียน Code ในการหาไฟล์ .exe, ocx, dll ในโพลเดอร์ที่เก็บ Program ทั้งหมด ตาม Version ของลูกค้า และ ชื่อไฟล์ที่ต้องการทดสอบครับ โดย Code คร่าวออกมาเป็นประมาณนี้ครับ ผลลัพธ์ที่ได้ (ขอปิดชื่อไฟล์นิดนึง งานบริษัทและ) และสุดท้าย คือ แก้พวกค่า Path หรือเงื่อนไขต่างๆ ให้รับข้อมูลจากผู้ใช้เองเลย จะได้ไม่ต้องมาแก้ Code บ่อยๆครับ ดังนี้ ต่อไปจะเป็นการลองใช้ Code ชุดนี้ ไปประยุกต์กับ C# ทำ Application เล็กๆกันครับ

[PowerShell] เริ่มต้นจัดการปัญหาด้วย PowerShell

powershell

ไม่ได้เขียน Blog ซะนานเลย ช่วงนี้งานที่ทำงานเยอะขึ้น และขึ้นโปรเจคใหม่ด้วย ตอนนี้เข้าเรื่องดีกว่า เมื่อมี Program ก็ต้องมี Bug หรือ Defect เป็นของคู่กัน การตรวจสอบเคสที่มาจากลูกค้า เพื่อหา Bug หรือ Defect  และปัญหาที่พบว่า Program มี Version ที่หลากหลายมาก ทำให้การหาไฟล์ Program นั้นลำบากมาก แต่เมื่อมีปัญหา ย่อมมีโอกาสตามมา โดยผมลองใช้ Power Shell ในการแก้ปัญหาคร่าวๆ ลองที่ละ Step และท้ายที่สุด คือ การนำไปใช้ร่วมกับ C# เพือให้ง่ายกับการใช้งานครับ มาถึงตอนนี้หลายคนอาจจะสงสัยว่าทำไมต้อง Power Shell แล้ว ไอ้เจ้า Power Shell มัน คือ อะไร Power Shell คือ ชุดคำสั่งแบบ command line shell และ task-based scripting technology เพื่อใช้ช่วยในการจัดการกับระบบ (มองว่าเป็น dos-command line เวอร์ชั้น Upgrade) เหมือนกับทางค่าย Open Source อย่าง Unix Shell หรือ Linux Shell อย่าง bash เป็นต้น โดยถึงแม้ว่าหน้าที่เหมือนกัน แต่การทำงานในส่วนลึกนั้นแตกต่างกันมาก โดยผมขอสรุปแยกไว้ ดังนี้ ถ้าเราเรื่องใช้งาน Power Shell จะพบว่ามันง่ายมากกว่าการใช้ Command line แบบอื่นๆ เพราะมี Build-in Function มาช่วยเยอะ และรูปแบบคำสั่งแบบ cmdlet ซึ่งเป็น single-feature command  โดยมีรูปแบบ กริยา (Verb)…

7 เทคนิคการเลือกหุ้น

หุ้น

จดๆไว้จากพวกงานฟังหุ้นมานะครับ “ผมไม่นิยมดูเส้นเทคนิคและไม่เคยนำมาประยุกต์ใช้ เพราะไม่เข้าใจในหลักการ ส่วนใหญ่จะดูเพียงราคา ณ ปัจจุบัน เพื่อนำมาเปรียบเทียบกับมูลค่าที่ประเมินไว้ว่ามันมีส่วนลด (Margin of Safety) เป็นที่น่าพอใจหรือไม่ เช่น ถ้ามีส่วนลด 40-50% จากมูลค่าที่คิดไว้ ก็พอใจที่จะซื้อแล้ว”คุณหมอยังบอกด้วยว่า ตั้งแต่ใช้หลักการพวกนี้ ไม่เคยขาดทุนเลยครับ Credit:เล่นหุ้นตามเซียน

ทำไม Method หรือ Function ที่ดีควรมีความยาวไม่เกิน 1 หน้าจอ หรือ 20 บรรทัด หรือ กฏอื่นๆอีกมากมาย

สำหรับบางคนที่เพิ่งเรียนเรียน Programming หรือ เพิ่มเริ่มทำงานใหม่ๆ อาจจะสงสัยว่าทำไมอาจารย์ หรือ พี่ที่ทำงานถึงมีข้อกำหนดในการเขียน Code ขึ้นมา ซึ่งบางข้ออาจจะดูไม่จำเป็นเลย เช่น หากเรามองแค่ผิวเผินแล้ว อาจจะคิดในใจว่าต้องการความเป็นระเบียบ ให้ Code สวยงาม เพื่อที่เรา หรือคนอื่นมาเขียนต่อภายหลังได้ง่าย แต่ถ้ามองลึกๆลงไป มันอาจจะเป็นกุศโลบายอย่างหนึ่งก็ได้ ซึ่งแฝงไปด้วยแนวคิด และทฤษฏีที่ซับซ้อน โดยผมจะอธิบาย แต่ละข้อเลยยะครับ ข้อแรก Method ที่เขียนขึ้นมาควรจะไม่เกิน 20 บรรทัด หรือ แสดงไม่เกินไม่เกิน 1 หน้าจอ หากเรามองลึกลงไป ทำไมต้องไม่เกิน 20 บรรทัด หรือ 1 หน้าจอ ซึ่งแนวคิดนี้จะลึกให้เราต้องกำหนดการทำงานของ Method ให้กระชับ และมีหน้าที่เดียว ข้อสอง การกำหนด Tab เยื้องของ IF ELSE และไม่ควรมี IF ซ้อนกันเกิน 3 ชั้น ทีมีการกำหนดให้แสดงการกำหนด Tab เยื้องของ IF ELSE เพิ่มความสวยงามแหละ และแสดงให้เห็นถึงความซับซ้อนของ code มองง่ายๆ เลย ถ้า Code ทีเราเขียนขึ้นมามี IF ซ้อนกันเยอะแล้วเนี่ย แสดงว่า logic ภายใน method นั้นมันซับซ้อนเกินไป ซึ่งจะมีผลกับการ maintain code ในอนาคต ถ้าเกิดมีการเพิ่มเงื่อนไขลงไปอีก แต่เราจะรู้ได้อย่างไรว่ามันจะไม่ไปกระทบกับ IF เดิมๆ ที่มีอยู่ก่อนแล้ว แนวทางแก้ไข ทางแก้ไขมีง่าย แต่มีศัพท์เรียกรวมๆว่าการ Refactor Code แต่เราจะ Refactor อย่างไร มีแนวคิด และแนวคิดที่เข้ามาช่วย ดังนี้

ลงทุนด้วยหลักกาลามสูตร

หุ้น

ตอนแรกหลายๆคนอาจจะงงว่าไอ้หลักกาลามสูตร มันเอาประยุกต์ใช้กับการลงทุนได้ด้วยเหรอ ? ส่วนตัวผมจริงๆหลักการนี้มันปรับใช้กับทุกเรื่องได้ครับ ไม่จำเป็นต้องเป็นหุ้นหรอก แต่ผมอยากจะเตือนเม่ารายใหม่ที่ตามมาเล่นหุ้น เพราะ คิดว่ามันได้เงินเยอะ มันหอมหวาน แต่อีกด้านของมันขาดทุน เจ๊ง (จริงๆผมก็มือใหม่นะ เพิ่งเล่นมาจริงๆ ประมาณ 5 เดือนได้เอง) มาเข้าเรื่องดีกว่า “ลงทุนด้วยหลักกาลามสูตร ” ท้ายที่สุดแล้ว สิ่งที่สำคัญที่สุด คือ สติ ครับ เมื่อสติเกิด ปัญญาเกิด ปัญหาคลี่คลายครับ :))

ข้อคิดก่อนลงทุน

หุ้น

การวางแผนการลงทุน คือ การวางแผนเพื่อให้การลงทุนบรรลุเป้าหมายที่ต้องการ บนความเสี่ยงที่รับได้ 1. เป้าหมายของการลงทุน เราต้องถามตนเองว่า เราลงทุนเพื่อวัตถุประสงค์ใด เพราะเป้าหมายที่ต่างกัน จะนำไปสู่รูปแบบการลงทุนที่แตกต่างกัน ในระยะเวลาที่แตกต่างกัน เช่น เราจะลงทุนเน้นผลตอบแทนสูง หรือ เน้นการคงอยู่ของเงินต้น เราจะลงทุนเพื่อเป็นรายได้ประจำยามเกษียณ หรือเป็นการ เก็งกำไรระยะสั้น 2. ระดับความเสี่ยงที่รับได้ เรารับความเสี่ยงได้มากขนาดไหน หากลงทุนผิดพลาดเรายังมีเงินสำรองไว้ใช้ หรือมีแหล่งรายได้ใหม่เข้ามาอย่างสม่ำเสมออยู่อีกหรือไม่ บางคนลงทุนในตลาดหุ้นแล้วนอนไม่หลับ กังวลอยู่ตลอดเวลา ถ้าเป็นอย่างนี้ ก็ต้องปรับรูปแบบการลงทุนให้เข้ากับวิถีชีวิตของเรา 3. ระยะเวลาในการลงทุน แต่ละคนอาจจะมีความจำเป็นต้องใช้เงินในเวลาที่แตกต่างกัน คนหนุ่มสาวที่จะเก็บเงินเพื่อใช้ในวัยเกษียณย่อมมีเวลาลงทุนอย่างเหลือเฟือ สามารถลงทุนผ่านกองทุนรวมเพื่อการเลี้ยงชีพ ( RMF) และกองทุนหุ้นระยะยาว ( LTF ) เพื่อให้ได้สิทธิประโยชน์ทางภาษีด้วย ขณะที่พ่อแม่ที่จะเก็บเงินส่งลูกเรียนต่างประเทศในหนึ่งปีข้างหน้า อาจต้องหลีกเลี่ยงการลงทุนที่มีความเสี่ยง หรือขาดสภาพคล่อง 4. ความรู้ความเข้าใจในสิ่งที่ลงทุน เรามีความรู้ในหลักทรัพย์ที่จะลงทุนขนาดไหน รู้ปัจจัยและแนวโน้มที่จะมีผลกระทบต่อการลงทุนหรือไม่ ถ้าไม่รู้จะหาความรู้ได้ที่ไหน ต้องใช้เวลาในการเรียนรู้มากเพียงใด ถ้าเรายังไม่มั่นใจ ขอแนะนำให้ลงทุนผ่านกองทุนรวมก่อน หรือขอคำชี้แนะจากผู้รู้ที่เราไว้ใจ 5. ผลตอบแทนที่ต้องการ คนส่วนใหญ่มักมองเรื่องนี้เป็นประเด็นแรก แน่นอนว่าทุกคนย่อมอยากได้ผลตอบแทนที่สูงที่สุด แต่สุดท้ายผลตอบแทนก็จะถูกกำหนดโดย ความเสี่ยง , ระยะเวลา และเป้าหมายการลงทุน ดั่งสำนวนที่ว่า high risk , high return อยากได้มากก็ต้องเสี่ยงหน่อย เมื่อเรารู้คำตอบทั้ง 5 ข้อแล้ว เราย่อมสามารถลงทุนได้อย่างมั่นใจและมีความสุขมากขึ้น เครดิต thaifinancialadvisor