[.NET] ประกาศให้โลกรู้ว่า Method นี้ Class นั้น Obsolete ตกยุคแล้ว !!!

Update 2024-12-10จาก Code เล็กๆ เมื่อวันเวลาผ่านไป มันก็เติบโตขึ้น ผ่านการตัดต่อพันธุกรรมมาอย่างโชกโชน พร้อมกับภาระหน้าที่อันยิ่งใหญ่ แต่บาง Class บาง Method มันไม่ตอบโจทย์ทางธุรกิจแล้ว มันควรจะถูกกำจัดไปซะ แต่ Code มันบางส่วนมันใช้อยู่ เราจะทำอย่างไร เพื่อให้ทีม Develop ที่พัฒนาด้วยกัน เปลี่ยนไปเรียกใช้ Class หรือ Method ใหม่แทน !!! ทางแรก เราอาจจะประกาศแจ้งให้ในทีมทราบ แต่บางครั้งอาจจะมีหลงลืมบ้าง เพื่อป้องกันปัญหาระยะยาวทำแบบ Java ดีกว่า ตัว Java มันมีบอกว่า Code ส่วนไหนที่เลิกใช้ (deprecated) ไปแล้วครับ โดยในตัว .Net Framework / .NET Core / .NET 6++ มี Attribute ให้เรียกใช้ครับ คือ ตัว Obsolete ครับ สำหรับตัวอย่างมาลองดูจาก Scenario ดังนี้ครับ ขั้นแรก – เจรจาก่อน การใส่ Attribute Obsolete ไว้บน Method ที่เราต้องการ ในที่นี้ คือ ShiftWorkingDate ขั้นสอง – กระชับพื้นที่ เพิ่ม Message แจ้งเตือน ขั้นสาม – ขอคืนพื้นที่ หมดเวลาแล้ว กำหนด Flag เป็น true ครับ ถ้า Developer คนไหนยังไม่แก้ แก้เวลา Compile มัน Error ครับ สุดท้ายและ ทำไมถึงต้องมาเขียน เพราะ จาก Code เก่าที่ Migrate มา Method ShiftWorkingDay ที่ทำหน้าที่เลื่อนวันไปในกรณีที่เป็นวันหยุด…

[MICRO MBA] อบรมเสร็จแล้วได้อะไรบ้าง

Blog นี้ดองไว้นานเลย อบรมเสร็จวันที่ 5 ส.ค. 59 เพิ่งมาเขียน Blog สรุปเอาตอนสิ้นเดือน โดยสำหรับหัวข้อที่ผมได้ไปอบรมมา ขอแบ่งเป็นหมวด ดังนี้ครับ (ตอน อบรมจริง มันไม่เรียงกันนะครับ) Marketing – คิดนอกกรอบ จับจุดตี Requirement ให้ตรง Management – การจัดการใช้ได้หมด ไม่ว่าเป็นเรื่อง Business หรือ Software Accounting – ทุกอย่างต้องบันทึก มีขั้นตอนหลักการเหมือน Programming Finance –  เวลามีความสำคัญ มีข้อมูลรู้อดีต วางแผนอนาคต ปรับปรุงข้อด้อย Business Foundation – พูดดี นำเสนอดี สร้างความน่าเชื่อถือได้ สำหรับอบรมครั้งนี้ แม้ว่าจะมาแบบงงๆ แต่ได้ความรู้เยอะครับ เสียดายเวลาน้อยไปนิด เลยไม่ค่อยรู้จักใครเยอะครับ ผมเป็นคนที่ปรับตัวเข้ากับสภาพแวดล้อมใหม่ๆ จะใช้เวลาเยอะมากกครับ ในการอบรมครั้งนี้เนื้อหาที่ผมชอบที่สุดเป็นเรื่องบัญชี และการเงินครับ เพราะ มันตรงกับงานที่ทำอยู่เป็น คือ เป็น Programmer ใน Software House ที่เกี่ยวกับการเงินครับ และอีกเรื่องที่ผมพลาดไป คือ สมัครอบรมหลักสูตร Finance for Non-Finance รุ่น 2 ไม่ทันครับ T___T

สรุปงาน Python/Hadoop for Young Data Scientist

ภาพจากเพจ Data Science Thailand https://www.facebook.com/DataScienceTh/photos/a.876705342372714.1073741831.869639369745978/1145673978809181/?type=1&theater

เมื่อวันเสาร์ อาทิตย์ที่ผ่านมา (20-21 สิงหาคม 2559) ผมได้ไปงานสัมมนา Young Data Scientist ครับ โดยงานนี้เป็น Course เริ่มต้นสำหรับผู้ที่สนใจในเรื่อง Data Science ครับ อ๋องานนี่จัดเป็นครั้งที่ 2 แล้วนะ สำหรับงานนี้จะเน้นในเรื่อง Python กับ Hadoop ครับ สำหรับผมที่เป็นสาย Developer อยู่แล้ว ขอเลือก Python ครับ (ตัว Hadoop เคยลอง Set up เล่นๆใน vm แล้ว แต่ถ้าในงานนี้เป็นการเล่นบน MS Azure Cloud ครับ) มาต่อที่ห้อง Python ดีกว่าครับ ห้องนี้สอนโดย ดร. กานต์ ครับ Python for Young Data Scientists วันแรก 📌 Introduction to Python – รวมคำสั่งพื้นฐานที่จำเป็นสำหรับงานด้าน Data Science ครับ 📌 Library Pandas – สำหรับการจัดการข้อมูลดิบครับ และดูสถิติพื้นฐานครับ ผมมองว่าเป็นการทำ ETL + สถิติครับ 📌 แนะนำ Machine Learning และ Library scikit-learn – เป็น Library สำหรับเรียนรู้ Machine Learning โดยมีอัลกอริทึมสำเร็จรูปมาให้ใช้งานครับ วันที่สอง 📌 แสดงตัวอย่าง Python กับงานจริงครับ ผ่านตัวชุด DataSet ต่างๆ ครับ📌 ลองใช้ Kaggle – เจ้าตัว…

มาศึกษา python ผ่านตัว jupyter

จาก Blog ตอนที่แล้วเรื่อง มาลองเล่น “jupyter กัน” มันเป็นการศึกษา ลองเทสว่าใช้งานได้ก่อนมาเรียนครับ คราวนี้มาเรียนจริงและ โดย ดร. กานต์ (ไม่รู้เขียนชื่อ ถูกหรือป่าว ?) มาศึกษา python ผ่านตัว jupyter บ้าง โดยทำไมต้องใช้ jupyter มาดู Key ลัดใน jupyter ดีกว่า มาที่ Python กันบ้าง (มี Code ปนๆกับ Comment อธิบายแทรกไปด้วยกัน) Intro ข้อควรระวัง Python 2.x int / int = int ใน C# ก็เป็นนะ ผมมีเขียน Blog ไว้แล้ว “[C#] ทำไม int / int แล้วไม่มีทศนิยมหละ” แต่ Python 3.x int / int  ได้ Float Data Types Input & Output Unpacking Functions เหมือนพวก method C# / Java แหละ ขึ้นต้นด้วย def จริงๆมีอีกหลาย เรื่องนะ ที่คุ้นๆกัน เช่น จริงๆมีขยายความเพิ่มใน Blog MITx: 6.00.1x

[C#] ทำไม int / int แล้วไม่มีทศนิยมหละ

พอดีผมได้ Port Code ในส่วน Business Logic อันนึงจาก VB6 มาเป็ C# แทน เพราะดูแล้วเขียนใหม่น่าจะรีด Performance ได้ดีกว่าครับ หลังจากผมใช้เวลาไปประมาณ 1 เดือน ในการยก Code ขึ้นมา Complile ผ่านนะ แต่ Run แล้ว ประกอบกับ UnitTest แล้วผลลัพธ์ผิด พอลอง Debug เข้าไปดูแล้วพบว่า ถึงตอนนี้เราต้องไปดูที่ C# Specification ครับ โดยตัวภาษา C# แบ่งเรื่อง Division operator เป็น 3 กลุ่มครับ พออ่านมาถึงจุดนี้แล้ว ทำไม Microsoft ไม่ทำให้  Integer division แล้วได้ทศนิยมออกมาเลย หละ สำหรับผม ขอให้ความเห็น ดังนี้ครับ เข้าใจสาเหตุแล้วการแก้ไขหละ จบไปแล้วกับใน C# ผมเข้าใจว่าภาษาอื่นๆ มี Concept คล้ายๆกันครับ ถ้าว่างๆผมไปลองกับฝั่ง Java ให้ครับ และอย่าลืมศึกษาพื้นฐานให้เข้าใจก่อน Coding ครับ ^__^

มาลองเล่น jupyter กัน

ก่อนที่จะไปเรียนในวันรุ่งขึ้น ลองมาเล่น jupyter หรือ ชื่อเดิม IPython  โดยเจ้าตัวนี้เป็น Tools ที่รันบนเว็บเบราเซอร์ครับ เป็น IDE ที่ใช้งานง่ายตัวเลยครับ pip3 ของ Python3 ส่วนเวอร์ชั่น 2 ใช้คำสั่ง pip ครับ สำหรับ Error SyntaxError: Missing parentheses in call to ‘print’ พอดีผมใช้ Python3 ครับ มันเลยให้คำสั่งบางคำสั่งของ Python2 ใช้งานไม่ได้ครับ รู้สึกว่าการกลับมาเขียน Python ในรอบ 3 ปีนี่มีอะไรเปลี่ยนไปเยอะเลยครับ Reference

Data Science 0.121

Data = ข้อมูลดิบ ทำอะไรได้บ้าง ? ภาพนี้คงตอบได้หมดครับ ถ้าเรามีการจัดการกับข้อมูลที่ดี เราสามารถใช้ประโยชน์จากมันได้เต็มที่ครับ ถ้า Data เป็นวัตถุดิบที่ป้อนเข้าโรงงาน Information, knowledge, Insight และ Wisdom เป็นผลิตภัณฑ์ (Product) ที่ได้จากกระบวนการในขั้นตอนต่างๆครับ แล้วข้อมูลแต่ละแบบ บอกอะไรเราบ้าง ? ลองมาดูอีกมุม – Mind Map vs Mega Mind Map – Transaction Processing vs Event-Based Processing – อะไรที่ทำให้ Data Science ดัง งานด้าน Data Science – ใช้แผนภาพนี้น่าจะบอกได้ง่ายกว่า สำหรับในมุมของผม Data Science คือ งานในด้านการวิเคราะห์แบบหนึ่ง อย่าง System Analyst – เอาความต้องการของลูกค้ามาสร้างให้เป็นระบบงาน(Product) ขึ้นมาชิ้นนึง ส่วน Data Science เป็นงานที่สนใจนมุมของ Data เป็นพิเศษครับ ส่วนทำไม Blog ตอนนี้ชื่อ Data Science 0.121 โดย 0 = เริ่มต้น และ 121 เป็นวิชาสายคอมวิชาแรกที่ผมเรียนตอนปริญญาตรีครับ (CP121 – Computer Science Principle) แถมชอบ Repo นี้จัง ดูแล้วมัน Awesome

Anaconda: Test Drive

จากบทความที่แล้วที่เตรียม Environment มาแล้ว ผมลองเทสบางส่วน โดยอ้างอิงจาก conda 30-minute test drive. ครับ เดี๋ยวถ้ามีอะไรเพิ่มเติมเดี๋ยวผมมา Note ใน Blog นะครับ นอนและครับ พุ่งนี้ต้องไปนั่งเขียน Test ก่อน

Anaconda: Data science platform powered by Python

เนื่องจากผมได้ไปสมัครอบรม “Python/Hadoop for Young Data Scientists” ที่จัดโดย Data Science Thailand ทันพอดีครับ ก็เลยลองหาข้อมูลเล่นครับ ว่ามี Tools อะไรที่น่าเล่นบ้าง ในส่วนของ Python ครับ หลังจากลองหาข้อมูลสักพัก ผมเจอ Tools ตัวนึงที่น่าสนใจครับ Anaconda เจ้า Anaconda  มองว่าเป็น Package ที่พื้นฐานจาก Python และเสริมด้วย Plug-in ต่างๆ สำหรับงานทางด้าน Data Science ตามคำอธิบายของมันเลยครับ “Anaconda is the leading open data science platform powered by Python.” โดยส่วนเสริมที่มี เช่น  IPython หรือปัจจุบันเป็น jupyter, NumPy, Tornado , statsmodels และ อื่นๆ ลองไปดูได้เลยตรับ  ต่อไปเป็นการติดตั้งสามารถ Download ได้ตามลิงค์ Anaconda เลยครับ สำหรับผมที่เป็น Developer ที่เขียน Python ครั้งสุดท้ายตอน 3 ปี ก่อนโน้น จึงยังไม่มีอะไรมากแนะนำมากครับ รอรื้อฟื้นพลังในวันเสาร์ตอนอบรมครับ ขอไปลง Anaconda Windows Edition ครับ ช่วงนี้เป็นเด็กสาย .Net Framework (C#) ครับ ตอนลงของผมเจอปัญหา ดังนี้ครับ