ทุกวันนี้ มีเว็บไซต์ดัง ๆ ในเมืองไทยหลาย ๆ แห่ง รวมทั้งเว็บไซต์ของบริษัทหลักทรัพย์ต่าง ๆ ที่ให้โอกาสนักลงทุนมือใหม่ (ที่ยังกล้า ๆ กลัว ๆ ในความผันผวนของตลาดหุ้นเมืองไทย) ได้เข้าไปลองลงทุนในหุ้น ผ่านเกมหุ้นหรือพอร์ตหุ้นแบบปลอม ๆ!!! บ่อยครั้งที่เพื่อนหรือผู้ร่วมงานมาชวนผมคุยเรื่องการลงทุน และสุดท้ายก็หนีไม่พ้นที่จะบอกว่า พวกเขาเคยผ่านการลองเกมหุ้นมาแล้ว และพบว่า … งง … มากมาย
Category: Programming
พูดคุยแต่เรื่องสร้างซอฟต์แวร์
สิบกว่าปีก่อนเคยเจอเรื่องขำไม่ออกเรื่องนึง เป็นเรื่องของความไม่รู้เท่าทันในเทคโนโลยี … เรื่องมีอยู่ว่า … ผมทำงานอยู่ในบริษัทเอกชนแห่งหนึ่ง ทำงานอยู่ในตำแหน่งโปรแกรมเมอร์กิ๊กก๊อก มีหน้าที่ดูแลโปรแกรมคอมพิวเตอร์ทั่ว ๆ ไป อยู่มาวันหนึ่ง กรรมการผู้จัดการบริษัทก็มีความคิดจะจ้างบริษัทแห่งหนึ่ง ให้ช่วยพัฒนาซอฟต์แวร์ให้ โดยต้องการให้ซอฟต์แวร์ดังกล่าวมีคุณสมบัติคือ … อ่านบาร์โค้ดได้หลาย ๆ แบบ อ่านบาร์โค้ดแล้ว ให้ค่าจากบาร์โค้ด กระเด้งพรวดเข้าไปในช่องกรอกข้อมูล เมื่อค่ากระเด้งเข้าไปในช่องกรอกข้อมูลแล้ว ให้เคอร์เซอร์กระโดดไปยังช่้องข้อมูลถัดไปได้ ทางนั้นหลังจากรับความต้องการแล้ว ก็กลับไปดีดลูกคิดรางแก้ว
ปรกติผมจะอ่อนเรื่องศัพท์แสงทางเทคนิคเป็นอย่างมาก รวมถึงทฤษฎีต่าง ๆ ก็เหมือนกัน เวลาใครพูดมาก็แบ๊ะ ๆ ตลอด อย่างเมื่อหลายวันก่อนผู้ร่วมงานก็มาบอกว่า ถ้าจะออกแบบระบบก็ขอให้ใช้ UML นะ เพราะไม่งั้นมันจะไม่เป็นมาตรฐาน จะอ่านไม่รู้เรื่องเข้าใจกันไม่ถูก!!! พอดีจำได้ลาง ๆ ว่าเคยได้ยินคำว่า UML เมื่อนานมาแล้ว อีกทั้งปรกติผมก็มักจะสั่งให้ใคร ๆ เป็นผู้ออกแบบ (ไม่ได้ทำเองก็งี้แหล่ะ ลืมง่าย) ก็เลยผงกหัวหงึก ๆ
วันนี้โม้ทางเทคนิคนะ เป็นเรื่องที่ผมหาคำตอบมาหลายปีแล้ว ในที่สุดก็หาวิธีเจอจนได้!!! ไม่ว่าเราจะสร้างโปรแกรมคอมพิวเตอร์ เพื่อให้ทำงานบนระบบปฏิบัติการใด หรือสร้างมันขึ้นมาเพื่อ Platform ใดก็ตาม สิ่งหนึ่งที่หลีกหนีไม่พ้นก็คือการวนรอบ ๆ ๆ ๆ ๆ หรือเรียกว่าการวน Loop !!! และไอ้การวน Loop เนี่ยแหล่ะ ที่นำมาซึ่งสภาวะ CPU ขึ้นถึง 100% (แต่ถ้าเป็น Core
การเลือกใช้ Web Application Framework (ขอเรียกย่อ ๆ ว่า WAF) ก็เหมือนกับการแต่งงาน ต้องดูใจกันนาน ๆ หน่อยก่อนที่จะตกลงปลงใจอยู่กินกัน เพราะถ้าเลือกแบบแทงหวย ความซวยก็จะมาเยือนเรา หากมันไม่ดีดังหวัง!!! แค่อ่านคู่มือและทดลองอยู่กินด้วยกันอย่างเดียวคงไม่พอ ต้องไปแอบฟังชาวบ้านด้วย ว่าเขานินทา WAF ที่เรากำลังคบหาดูใจอยู่ว่ายังไงบ้าง? ถ้าเขาพูดถึงว่ามันดีก็ดีไป แต่ถ้าเขาบอกว่ามันไม่ดีอย่างนู้นอย่างนี้ เราก็ต้องเก็บเอามาคิดให้จงหนัก!! ตอนแรกก็ว่าจะเลือก CodeIgniter
ภาษา ABAP เป็นภาษาที่ใช้ควบคุมกิจกรรมในระบบ SAP ซึ่งเป็นระบบ ERP ที่ยังพอต่อกรได้กับ Oracle Financial!!! โปรแกรมทุกโปรแกรมในระบบ SAP ล้วนถูกเขียนขึ้นด้วยภาษา ABAP ดังนั้นถ้าใครก็ตามที่คิดจะควบคุม SAP ก็เลยจำเป็นจะต้องรู้จักภาษา ABAP ไปโดยปริยาย งั้นมาสาธยายให้เห็นเป็นข้อ ๆ ดีกว่า ว่าทำไมภาษา ABAP จึงได้ยากจัง? 1.
เราจะเอามาตรวัดใดมาวัดระดับความซับซ้อนของ Web Application ดี? ถ้าหากวัดแต่ Front-end ก็จะไม่เป็นการยุติธรรมกับ Back-end? เพราะเป็นไปได้ว่าความซับซ้อนมันอาจจะอยู่ที่ Back-end มากกว่า … เปรียบได้กับภูเขาน้ำแข็ง ซึ่งโผล่ยอดแหลมออกมาแค่นิดเดียว! หรือจะวัดว่า Web Application ดังกล่าวมีลูกเล่นเยอะ ด้วยเหตุเพราะมันประกอบขึ้นจาก Web Application Framework ต่าง ๆ เข้าไว้ด้วยกัน
ผลลัพธ์อันเลวร้ายที่เกิดกับการ select ข้อมูลจาก table ใหญ่ ๆ ในฐานข้อมูลมีอยู่สถานเดียวนั่นก็คือ .. ช้าโคตร ๆ ๆ ๆ ๆ ยิ่งถ้ามีคนร่วมด้วยช่วยกัน select แล้วล่ะก็ ต้องบอกว่า .. ช้าโคตร ๆ ๆ ๆ ๆ ยกกำลังด้วยจำนวนคนที่ค้น!!! ดังนั้นหากเราไม่อยากจะเจอกับเรื่องเลวร้ายเช่นนี้
ตามหลักศาสนาพุทธได้กล่าวเอาไว้ว่า จักรวาลล้วนมีรวมแล้วก็มีแยก พอแยกแล้วก็กลับมารวมกัน เป็นอย่างนี้ไม่มีวันสิ้นสุด … (/\ สาธุ เห็นเป็นจริงดังนั้นแล) แต่หัวข้อนี้ไม่ได้จะโม้เรื่องศาสนา 😛 แต่จะโม้เรื่อง PHP โดยก่อนที่จะโม้ก็ต้องไปเอาข้อมูลจาก ที่นี่, ที่นี่ และก็ที่นี่ มาใส่ไว้ใน Excel ก่อน, กรองเอาแต่เฉพาะที่เกี่ยวกับ PHP และจากนั้นก็เอามาทำ Pivot Table แล้วสกัดข้อมูลเอามาทำเป็นภาพข้างล่างนี้
ส่วนใหญ่แล้วเว็บไซต์ที่ดัง ๆ และมีคนเข้าเยอะ ๆ มักจะสร้าง core engine ด้วยตนเอง มันก็เลยมีลักษณะผูกขาดกลาย ๆ ไปในตัว เพราะผู้อื่นลอกเลียนแบบได้ยาก แต่ก็เพราะเป็น core engine ของตัวเองอีกนั่นแหล่ะ จึงทำให้เมื่อต้องมีการเปลี่ยนแปลงใด ๆ เกิดขึ้น ก็ต้องออกแรงหืดขึ้นคอกันทุกที เนื่องจาก core engine ที่สร้างขึ้นไม่ได้อยู่บนพื้นฐานของ best