LAMP คืออะไร คือ ชุด open source service สำหรับพัฒนา Web Application/Website

LAMP

image By Shmuel Csaba Otto Traian, CC BY-SA 3.0, https://commons.wikimedia.org/w/index.php?curid=28224098

LAMP เป็นตัวย่อจาก ชุด open source จำนวน 4 อย่าง ที่เอามาประกอบกัน เพื่อใช้สำหรับรันงาน Web Application/Website ในฝั่ง server โดยเวลาติดตั้ง service ทั้งหมดนี้เค้าก็จะเรียกสั้นๆว่าการติดตั้ง LAMP

L มาจาก Linux

เริ่มต้นจากสิ่งพื้นฐานก่อนเลย นั่นคือ OS โดย L คือตัวที่มาจาก Linux ซึ่งจะไม่ได้ระบุเอาไว้ ว่าต้องเป็น Linux ตัวไหน เพราะว่าตัวไหนก็ได้เหมือนกัน แต่ว่าเท่าที่เค้านิยมเอามาทำเป็น Server จำนวนมาก ก็จะเป็น Ubuntu, CentOS, RedHat เป็นต้น อ่านต่อ… “LAMP คืออะไร คือ ชุด open source service สำหรับพัฒนา Web Application/Website”

AWS Amazon คืออะไร คือ Infrastructure ที่ง่ายแค่คลิก

aws cloud infra

จากประสบการณ์ที่ได้ใช้งานมานานระดับหนึ่งในงาน production (ตั้งแต่รุ่นมี sale ของไทยคนเดียว นั่งประจำที่ Singapore) ก็เลยคิดว่าเอามาเล่าสู่กันฟังดีกว่า เพราะเชื่อว่าคนอีกเป็นจำนวนมาก ที่ยังไม่รู้จัก AWS อย่างแน่นอน

AWS คือ Server ที่จัดการได้ง่ายไม่กี่คลิก

ให้นึกภาพง่ายๆซะว่ามันคือ VMWare , VirtualBox นั่นล่ะครับ คือมันสามารถสร้าง OS ใหม่จาก machine เดิมได้เรื่อยๆ แต่ความยิ่งใหญ่ของมันก็คือ สามารถสร้างเพิ่มได้ไม่จำกัด เพราะว่าทรัพยากรที่เค้ามีให้ใช้มหาศาลมาก ดังนั้นจะสร้างกี่ Windows กี่ Linux ก็สร้างไปได้เรื่อยๆ ตราบใดที่เรามีเงินจ่าย

อ่านต่อ… “AWS Amazon คืออะไร คือ Infrastructure ที่ง่ายแค่คลิก”

node.js คืออะไร คือ programming language ที่เขียนด้วย JavaScript

node.js language

node.js คือ Programming language ที่ใช้โครงสร้างภาษา JavaScript ในการเขียน และมีการรันด้วย Chrome’s V8 JavaScript engine (ตัวรัน javascript ที่ Web Browser google chrome ใช้งานด้วยนั้นแหล่ะ) โดยตอนเริ่มต้นก็คือ V8 เนี่ย google เค้าพัฒนาเอาไว้ แล้วเค้าก็ใจดีบอกว่า อะ ให้เอาไปใช้กันได้เสรี เอาไปแปะกับงานส่วนไหนก็ได้ มันจะรัน JavaScript ได้ และเร็วมาก ก็เลยมีคนหัวใส งั้นเอามาทำเป็น server interpreter เลยสิ ไหนๆมันก็ทำงานได้เร็วมากแล้วนี่นา จะได้มีภาษาที่เขียนและใช้งานบน server แบบเร็วๆ จึงเป็นที่มาของ node.js นั่นเอง

เขียนโค้ดด้วยภาษา JavaScript

ด้วยความที่ว่า ภาษา JavaScript เป็นที่นิยมสำหรับสายงาน Web Development อยู่แล้ว รวมทั้ง V8 engine ก็ทำหน้าที่แปลงภาษา JavaScript ด้วย เลยทำให้ node.js ได้รับความนิยมมากๆ เพราะว่าไม่ต้องเรียนรู้ภาษาอะไรใหม่เลย หากเขียน JavaScript เป็นอยู่แล้ว สบายเลย อ่านต่อ… “node.js คืออะไร คือ programming language ที่เขียนด้วย JavaScript”

NoSQL คืออะไร คือ database ที่ทำงานได้เร็ว และ หลากหลาย

NoSQL database

ความแตกต่างหลักๆของ Relational database กับ NoSQL database ก็เป็นเรื่องของความเร็ว ที่เราได้ประโยชน์ และเรื่องการทำงานที่เป็นแบบไม่ต้องสร้างความสัมพันธ์ให้กับมัน รวมไปถึง feature พิเศษที่เกิดมาเพื่อเหมาะกับงานแต่ละแบบด้วย

ทำงานแบบไม่ต้องเขียน SQL อีกต่อไป

SQL ก็เป็นภาษาหลักที่เราต้องเขียนเพื่อจัดการกับข้อมูลที่เก็บใน Database แบบ relational เป็นหลัก แต่ว่า NoSQL ทำให้เราสามารถเขียนอ่านแก้ไขข้อมูลโดยไม่ต้องเขียน SQL command อีกต่อไป แต่ว่าจะต้องใช้คำสั่งเฉพาะ ของ NoSQL แต่ละตัวที่เราเอามาใช้งานเองเท่านั้น อ่านต่อ… “NoSQL คืออะไร คือ database ที่ทำงานได้เร็ว และ หลากหลาย”

เปิด CSV ไฟล์ใหญ่ระดับหลาย GB และทำงานได้ไม่อืด

ซ่อมไฟล์ CSV แล้ว

วันนี้ผมต้องทำงานกับ CSV ไฟล์ใหญ่มาก เปิดด้วย excel ไม่ได้อีกทั้ง CSV ไฟล์มีการขึ้นบรรทัดใหม่แบบมั่วมาก ก็คือปกติ 1 row จะถือว่าเป็น 1 record แต่ว่ากรณีของผมนี่ 1 record อาจจะมีหลาย row และจำนวน column ก็มีเป็นร้อย อีกทั้ง data หลายๆ column เป็น Text หลักร้อยถึงหลายพันตัวอักษร แต่ผมก็เปิดมาแก้ไขได้ แค่ต้องมีเทคนิคนิดหน่อย

CSV คือ Text file

อยากให้ทำความเข้าใจเบื้องต้นก่อน ว่า CSV คือ Text file เหมือนที่เราเปิด Notepad แล้ว พิมพ์นั่นแหล่ะ แต่ว่ามันพิเศษตรงที่เค้าแบ่งเนื้อหา แต่ละ column ด้วยอะไรบางอย่าง เช่น Comma (ลูกน้ำ ,) หรือ Pipe | ก็ได้แล้วจะมีความกว้างของ column ที่เท่ากันเสมอทุก row เช่น มี 10 column ทุกๆบรรทัด หรือว่า content แต่ละ row ก็จะมี 10 column เสมอตลอดทั้งไฟล์ ถ้าบาง column ของบาง row เป็นค่าว่างเปล่า ก็จะยังต้องคั่นด้วยค่าว่างเช่นเช่นกัน เช่น 1,2,3,4,,6,7,8,,10 จะเห็นว่า ว่างไป สองค่า คือ 5 กับ 9 แต่ก็มีลูกน้ำคั่นไปตามปกติ อ่านต่อ… “เปิด CSV ไฟล์ใหญ่ระดับหลาย GB และทำงานได้ไม่อืด”

ทำ Notepad ให้นับบรรทัด ได้ และอื่นๆที่เจ๋งกว่าเดิม

notepad2-mode program

สำหรับคนที่ใช้ Windows นะครับ หากใช้งาน Text file เยอะๆ มักจะรู้สึกว่า feature ของ notepad มันทำอะไรได้น้อยมาก นับ line บรรทัดก็ไม่ได้ แต่ว่ามันก็เร็วมากและติดมากับเครื่องด้วย ผมเลยเสาะหา สิ่งที่ทำงานได้เร็วเท่ากัน และฟรีมาใช้ บอกได้เลย ใช้ดีมาก ผมใช้มาหลายปีแล้วด้วย เลยเอามาบอกต่อดีกว่า เพราะปกติผมไม่ได้บอกใคร แต่ผมจะลงให้เค้าไปเลย 5555 อ่านต่อ… “ทำ Notepad ให้นับบรรทัด ได้ และอื่นๆที่เจ๋งกว่าเดิม”

redis คืออะไร คือ database ที่ทำงานได้เร็วมาก

Redis logo

ถ้าเอาให้ถูกต้องจริงๆ เค้านิยามว่า Redis เป็น in-memory data structure store หรือ ระบบเก็บข้อมูลแบบกึ่งมีโครงสร้าง ที่ทำงานบน Ram แต่อยากให้มองว่ามันเป็นเหมือน database ที่ทำงานบน Ram ก็ไม่ผิดเท่าไรหรอก แต่ว่าความสามารถของมันค่อนข้างพิเศษมาก เพราะว่ามันทำงานได้เร็วมากๆ จึงถูกนิยมเอามาทำเป็น Caching หรือเป็น temporary database เพื่อใช้ในการประมวลผลงานขนาดใหญ่ได้

ถ้าเปรียบเทียบกับตัวอื่นที่คุ้นหูก็จะเป็น memcached ที่ทำหน้าที่เป็น key-value data store system นั่นแหล่ะ แต่ Redis มีดีกว่านั้นอีกเยอะมาก เพราะว่า key-value มันทำได้เป็นพื้นฐานอยู่แล้ว แต่ว่ามีลูกเล่นอื่นๆ ให้เราเอามาใช้ได้เลย เช่น hashes ที่เปรียบเหมือนการเก็บเข้า key เดียว แต่ว่า value มี array อยู่ข้างในอีกด้วย และเราสามารถดึงเอา index ใด index หนึ่งออกมาใช้ได้ หรือเปลี่ยนค่าเฉพาะบาง index หรือแม้กระทั่งลบออกก็ทำได้ ถ้าเราเก็บเป็น memcached เราจะต้อง ดึงทุก index ออกมากระทำให้เป็นชุด array ที่สมบูรณ์ก่อนค่อยใส่กลับเข้าไป ซึ่งมันจะช้ากว่าอย่างเห็นได้ชัด อ่านต่อ… “redis คืออะไร คือ database ที่ทำงานได้เร็วมาก”