รีวิวงาน PyCon Thailand 2023 แบบจัดเต็ม — part 1/2

สรุปงาน Pycon Thailand 2023 — ปีนี้มีอะไรที่น่าสนใจบ้าง พร้อมแชร์ resources — part 1/2

PCP
9 min readDec 24, 2023

สวัสดีครับ ผมชื่อพี ปัจจุบันทำงานเป็น Data scientist ที่บริษัท LINE MAN Wongnai ขอเกริ่นก่อนว่าบทความนี้จะไม่เอ่ยถึงชื่อบริษัทก็คงไม่ได้ เพราะทางบริษัทมีสวัสดิการให้เบิกงบเพื่อนำไปเข้าร่วมงาน PyCon แบบนี้เพื่อไปอัพเดตความรู้กันแบบฟรี ๆ และสวัสดิการดี ๆ แบบนี้ ทุกคนก็สามารถมีได้แค่เข้ามาร่วมเป็นส่วนหนึ่งของ LINE MAN Wongnai ได้เหมือนกันนะ ตอนนี้มีตำแหน่งงานให้ทุกคนเลือกไม่ต่ำกว่า 100 ตำแหน่งเลยทีเดียว พลาดแล้วพลาดเลยขอบอกไว้ก่อน

สำหรับบทความนี้ ขอเชิญพับกบ เอ้ย..! พบกับงาน Pycon Thailand ที่จำต้องงดเพราะโควิดมาเป็นเวลาถึง 2 ปี และในครั้งนี้ ก็เป็นครั้งที่ 4 แล้ว ที่งานดี ๆ แบบนี้ถูกจัดขึ้นในประเทศไทย

สำหรับคนที่ยังไม่รู้จัก PyCon นั้น คำว่า PyCon ย่อมาจากคำว่า Python Conference ซึ่งจะเป็นงานประจำปีที่จะเป็นแหล่งพบปะกันของผู้ที่เขียนโปรแกรม Python จากหลากหลายวงการ หรือถ้าจะให้พูดในแบบบ้าน ๆ งาน PyCon นั้นก็คือสภากาแฟของชาว Python programmer นั่นเอง

งานในปีนี้ มีระยะเวลาทั้งสิ้น 3 วันด้วยกัน โดยจะจัดในวันที่ 14 ธันวาคม 2023 สำหรับ workshop และวันที่ 15–16 ธันวาคม 2023 สำหรับ conferences ที่จะมี speakers มากความสามารถตบเท้ากันเข้ามาแชร์ประสบการณ์ต่าง ๆ มากมาย

โดยที่งานวันแรกนั้น ถูกจัดขึ้นที่ Microsoft Thailand หรือที่ตึก All Season ตรง BTS เพลินจิตนี้เอง ส่วนงานอีก 2 วันหลังจากนั้น ถูกจัดขึ้นที่โรงแรม Avani ตรง BTS อ่อนนุชที่ไม่ใกล้ไม่ไกลไปจากกลางเมืองเลย

Theme หลักของงาน

Theme หลักของงานในปี 2023 นี้เดาได้ไม่ยากเลย เพราะตั้งแต่ต้นปี เราเห็น AI breakthrough ต่าง ๆ มากมาย และมันก็สร้างแรงกระเพื้อมให้คนทั้งโลกตกตะลึงจนแทบปรับตัวไม่ทันอีกด้วย

ดังนั้น sessions ต่าง ๆ ที่ถูกจัดขึ้น จึงเน้นหนักไปที่ด้าน Artificial intelligence/Machine learning ตามมาด้วยเรื่องของ Data analytics ที่ดูเหมือนจะเป็นสิ่งที่ภาษา Python นั้นทำได้ดีกว่าภาษาอื่น ๆ

ก่อนที่จะเริ่มการรีวิวและสรุปเนื้อหา ผมต้องขอ disclaimer ไว้ก่อนว่า การแสดงความเห็นดังต่อไปนี้ล้วนแล้วแต่เป็นความเห็นส่วนตัวทั้งสิ้น และด้วยความที่ background การทำงานของผมนั้นอยู่ในสาย Data science ดังนั้น บทสรุปหรือเนื้อหาต่าง ๆ ที่ไม่ได้เกี่ยวข้องกับสายงานของผมนั้นอาจมีความคลาดเคลื่อน จึงต้องขออภัยไว้ ณ ที่นี้ด้วย

เอาล่ะ งั้นเรามาเข้าเรื่องงานนี้กันเลยดีกว่า…

กิจกรรมภายในงาน

อย่างที่ผมได้เกริ่นไปแล้ว งานนี้ถูกจัดขึ้นทั้งหมด 3 วันด้วยกัน และงานแต่ละวันนั้นก็มักจะมี 2 ห้องให้เราได้เลือกเข้าด้วย ผมจึงสามารถพูดได้เฉพาะ sessions ที่ผมได้เข้าร่วมเท่านั้น และรายชื่อของ workshop/conferences ที่ผมได้เข้านั้นจะมีดังต่อไปนี้ หากใครสนใจ sessions ไหนเป็นพิเศษ สามารถกด link ข้างล่างตามไปอ่านได้เลย

DAY 1

DAY 2

DAY 3

  • Python - The second best language for everything?
  • Behind the Scenes: Engineering a Scalable Data Stack for Thailand’s Streaming Giant
  • Run programmatic trading with Python
  • Supercharging Machine Learning Tasks with Ray: An Open-Source Unified Compute Framework
  • Python Observability with OTEL
  • Python and Rust: A Dynamic Duo with PyO3
  • Python, Protobuf and MQTT: a robotic communication backbone choice
  • Boosting Efficiency and Kaizen in the Manufacturing Industry with IoT
  • Training the most important model

โดยที่หัวข้อที่ผมมีการทำตัวหนาไว้นั้นคือ sessions ที่ผมให้ความสนใจเป็นพิเศษเพราะได้เปิดมุมมองของตัวเองหรือคิดว่าจะได้ใช้ประโยชน์ในอนาคต และหัวข้อที่ไม่มี link ไว้ให้กด ก็คือหัวข้อที่จะนำไปอยู่ในบทความถัดไป เพื่อไม่ให้บทความนี้มีความยาวเป็นหางว่าว

วันที่ 1 — Workshop

งานในวันแรกนั้นเป็น workshop ที่เราสามารถเลือกที่จะเข้าหรือไม่เข้าก็ได้ตามความขยัน และคนขยันอย่างผมนั้นก็ไม่พลาดที่จะเข้าร่วมกิจกรรมนี้…

เฉพาะในช่วงบ่ายอะนะ… (ฮา)

Genetic Algorithm in Python: A Step-by-Step Journey from Evolution to Applied Examples | Jozef Csaba Stempel [LinkedIn]

Workshop แรกที่ผมได้เข้า เป็น workshop ที่เล่าที่มาที่ไปของ Genetic algorithm ซึ่งเป็นหนึ่งใน algorithm ที่เอาไว้ optimize การตัดสินใจต่าง ๆ เพื่อให้มีประสิทธิภาพสูงสุด โดยได้รับแรงบันดาลใจมาจากวิวัฒนาการของสิ่งมีชีวิต

Session นี้ ทำให้ได้เรียนรู้ว่าข้อจำกัดของ Genetic algorithm คืออะไร เป็นต้นว่า algorithm นี้เวลาจะ optimize อะไรก็ตาม มันจะชอบไปติดอยู่ที่ local maxima/minima และได้รู้ว่าการทำงานของมันนั้นไม่ได้ให้ผลลัพธ์ที่เหมือนกันมาทุกรอบ หรือที่เราเรียกกันว่า เป็น Nondeterministic algorithm

นอกจากนี้ session นี้ยังพยายามที่จะเล่าถึงวิธีการทำงานของ Genetic algorithm ด้วย แต่ถึงอย่างนั้น ผมก็ยังคิดว่า presentation ในการอธิบายการทำงานนั้นยังมีจุดที่สามารถพัฒนาให้ดีขึ้นได้อีกเยอะ และสุดท้ายมันยังดีตรงที่ว่ามีวิดีโอมาเปิดให้ดูเสริมด้วย

และสุดท้าย ก็ปิดจบด้วยการมี code ตัวอย่างการเอา Genetic algorithm ด้วยการใช้ Python library ที่มีชื่อว่า deap มาใช้แก้ไขปัญหาในห้องเรียนสุด classic อย่าง Traveling Salesman Problem (TSP) หรือการหาเส้นทางที่สั้นที่สุดในการเดินผ่านแต่ละจุด และ Knapsack Problem หรือการหาว่าจะเอาของอะไรใส่ถุงให้ได้น้ำหนักมากที่สุดนั้นเอง

Hands-on GenAI via Python LangChain | Thoughtworks

Workshop ต่อมา เป็น workshop เกี่ยวกับการพัฒนา applications ที่จะใช้ประโยชน์จาก LLM ด้วยการใช้ Python library น้ำดีที่มีชื่อว่า LangChain มาช่วย

และทีมงานที่มาจาก Thoughtworks เค้าก็ทำให้ workshop นี้เป็น workshop แบบ hands-on สมชื่อจริง ๆ เพราะมาถึงก็เปิด Google Colab อธิบายแล้วให้ทำไปพร้อมกันเลย โดยที่เนื้อหานั้นจะเน้นไปที่วิธีการใช้ Langchain แบบเบื้องต้นเพื่อที่จะนำไปใช้ทำ Applications ต่าง ๆ ด้วยตัวเองได้ สำหรับ Code พร้อมคำอธิบายสามารถดูได้ที่ Github ด้านล่างนี้เลย

และต้องขอชมว่า เนื้อหาและการอธิบายวิธีใช้ Langchain ใน workshop นี้ค่อนข้างมีประโยชน์สำหรับมือใหม่มาก เพราะนอกจากจะย่อยเนื้อหามาเพื่อให้เข้าใจง่ายแล้ว ทางผู้จัดนั้นยังร่วมแชร์ประสบการณ์จริงที่เจอมาตอนใช้ Langchain อีกด้วย

วันที่ 2 — Conferences

โดยส่วนตัวแล้ว งานในวันที่สองนั้นค่อนข้างน่าสนใจมาก เพราะ profiles ของ speakers แต่ละคนที่มานั้นไม่ธรรมดา การเดินทางไกลไปร่วมงานในวันนี้นั้นจึงถือว่าเป็นอะไรที่ผมค่อนข้างคาดหวังว่าจะได้อะไรกลับมามากเลยทีเดียว

The big leap of Python 3.13 | Łukasz Langa [LinkedIn]

Session แรกเป็นหนึ่งใน highlight ของงานนี้ เนื่องจากตัว speaker คือคุณ Łukasz Langa ซึ่งเรียกได้ว่าเป็นหนึ่งใน core developer ของ Python โดยตรง

หน้าที่ของคุณ Łukasz Langa นั้นคือการพัฒนา code และ review PR ที่อยู่บน github หลักของ Python นี้เอง นอกจากนี้ ถ้าใครรู้จัก auto-code formatter ชื่อดังอย่าง Black นั้น ก็ต้องขอให้จดจำเค้าไว้ให้ดี ๆ เพราะคุณ Łukasz Langa นี่แหละคือผู้สร้างมัน

หัวข้อหลักที่ทางคุณ Łukasz Langa นำมาอัพเดตให้กับพวกเราฟัง เป็นไอเดียที่เกิดขึ้นตลอดระยะเวลาการพัฒนา Python มาตั้งแต่ยุคแรกเริ่ม มาจนถึง PEP-602 ที่มีการเสนอให้มีการอัพเดต Python version ทุก ๆ ปีในช่วงเดือนตุลาคม ตลอดไปจนถึง PEP-703 ที่มีการอัพเดต logic สำคัญที่มีอยู่มาตั้งแต่ยุคแรกเริ่ม เพื่อทำให้ Python สามารถทำงานแบบ multi-core CPUs ได้อย่างมีประสิทธิภาพ

When Python Meets Excel for Real | DataRockie [Facebook]

Session นี้เป็น session ที่มาจากคนที่คุ้นหน้าคุ้นตา หากใครได้เข้ามาศึกษาในด้าน data คงไม่มีใครไม่รู้จักพี่ทอย Datarockie แน่ ๆ

ก่อนจะเริ่มเข้าเนื้อหา ผมต้องขอเขียนเป็นลายลักษณ์อักษรไว้ว่า พี่ทอยบอกว่าจะเป็น sponsor ให้กับงาน PyCon ในปีหน้าอย่างแน่นอน ว่าแล้วก็แบมือขอแทนผู้จัดงานไว้ตอนนี้เลยละกัน… (ยั๊งงงง)

อย่างที่เรารู้กันดีจากข่าวที่ประกาศใหญ่โตจากทาง Microsoft ว่า Microsoft excel นั้นสามารถเขียน Python ลงไปได้แล้วนะ ก็ทำให้พวกเราดีใจกันยกใหญ่ แต่จากที่พอจับใจความได้จากเนื้อหาของวันนี้นั้นก็พบว่ามันยังมีอะไรให้ต้องพัฒนาอีกมาก

Python ใน Ms excel นั้น support เฉพาะบน Window เท่านั้นในขณะนี้ และมันต้องการ internet ด้วย เพราะ Ms excel มันไม่ได้ run code ให้โดยตรงที่เครื่องของเราเอง แต่มันจะส่ง code ไป run ที่ server ของ Microsoft และเราไม่สามารถ debug error ได้สะดวกเลย เพราะเมื่อไหร่ก็ตามที่ code มัน error เมื่อนั้น Ms excel ก็จะเปลี่ยนสถานะตัวเองเป็น not responding เสมอ ที่สำคัญ เราไม่สามารถ run code ทีละบรรทัด หรือเฉพาะบรรทัดได้ เพราะการกด run code ใน Ms excel 1 ครั้งนั้นจะหมายถึงการ run code ทั้งหมดที่มีอยู่ใน Ms excel และทั้งหมดนี้ เรายังต้องเสียเงินเพื่อใช้งานมันด้วยนะ…

แต่ถ้าหันกลับมามองข้อดีบ้าง เอาเข้าจริงก็ถือว่าทาง Microsoft เค้าทำการบ้านมาพอสมควรเช่นกัน เพราะ server ที่ใช้ run Python นั้นไม่ได้มาตัวเปล่าซะทีเดียว

เราสามารถใช้ libraries สุดฮิตอย่าง matplotlib, numpy, pandas, seaborn, และ statsmodel ได้เลยโดยที่ไม่ต้องทำอะไรเพิ่ม และในอนาคตนั้นทาง Microsoft ยังได้ component สำคัญอย่าง Anaconda toolbox เข้ามาใช้ manage libraries ให้ด้วย

Data for Good: Leveraging Data for Immigrant and Farmer Welfare | Thinking Machines Data Science

ต้องบอกเลยว่าแค่ชื่อของ session ก็มีความน่าสนใจแล้ว เพราะโดยทั่วไปการใช้ data ที่เราพูดถึงกันอยู่ เรามักพูดในมุมของการนำไปใช้ในทาง business เท่านั้น นี่จึงเป็น session ที่ค่อนข้างเปิดหูเปิดตาให้กับผมมากเลยทีเดียว

เนื้อหาหลักของ session นี้ เล่าถึงสิ่งที่บริษัท Thinking Machines กับ UNICEF ร่วมมือกันใช้ Geospatial data หรือข้อมูลในเชิงพื้นที่ เพื่อนำพาเอาความสุขมาให้เพื่อนมนุษย์ เริ่มต้นจากการช่วยเกษตรกรผู้เลี้ยงกุ้งที่ประเทศอินโดนีเซียและฟิลิปปินส์หาว่า พื้นที่ใดต้องการความช่วยเหลือมากที่สุด เพื่อที่จะได้ส่งคนจากหน่วยงานเข้าไปให้ความช่วยเหลือ

อีก case study ที่น่าสนใจ ก็คือการนำ Geospatial data ไปใช้ค้นหาผู้ลี้ภัยที่ได้รับผลกระทบจากวิกฤตของประเทศเวเนซูเอลา เพื่อที่ว่าจะได้นำคนเข้าไปให้ความช่วยเหลือในด้านมนุษยธรรมให้มีประสิทธิภาพสูงที่สุดโดยไม่ต้องเปลืองกำลังคนในการค้นหา

สุดท้าย ทางทีมของ Thinking Machines ได้ปิดท้ายด้วยการนำเสนอ Python library ที่มีชื่อว่า geowrangler ที่เป็น library ที่ช่วยให้เราทำ data analytics กับ data ประเภท Geospatial data ได้ดีขึ้น ยิ่งไปกว่านั้น ผู้ริเริ่มทำ library ตัวนี้นั้นยังเป็น Thinking Machines คนดีคนเดิมอีกด้วย ไม่ธรรมดาเลยจริง ๆ

Kick Start Football Analytics Journey in Python | Supaseth W. [LinkedIn]

เนื้อหาหลักของ session นี้นั้นมาจาก passion ส่วนตัวของ speaker ล้วน ๆ เพราะเป็น session ที่เล่าถึงการนำทักษะการวิเคราะห์ของ Data scientist ซึ่งเป็นงานประจำของผู้พูด มาใช้กับฟุตบอล ซึ่งเป็นกีฬาที่ผู้พูดโปรดปราน มาประยุกต์ใช้ร่วมกันอย่างน่าสนใจ และถึงมีว่าจะมีเนื้อหาค่อนไปทางการแข่งกีฬาฟุตบอล คนที่ไม่เคยดูบอลอย่างผมก็ไม่ได้รู้สึกว่าน่าเบื่อเลย

หลายคนคงเคยได้ยินเกี่ยวกับเรื่อง Moneyball ซึ่งเป็นการใช้ data มาช่วยตัดสินใจในการแข่งขันกีฬาเบสบอลมาบ้างแล้ว แต่ทุกคนรู้กันมั้ยว่า ถึงแม้ว่าฟุตบอลจะมี data ที่มากมายแค่ไหน การใช้ประโยชน์จาก data เหล่านั้น เพิ่งจะเริ่มมีการนำมาใช้จริงในไม่กี่ปีที่ผ่านมานี้เอง แต่ถึงอย่างนั้น การพัฒนาในเรื่องของการใช้ data ในกีฬาฟุตบอล ก็ถือว่าโตติดจรวดพอสมควรเมื่อเทียบกับจำนวนปีที่มีการริเริ่มเรื่องนี้ขึ้น โดยในปี 2023 นั้น แหล่งข้อมูลในเรื่องของฟุตบอลนั้นมีมากมาย ยกตัวอย่างเช่น FBREF, FOTMOB, และ WhoScoresd.com

ส่วนในขาของการพัฒนาการใช้ data นั้นก็ไม่น้อยหน้าเช่นกัน เพราะมีการพัฒนาตั้งแต่เทคนิคที่ใช้หาว่าลูกบอลนั้นควรจะส่งไปให้ใครในทีมที่เรียกว่า Football Passing Networks เพื่อที่จะเพิ่มอัตราการชนะให้ได้สูงสุด ตลอดไปจนถึงการใช้หาตำแหน่งยืนที่จะทำให้มีโอกาสทำประตูได้สูงสุดด้วย นอกจากนี้ ยังมีการพัฒนาเทคโนโลยีเข้ามาช่วยฝึกซ้อมอย่างสิ่งที่เรียกว่า FOOTBONAUT ด้วยนะ

เอาเป็นว่า ถ้าใครสนใจเรื่องฟุตบอลไปพร้อม ๆ กับการวิเคราะห์มันด้วย data แล้วละก็ ขอช่วยประชาสัมพันธ์เพจ facebook ที่ชื่อว่า Weekends Analyst ของทาง speaker ให้อีกเสียง เพราะทางตัว speaker นั้นมีความฝันว่า อยากจะพัฒนา community ของ football analytics ในประเทศไทยให้เติบโตไปข้างหน้าด้วยกันกับทุกคน และหากใครอยากเห็น slide ของ session นี้แบบเต็ม ๆ สามารถตามไปดูได้ที่ Github ข้างล่างนี้เลย

Hit the (ML) road(map) Jack | Yael Daihes [LinkedIn]

ในฐานะที่ทำงานในสาย Data มาจะเข้าขวบปีที่ 5 ขอบอกเลยว่า session นี้ค่อนข้างมีประโยชน์อย่างยิ่ง โดยเฉพาะคนที่ทำงานในตำแหน่ง Data scientist ที่ได้มีโอกาสทำงานเป็น Cycle ที่เราเรียกว่า Sprint ในบริษัทด้านเทคโนโลยีอยู่เสมอ

โดยส่วนตัวเคยได้ยินมาว่า การเป็น Data scientist นั้นไม่เหมาะกับการทำงานในรูปแบบของ Sprint เพราะนอกจากเราจะต้องใช้เวลาไปกับการ research เพื่อหาความเป็นไปได้ของ solution อยู่ตลอดเวลาแล้ว เรายังไม่สามารถ guarantee ได้ว่าผลลัพธ์จะออกมาเป็นอย่างที่ต้องการอีกด้วย ดังนั้น การกำหนดขอบเขตเวลาไว้อย่างชัดเจนจนมากเกินไปอย่าง Sprint นั้นจึงไม่เหมาะสมเลย แต่ถึงอย่างนั้น การทำงานเป็น Sprint มันก็มีข้อดีของมันเช่นกัน เนื่องจากการกำหนดกรอบเวลานั้นมันทำให้การสื่อสารกับทีมอื่น ๆ เป็นไปได้ง่ายมากขึ้น และจะทำให้การทำงานกับทีมอื่นนั้น sync ไปด้วยกันได้ดีขึ้นอีกด้วย

และการเข้าฟัง session นี้ ทำให้ได้ไอเดียในการ manage โปรเจคของทีม Data science เป็นไปได้ง่ายขึ้นมากเลยทีเดียว เพราะเค้ามี framework ที่แนะนำกิจกรรมที่ควรทำอย่างเป็นลำดับขั้นตอน ยกตัวอย่างเช่น หากอยู่ในขั้นตอนแรกของการทำงานอย่าง Literature review กรอบเวลาการทำงานจากประสบการณ์มากกว่า 10 ขวบปีนั้นบอกว่าไม่ควรจะเกิน 14 วัน และที่สำคัญ คือขั้นตอนนี้ต้องการเพียงการอัพเดตแบบ 1-on-1 กับเพื่อนร่วมงานที่เป็น Senior เพื่อตัดสินใจร่วมกันต่อไป

นอกจากนี้ คุณ Yael ยังเน้นย้ำถึงการส่งมอบงานของทีม Data science ว่า การทำโปรเจค Machine learning model นั้น ไม่ควรทำจนมัน perfect ที่สุด แต่สิ่งที่ควรทำคือนำมันไปใช้จริงให้ได้เร็วที่สุด เพราะการทำจนมัน perfact นั้น impact ของมันที่มีต่อ business คือ 0 แต่การนำไปใช้จริงนั้นมันมี impact เกิดขึ้นแน่นอน

หากใครอยากเข้าใจเรื่องนี้ให้ละเอียดมากยิ่งขึ้น สามารถกด follow profile นี้เพื่อไม่ให้พลาดบทความสำคัญที่จะพูดถึงเรื่องนี้ต่อไปได้เลย

Access illimited powers with Python predictive analysis (taipy.core.Scenario) | Laetitia Hoquetis [LinkedIn]

แน่นอน ไม่มีงาน conference ไหนที่จะไม่เกิดข้อผิดพลาดเลย และ session นี้คือตัวอย่างของข้อผิดพลาดนั้น เพราะทาง speaker นั้นมายืนเขียน code และ run code ให้ดูสด ๆ กันต่อหน้าเลย แล้วมันก็เกิดเหตุการณ์อย่างที่ทุกคนน่าจะเคยเจอมาก่อน

ใช่ครับ… code มัน run ไม่ผ่าน

โชคยังดี ที่ทางตัว speaker เองนั้นมี code ใน Github ที่ run สำเร็จมาก่อนแล้ว จนแล้วจนรอด session นี้ก็เลยผ่านไปได้

จุดประสงค์ของ session นี้ คือการแนะนำให้ทุกคนได้รู้จักกับ Python library ที่มีชื่อว่า taipy ที่เอาไว้ช่วยให้เราทำหน้า web application ขึ้นมาได้อย่างง่ายดายภายใน 30 นาที ดูแล้วเป็น library ที่คล้ายกับ streamlit หรือ gradio ที่มีการใช้กับอยู่อย่างแพร่หลายเหมือนกัน

Engineering Velox: the unified execution engine for varied data infrastructures | Voltron Data

มาที่ฝั่งของ infrastructure กันบ้าง สิ่งที่ทาง Voltron data นำมาแชร์ในวันนี้ คือ Execution engine ที่มีชื่อว่า Velox ที่มีทีมมืออาชีพจาก Meta เป็นผู้ร่วมพัฒนา

Velox นั้นเป็น open-source ที่ต้องการเป็น Unified Execution engine หรือก็คือ engine ที่ไม่ว่าจะใช้ query engine ตัวไหนก็สามารถใช้ Velox ไปแทนที่ในส่วนของ Execution engine ได้ ดังตัวอย่างในรูปจะเห็นว่า ใน layer สีเขียวของ query engine’s infrastructure นั้นเอาเข้าจริงตัว Velox สามารถเข้าไปทำงานทดแทนได้หมดเลย

Visualizing Formula 1 Performance based on F1 Telemetry Data | Dima M Dinama [LinkedIn]

ลุยต่อกับฝั่งของการใช้ Python ทำ data analysis เนื้อหาของ session นี้สามารถสรุปได้เลยสั้น ๆ ว่าการทำ data analysis ในเรื่องของรถ Formula 1 สามารถทำได้ โดยการใช้ Python library อย่าง fastf1 ที่แค่ได้ยินชื่อ ก็รู้เลยว่าช่วยทำให้การทำ data analysis นั้นเสร็จเร็วขึ้นเป็นกอง

หากผมจะต้องพูดถึง library ตัวนี้ซักอย่างสองอย่าง หนึ่งคือ library ตัวนี้มี function ที่ช่วยให้เรา download data เกี่ยวกับ Formula 1 มาให้เล่นได้เลย และสอง คือ visualization ของ library นี้สวยดีแบบไม่ต้องปรับแต่งเอง

Functional Programming in Python | Twin P. [LinkedIn]

เปลี่ยนรสชาติเพื่อตัดเลี่ยนกันบ้าง กับ session ที่พูดถึงการเขียน code Python อีกแบบ อย่าง Functional programming จาก speaker ที่ออกตัวว่า ชอบเขียน Scala มาก มากซะจนไปเปิด คอร์สเรียนภาษา Scala อยู่ที่ Skooldio เลยด้วย พูดถึงงาน Python อยู่ดี ๆ ทำไมมาเข้าเรื่อง Scala ซะนี่ เอาล่ะ ขายของให้ขนาดนี้มีส่วนลดคอร์สเรียนดี ๆ ให้บ้างมั้ยนะ (ฮ่า ๆ)

เนื้อหาของ session นี้ไม่ใช่สิ่งที่ผมถนัดเลย ทาง speaker เริ่มต้น session ด้วยการแนะนำว่า Functional programming มีความหมายว่าอย่างไร และมี concept คืออะไรบ้าง ยกตัวอย่างเช่น function ที่เขียนนั้น จะต้องทำหน้าที่แค่อย่างเดียว และต้องทำมันให้ดีที่สุดด้วย และเพื่อให้เห็นภาพมากขึ้น ขอให้ทุกคนลองคิดดูซิว่า code ข้างล่างนี้มีทำหน้าที่ไปทั้งหมดกี่อย่าง

[float(row[1]) for row in data[1:]]

และคำตอบคือ 3 อย่าง! ซึ่งหมายถึงว่า หากจะต้องเขียน code ให้อยู่ในรูปแบบของ Functional programming แล้ว เราก็ควรจะแยกส่วนการทำงานของมันออกมาด้วยตาม concept แรกที่ว่าไว้

ถ้าจะต้องยกตัวอย่างอีกหนึ่ง concept สำคัญ สิ่งนั้นก็คือ function จะต้องเป็น Unary function ซึ่งมีความหมายคือ function ที่เขียนจะต้องรับได้เพียง argument เดียวเท่านั้น ถือได้ว่าเป็นอะไรที่ใหม่และเข้าใจยากสำหรับผมมากเลยทีเดียว

โชคยังดี ทางตัว speaker นั้นได้เตรียม code ให้ติดตามได้ง่ายเป็นลำดับขั้นตอนจาก Github นี้เอาไว้เรียบร้อยแล้ว วิธีการดูนั้นคือดูที่ชื่อไฟล์ไล่ไปตั้งแต่เลข 1_0_start_here_basic.py ไปจนถึงเลข 9_3_undone_pymonad_ultimate.py พร้อมอ่าน comment ข้างในประกอบได้เลย แต่ผมก็แอบปวดหัวอยู่เหมือนกัน (ฮ่า ๆ)

Code, Community, Startup: A Founder’s Journey | Chia-liang Kao [LinkedIn]

มาถึง session สุดท้ายสำหรับงานในรูปแบบ conference วันแรกแล้ว แน่นอนว่าจะเป็นใครที่ไหนไปไม่ได้ นอกจากคุณ Chia-liang Kao ผู้ที่ได้ขึ้นชื่อว่าเป็นอัจฉริยะ เป็นต้นว่า สมัยก่อน เมื่อตอนที่ Git ยังไม่ได้ครองโลกใบนี้ เรามีปัญหากันเรื่อง version control เป็นอย่างมาก เพราะอย่างที่เรารู้กันคือ ถ้าทุกวันนี้ไม่มี Git เราอาจจะยังตั้งชื่อไฟล์ว่า code_final_final.py กันอยู่ก็เป็นได้ แต่ทางคุณ Chia-liang Kao ก็ได้คิดสิ่งหนึ่งขึ้นมาตั้งแต่ปี 2003 สิ่งนั้นมีชื่อว่า SVK ที่ทำหน้าที่คล้ายกับ Git ในแบบทุกวันนี้เลย แต่สุดท้าย โปรเจคนี้ก็ต้องโดนพับเก็บไป เพราะการมาของ Git ในปี 2005 นั่นเอง

อีกหนึ่งโปรเจคสำคัญที่ตัว speaker เป็นผู้ริเริ่มคือโปรเจค g0v.tw หรือเรียกว่า gov-zero ที่มีจุดประสงค์เพื่อผลักดันให้การบริหารประเทศของรัฐบาลไต้หวันมีประสิทธิภาพมากขึ้น โดยการให้ประชาชนได้มีส่วนร่วมในการออกแบบรัฐบาลโดยเริ่มต้นจากรากฐานเลยนั่นเอง

และสุดท้าย ทางตัว speaker ได้พูดถึง tool อย่าง dbt (ย่อมาจาก data build tool) ซึ่งถือได้ว่าเป็น tool ที่ช่วยทำให้คนในฝั่ง data engineering ทำงานได้ง่ายขึ้นมาแนะนำภายใน session ด้วย

โดยข้อดีของ dbt นั้นสามารถสรุปแบบสั้น ๆ ได้เช่น มันนำเอาหลักการของทาง Software development ที่ดีอยู่แล้วอย่างการ testing หรือ version control มาใช้กับงานฝั่ง data ได้เป็นอย่างดี ของดีขนาดนี้มีใครจะไม่ชอบบ้างล่ะ?

นอกจากนี้ ยังมีคนทำส่วนเสริมที่ช่วยให้ dbt น่าใช้งานมากขึ้นไปอีกด้วยนะ ถ้าสนใจสามารถตามไปดูตาม link ข้างล่างนี้ได้เลย

จบไปแล้วสำหรับงานวันแรก หากใครชอบบทความนี้ อย่าลืมกด Clap เพื่อเป็นกำลังใจ และหากยังไม่หนำใจกับกับบทความนี้ ขอให้ไปอ่านต่อกับบทสรุปของงานวันสุดท้ายได้เลย

แล้วอย่าลืมกด follow profile นี้เพื่อรออ่านบทความใหม่ ๆ แบบนี้ด้วยนะ

สำหรับรายละเอียดเพิ่มเติมของงาน PyCon Thailand สามารถติดตามได้ที่

--

--

PCP

Data scientist | เขียนไปบ่นไป ความในใจของคนสาย Data | My linktree https://cutt.ly/vwFqTLKu | (╯°□°)╯︵ ┻━┻