[ML] Setup Python สำหรับ Machine Learning ใน Anaconda

บทความนี้ ทดสอบบน Windows นะครับ โดยตอนนี้เป็นการ Setup Python ใช้พร้อมกับการทำ Machine Learning ใน Anaconda ครับ สิ่งที่ต้องเตรียม ทดสอบ Conda Update Conda และ Anaconda Tip: ถ้าหากลิมเปิด Anaconda Prompt โดยลืม Run As Administrator มันจะด่าเรา ดังรูป Update Machine Learning Library scikit-learn Tip: หากต้องการระบุ Version เฉพาะเจาะจงลงไป สามารถใช้คำสั่ง ดังนี้ Testing: scikit-learn และ Library ที่จำเป็นสำหรับ Machine Learning เดี๋ยว Blog ตอนถัดไป อาจจะลองทำเรื่อง Setup Enviroment สำหรับ Deep Learning นะครับ (ถ้าว่าง)  

[C#] ตั้งชื่อเล่นของ Class (Alias) ให้เรียกใช้งานได้ง่าย

เวลาเราพัฒนาระบบที่มันซับซ้อนๆมากๆ ปัญหาที่ปวดหัวที่สุดเลย คือ การตั้งชื่อ บางทีชื่อตัวแปรยาวๆ ถ้าย่อไป อาจจะงงได้ Dev เลยใช้ชื่อเต็มไป พอลองเอาตัวแปรเหล่านี้มาใช้ มันดูเกะกะรกตามากครับ กว่าจะรู้ว่า ตั้งชื่อเล่นของ Class (Alias) ให้เรียกใช้งานได้ง่ายกันดีกว่า โดย C# มันมีวิธีในการการตั้งชื่อเล่น(Alias) กันนะ มาดู Code เดิมกันดีกว่า ถ้าสังเกตุใน Code พบว่า RebalanceProcessExtensions.Col_OriginalNAV ชื่อ Class RebalanceProcessExtensions มันยาวมากๆ ครับ ถ้าทำไปนานๆ Code ตรึมครับ ดูยาก ที่นี้มาลองใช้ตัวช่วยกันดีกว่า ลองใช้ Class Alias โดยการย่อชื่อ Class ไว้ช่วง using ครับ โดย Code ที่ได้จะเป็นประมาณนี้ จาก Code ใหม่ ย่อจาก RebalanceProcessExtensions ไปเป็น RBExt แล้ว Code ที่เขียนออกมา สั้นลง และดูสบายตาขึ้น ครับ Reference

[BPMN] ลองเอา Process ที่ทำมา Deploy ขึ้นกัน

จาก Blog ก่อนหน้านี้ที่ได้ลองสร้าง Process ไปแล้ว คราวนี้ลองเอา Process ที่ทำ มาผูกให้เป็น Application โดยใช้ Activiti-App ตัว Kick Start ครับ เนื่องจาก Form ที่ทำโดยใช้ Activiti Designer ยังไม่สมบูรณ์ครับ เลยต้องเอามาปรับปรุงใน Kick Start  โดยการเพิ่ม Form ลงไป เพราะใน Process ที่ทำไว้ก่อนหน้านั้น เราได้กำหนดแค่ภาพรวม Workflow ไว้แล้ว จริงๆมาสร้าง Workflow ในตัว Kickstart ได้เลยนะ ไม่ต้องผ่านตัว Eclipse Designer ก็ได้ครับ เพิ่ม User และ Group ที่เกี่ยวข้อง มาปรับ Process ให้ตามขั้นตอน ดังนี้ – GUI Form Activity “Employee Request Budget” สำหรับ Employee ในกรอกจำนวนเงินที่ต้องการขอเบิก Activity “Manager Review / Approve” สำหรับให้ Manager ตรวจทาน และอนุม้ติ ผลการร้องขอเบิกเงิน – ปรับเรื่อง Owner ในแต่ละ Activity ให้ลงตาม Group ในที่นี้ยกตัวอย่างของ Activity Accountant Acknowledge โดยต้องให้ User ที่อยู่ในกลุ่ม Accountant เข้ามาจัดการครับ ส่วนที่ Group เหลือ Employee และ Manager ลองปรับตามได้ แปลง Process เป็น App เพื่อ Deploy หลังจาก Deploy (Publish…

[CR] McDonald – Big Breakfast

พอดีช่วงนี้ต้องพึ่งพา McDonald ประจำครับ โดยวันนี้ผมเกิดอยากลองอะไรแปลกๆ เลยลองสั่งชุด Big Breakfast มาทานครับ โดยราคาอยู่ที่ 162 บาทครับ อ๋อถ้าเกิดอยากเปลี่ยนจากกาแฟไปเป็นน้ำอัดลมเพิ่มอีก 6 บาทครับ โดยชุดที่ผมสั่งมาได้เปลี่ยนกาแฟไปเป็นสไปร์ทแทนครับ โดยพอได้รับของมา ชุด Big Breakfast ออกมาประมาณนี้ โดยในชุดประกอบไปด้วย ภาพอื่นๆ ถ้าถามความอิ่ม บอกเลยว่าไม่อิ่มครับ ที่อร่อยน่าจะเป็นไข่ข้น กับปลาทอด สำหรับผมถ้าราคานี้ลองเปลี่ยนเป็นชุดไก่ทอด 129 บาท น่าจะดีกว่าครับ หรือจะเอาชุด Combo 49 บาทที่ขายตอนเช้าดีกว่า

[RUN] Intania Chula Mini Marathon 2018

วันนี้เหนื่อยมากครับ ผมได้กลับมาลองวิ่งในงานวิ่งจริงๆจังๆแล้ว หลังจากทิ้งห่างไปนานมากกกกกกก ในงานครั้งก่อนครับ “กลิ้งมินิมาราธอนครั้งแรก Globe-Athon 2016 ที่ The Sense Pinklao” ห่างไป 2 ปีคราวนี้กลัยมาวิ่งอีกครั้งในงาน Intania Chula Mini Marathon 2018 ( #ICMM2018 ) แต่คราวนี้ขอแบบ Fun Run 5KM ครับ 2018-01-13: รับเสื้อ 2018-01-14: วันวิ่งครับ ปีหน้าข้าพเจ้าสัญญาว่า ลงสมัครงานวิ่งนี้แบบ 10 KM ครับ

[BPMN] Activiti สร้าง Unit Test

หลงจาก Blog ตอนที่แล้ว ที่ได้สร้าง Process ของการขอเบิกเงินไปแล้ว ตอนนี้เราต้องมา Proof ก่อนว่า Process ที่ทำนั้น มันใช้งานได้จริงๆ พร้อมที่นำไป Deploy ขึ้น Activiti Server ครับ โดยมีขั้นตอน ดังนี้ Step 1 : กำหนดโครงสร้างไฟล์ที่เกี่ยวข้องกันก่อน Step 2 : สร้างไฟล์ Config ที่เกี่ยวข้อง Step 3 : เอาไฟล์ Process มาใส่ Step 4 : สร้าง Unit Test ขึ้นครับ ตั้งโครงใหม่ ให้มันเข้ากับ Activiti 6.0 และ JUnit 5 กันก่อนครับ โดยใช้ Test แบ่งเป็นช่วงๆ ดังนี้ 📌 ส่วน @BeforeAll – ทำงานตอน Execute Test ครั้งแรก โดยสร้าง ActivitiRule ขึ้นมา เพื่อเตรียม Activiti-Engine ให้พร้อม 📌 ส่วน @BeforeEach และ @AfterEach เป็นส่วนที่ทำงานก่อน และหลัง Test Case แต่ละอัน 📌 ส่วน @Test เป็น Test Case ที่เตรียมไว้ ซึ่งมี 5 Test Case ดังนี้ Step 5 : ทดสอบ Run Unit Test ปัญหาที่เกิด

[BPMN] ลองสร้าง Process โดยใช้ Activiti Designer

หลังจากที่ได้ลงทุกอย่างพร้อมหมดแล้ว ทั้ง Activiti Framework, Eclipse Activiti Designer แล้ว คราวนี้มาลองใช้ Activiti Designer ลองสร้าง Process แบบง่ายๆขึ้นมาครับ จากนั้นน่าจะเป็น Blog ตอนถัดไปสำหรับการทำ Unit Test ของ Process ครับ เอาหละมาเริ่มกันเลยครับ Step 1 : เตรียมตัว Step 2 : Process ที่สร้าง BPMN Step 3 : สร้าง Activiti Project กัน จากรูปมาเจาะโครงสร้าง Project ดีกว่า ว่าแต่ละ Folder ใส่อะไรบ้าง Step 4 : สร้าง BPMN Process กัน Step 5 : สร้าง BPMM Process ตามโจทย์ที่กำหนดไว้ใน Step 2 📌 ขั้นแรกไปดูที่ Patette จากนั้นลองลาก Component ต่างๆมาสร้าง Diagram ดังรูป 📌 คลิกที่พื้นที่ว่างๆ กำหนด Procee ID และ Name ดังรูป จากนี้ไปผมเจาะ เฉพาะจุดที่มี Config ที่สำคัญ และทำให้ตัว BPMN มันสามารถ Execute ได้จริงครับ 📌 User Task ชื่อว่า  Employee Request Budget หน้าที่ของ Task นี้ให้พนักงานกรอกงบประมาณที่ต้องการ สำหรับการตั้งค่าอื่นๆ ให้ดูจากรูปด้านล่างเลยครับ 📌 Exclusive Gateway…

[BPMN] เปลี่ยน Activiti Framework มาใช้ MySQL

จาก Blog ตอนก่อนหน้าที่ได้ติดตั้งตัว Activiti Framework แต่ยังใช้ตัว H2 ซึ่งเป็น In-Memory Database คราวนี้ ลองมาเปลี่ยนใช้ DBMS เจ้าอื่นๆบ้าง โดยใช้ตัว MySQL ครับ เพิ่มให้ Web Application แต่ละตัวทำงานเชื่อมโยงกันได้ครับ หากย้อนกลับไปดูไฟล์ของ Activiti Framework ที่ Download มาพบว่าข้างในมี Folder database ดังรูปนะครับ ลองเข้าลึกไปอีกที อ่ามีให้ครบครัน ทั้ง Create / Drop / Upgrade ครับ ต้องนี้คงต้องภาวนาขอให้ Script ที่ให้มามันครบนะครับ เพราะ ส่วนใหญ่ Open-Source มันจะตามอะไรกันยากนิดนึง ที่เขียน Blog ไว้ เพิ่มทวนความจำเหมือนกัน ไม่งั้นเดี๋ยวตอนกลับมาดูอีกทีจะลีมได้ครับ หลังจากเห็นสิ่งที่ Activiti Framework เตรียมมาให้แล้ว คราวนี้ลองมาทำกันบ้าง ดีกว่า โดยมีขั้นตอน ดังนี้ Step 1 : เตรียมตัว Step 2 : ลงมือกันครับ Step 2.1 : Run ผ่าน Script SQL 📌 จากนั้น Run Script ตาม Database ในแต่ละชนิดได้เลย อันนี้น่าจะเหมาะสำหรับ DBA ที่ต้อง Run Script ขึ้น Production ดังรูป Step 2.2 : Config Properties Files และ XML File ที่เกี่ยวข้อง 📌 สร้าง Database…

[BPMN] ลง Eclipse Activiti Designer

Blog ช่วงนี้เป็นการสรุปลง Program ล้วนๆ เผื่อต้องมาทำเล่ม Project ตอนหลังจะได้ไม่ต้องระลึกชาติครับ สำหรับ Blog ตอนนี้เป็นการลงตัว BPMN 2.0 Designer บน Editor ยอดนิยมอย่าง Eclipse ครับ โดยการลงมีขั้นตอน ดังนี้ Step 1: เตรียมตัว Step 2: ติดตั้ง Step 3: Test

[BPMN] ติดตั้ง Activiti Framework

หลังจาก Setup Apache Tomcat ไปแล้ว และรู้ Overview ของ Activiti ฺBPMN Framework คราวที่มาลงกันลองคิดตั้งกันคิดว่าครับ โดยมีขั้นตอน ดังนี้ Step 1 : เตรียมตัว Step 2 : แตกไฟล์ Activity Framework Step 3 : Deploy .War จากนั้น Start Tomcat โดยผ่านไฟล์ startup.bat (Windows) หรือ startup.sh (Unix & Linux) รอ Tomcat มัน Deploy ไฟล์ .war ทั้ง 3 ตัวครับ โดยสังเกตุได้จาก Log ดังนี้ ลองทดสอบเข้า REST API หลังจากรอ Deploy มาสักพัก เมื่อเสร็จแล้ว ในโพลเดอร์ webapps มีตัว Web Apllication ของ Activiti-App, Activiti-Admin และ Activiti-Rest ถูกติดตั้งเรียบร้อยแล้วครับ ซึ่งถ้าเข้าไปดูใน Tomcat Manager มีลักษณะ ดังนี้ครับ Step 4 : Test Activiti Framework หมายเหตุ: ตัว Activiti-App ใช้ Database ร่วมกับ Activiti-Rest ซึ่งถ้าใช้ข้อมูล Demo ซึ่งเป็น H2 In-memory Database