[BPMN] ลองคิดตัวอย่างของ Completion Condition กัน

พอดีช่วงนี้ได้ลองเล่น BPMN แล้ว ปัญหาที่สำคัญของ Spec ตัว BPMN เอง คือ ตัวอย่างน้อย และไม่ครอบคลุมตามคุณสมบัติที่ได้ระบุไว้ใน Spec ครับ อย่างที่ผมโคตรงง ตอนนี้ คือ Attribute ของ Multi-Instance ของ Task ครับ ลองมาคิดตัวอย่างกันดีกว่าครับ

  • Task “Monitor Shipment” – Completion Condition คือ
    • สินค้าถึงจุดหมายปลายทางแล้ว
  • Task “Approval TOR” – Completion Condition คือ
    • คณะกรรมการ 2 ใน 3 ของทั้งหมดอนุมติ
  • Task “Process Transaction” – Completion Condition คือ
    • ยอดรวมของทุกสินค้า และบริการทั้งหมดต้องเกินจาก Budget ที่ตั้งไว้ หรือ ทุก Transaction สามารถประมวลผลได้ โดยไม่มีปัญหา
    • ** ถ้าเกินจาก Budget เข้า Flow การตัดสินใจของ User
    • ** ถ้าไม่เกินส่งต่อให้ Supplier จัดการ

เดี๋ยวคิดออกอีกแล้วมาเขียนเพิ่มครับ

[DB2] เมื่อ Path ก็มี แต่ทำไมยัง สร้าง Database ไม่ได้ มีแต่ SQL1052N The database path path does not exist.

วันนี้ผมได้ไปช่วยน้องในทีมสำหรับอีก Project แต่ก็เจอปัญหามากมายเลยครับ ทั้งเรื่องขึ้น Database ที่ติดปัญหาขนาดของ Table ที่ Field เยอะมากจน Pagesize 4K ไม่พอ ทำให้ต้อง DROP DB แล้ว Import Data เข้าไปใหม่ ซึ่งปรากฏว่า Drive C ที่มันเหลือน้อยมากครับ 25 GB แต่ Database ที่ต้องการเอาเข้าไป มันตั้ง 80 GB ทางเลือกเดียวตอนนี้ คือ ต้องไปสร้าง Database ที่ Drive อื่นครับ ซึ่ง Drive ที่ว่าง คือ Drive E: มีที่ 150 GB เริ่มต้นลุยคำสั่งเลยครับ

อ้าวววววววว

SQL1052N: The database path path does not exist.

เกิดอะไรขึ้น !!!!!

ทางแก้ไขนะครับ

  • ตรวจสอบ Path ที่ต้องการก่อน อันนี้ Path จริงครับ สำหรับเคสนี้  E:\DBUAT  มีจริงนะครับ
  • สำหรับ Windows นะครับ ให้ตรวจสอบ Registry DB2_CREATE_DB_ON_PATH ว่ามีอยู่ หรือป่าวครับ ด้วยคำสั่ง  db2set -all  ผ่านทาง Command line ครับ
    • ถ้าไม่มี Set เพิ่มเลยครับ ด้วยคำสั่ง  db2set DB2_CREATE_DB_ON_PATH = yes  แต่ต้องเป็น User ของเครื่องต้องอยู่ในกลุ่ม db2Admin นะครับ
    • จากนั้น Restart เครื่องครับ

Reference

[Security] กลบทการเข้ารหัสแบบไทย ที่แฝงความนัย แต่คงด้วยความไพเราะสละสวย

พอดีได้ดู หนึ่งดาวฟ้าเดียว ย้อนหลังครับ ตอนนี้ละครน่าจะฉายจบแล้วมั่ง ตอนแรกผมก็กลบท น่าจะเหมือนกับพวกกฏเกณฑ์ของการประพันธ์โครงฉันท์ กาพย์กลอน ให้มีความไฟเราะครับ แต่ตอนนี้ กลบท มันไม่ใช่แฝงความไพเราะ ลองดูได้  ํYoutube ตอนนี้

มาดูความแรกจากในละครกัน

  • เข้ารหัส
  • ถอดรหัส

กลบท “ไทหลง” ที่มีกฏเกณฑ์ของการแทนตัวอักษรโดยขยับไปที่ตัวถัดไปอีก 3 ตัวอย่าง เช่น

  • ก == ง
  • ข == ค
  • ฃ == ฅ
  • ฆ == ฌ เป็นต้น

มันคุ้นๆสำหรับเด็กสายคอมอย่างๆเรา ผมเคยได้ยินตอนเรียนปี 1 วิชา CP121 เรื่องของ

  • Caesar Cipher ที่เป็นอัลกอริทึมในการเข้ารหัสยุคแรกๆ

    ภาพจาก https://flylib.com/books/en/1.2.1.133/1/
  • จนถึงแบบที่น่าจะคุ้นเคยกันดีอย่าง ROT13

    ภาพจาก https://en.wikipedia.org/wiki/ROT13

โอ้โห กลบท มันเป็น Idea การเข้ารหัสที่แฝงไปด้วยความไฟเราะครับ กลบท “ไทหลง” ถ้าเอาตัวอักษรมาทำ Look Up Table ก็จะได้ ดังนี้

ก == ง ข == ค ฃ == ฅ ฆ == ฌ
จ == ย ฉ == ช ซ == ฒ ญ == ฑ
ฏ == ฐ ฎ == ณ ด == ถ ต == น
ท == บ ธ == ฝ ป == ม ผ == พ
ฟ == ฮ ภ == ฬ ร == ล ว == ส, ศ, ษ
ห == อ

มาดูตัวอย่างกันครับ

  • การเข้ารหัส
  • ถอดรหัส

สำหรับรายละเอียดเกี่ยวกับกลบท สามารถดูเพิ่มเติมได้จาก ถอดรหัส “กลบท” จาก กาหลมหรทึก สู่ >> หนึ่งด้าวฟ้าเดียว ที่เว็บ Pantip.com ครับ

[BPMN] มาลองใช้ Timer Start Event กันครับ

จาก Blog ตอนที่แล้ว หลังจากไปตบตีกับ Timer Start Event  ที่ไม่สามารถ Deploy ได้มา 5 เต็มๆ หลังจากแก้ปัญหาได้แล้ว คราวนี้มาลองดูตัวอย่างกันครับ หลายคนที่อ่าน Spec ของ BPMN เอาน่าจะงงกันครับ

มาดูกระบวนการแบบง่ายๆกันก่อนครับ

  • Note: กระบวนการที่ไม่ได้เป็นตัวอย่างของกระบวนการทางธุรกิจจริงๆนะครับ แค่เพียงทดสอบ Start Timer Event โดยมีส่วนประกอบ ดังนี้
  • Start Timer Event – จุดนี้พระเอกเลยครับ เพราะมีการกำหนดตาม Spec ของ BPMN ครับ ตาม Date Pattern   R4/2018-06-03T00:00/PT5M Task นี้จะถูก Execute ครั้งแรก ในวันที่ 2018-06-03 เวลาเที่ยงคืน และทำงานไปต่ออีก 4 ครั้ง และทิ้งช่วงครั้งละ 5 นาทีครับ
    • ถ้าดูใน XML ในอยู่ในส่วนของ Timer  <bpmn:timerEventDefinition> และ  <bpmn:timeCycle>  ซึ่งมีการกำหนดรูปแบบของวันที่ตาม ISO 8601 ครับ
    • การ Config ใน Camunda Modeler ตามรูปเลย
  • Script Task “Collect Order Data” – อันนี้ไม่มีอะไรมากครับ แต่ Print “Task Execute” ตามรูปครับ
  • User Task “Accept Data” – สำหรับ Task นี้จริงๆ ผมแค่อยากทดสอบว่า Task ถูก  Execute จริงไหม โดยให้ Task ถูก Assign ที่ user mary และต้องทำ Task ให้เสร็จ (property duedate)ภายใน  2018-07-30T12:00:00  ครับ โดยมี Config ตามรูป
  • End Event – จบการทำงานครับ

รอที่ Job ทำงานครับ

  • ต้องรอเวลา 2018-06-03 เวลาเที่ยงคืน ถ้าขี้เกียจก็เปลี่ยนเวลาเครื่องได้เลยครับ (ถ้าบน Windows ที่ยังไม่ Activate จะไม่สามารถย้อนเวลาได้ครับ)

ดูผลลัพธ์

  • ดูที Console ของ Tomcat ครับ มีการ Execute 5 ครั้ง ครั้งแรกตอน Task Start ครับ และอีก 4 ครั้งตาม Config ครับ (เสียดายที่ลืมเขียนเวลาครับ)
  • มาดูที่ Task ของ Mary ครับ  มีงาน 5 งานมารอให้ mary สะสางครับ
    • เวลา 00:00
    • เวลา 00:05
    • เวลา 00:10
    • เวลา 00:15
    • เวลา 00:20

จบไปแล้วกับ Blog ตอนนี้ครับ ต่อไปถ้าว่าง ผมคงลองเขียน Timer Start Event ตามกระบวนการธุรกิจจริงๆครับ ^__^

[BPMN] เมื่อ Timer Start Event ทำให้เกิดปัญหา duedate is null

หลังจากทำ Thesis มาเรื่อยๆ ผมได้มาลองใช้ Timer Start Event ของแบบจำลอง BPMN พอจะ Deploy เท่านั้นแหละ ?

พระเจ้า !!!! ทำไมทำร้ายเด็กน้อยอย่างฉันเช่นนี้

ผมติดปัญหานี้มาประมาณ 2 สัปดาห์ครับ

ระหว่างที่ทำก็ไล่ถาม Google ตรวจการกำหนด Config ไปเรื่อยๆ จนถึงเวลาแล้วทีผม ต้องเอา Stacktrace มาลองไล่ Code ของตัว BPMN Engine ใน GitHub ครับ ซึ่งพอไล่ๆไปแล้ว

  • abstract class JobDeclaration ผมสงสัย Method resolveDueDate เพราะ มัน Code ที่น่าสงสัยครับ Return null เฉย
  • หลังจากขุดไปเรื่อยๆ เจอ Ticket อันนึงครับ อันนี้ >> https://app.camunda.com/jira/browse/CAM-4135 โดยสิ่งที่ผมสงสัย คือ ตัว XML Config ครับ

พบสาเหตุแล้ว

  • หลังจากไล่ Code มานานเลย ผมสังเกตุว่าเวลาที่กำหนดในแบบจำลอง มันเป็นเวลาในอดีตครับ 2018-04-30 แต่ในเวลาปัจจุบัน คือ 2018-06-05 และพอไล่ไปดู Code อีก ซับซ้อนมากครับ แต่ใจความสำคัญ คือ ว่าวันที่กำหนดใน Timer Start Event เป็นวันที่ในอดีต เมื่อเทียบกับวันที่ของ BPMN Engine แล้ว มันจะไปกำหนดค่า  jobExecutorAcquireByDueDate  ที่อยู่ใน Class  ProcessEngineConfiguration ให้มีค่าเป็น false ครับ
  • อ๋อ สรุปว่า Config XML ที่เจอ อาจจะยังไม่จำเป็นต้องใช้ [ผมของไปขุดเพิ่มเติมก่อน] แต่ตอนนี้ที่รู้แน่ๆ คือ ถ้า Code ถ้ามันตีความได้ว่า วันที่เราส่งไปในรูปแบบ ISO 8601 แล้วพบว่าเป็นวันในอดีต ระบบมัน Set Duedate เป็น null แทน
    • ถ้าในเครื่องจริง อาจจะต้องย้อนเวลาของ OS เอาครับ
    • แต่ถ้าทำพวก Unit Test สามารถใช้ตัว  ClockUtil  ได้ครับ โดยจะเอาไว้ในส่วนของ @Before หรือ @BeforeClass ของ JUnit4 ก็ได้ครับ ตาม Code ตัวอย่าง ดังนี้

มาลองดูผลลัพธ์กันครับ

  • สามารถทำงานได้แล้วครับ ^___^

[MSSQL] มาดูขนาดของ Database กัล

หลังจากช่วยได้ นอกจากเป็น Dev แล้ว อีกอย่างที่ Dev ควรรู้ด้วย คือ ตัว Database ครับ วันนี้ผมขอแปะ Query สำหรับดูขนาดของ Database ไฟล์ .mdf กับ .ldf โดยสามารถดูข้อมูลจากได้ Query ดังนี้ัครับ

ผลลัพธ์ที่ได้

ประโยชน์

  • เอาไว้สำหรับสร้างแผนการทำ Maintance ระบบ
  • เอาไว้สำหรับตัดสินใจการ Shink DB

[CR] ยาคูลท์ไลท์ นมเปรี้ยวสำหรับคนรุ่นใหม่ ใส่ใจสุขภาพ

หลังจากเดินจับโปเกม่อนมานาน ระหว่างทางอยู่ๆก็พบสาวยาคูลท์ครับ ซึ่งสิ่งที่ผมได้มา คือ

ยาคูลท์ ไลท์ ครับ

สำหรับคุณสมบัติของมันครับ

  • สูตรน้ำตาลน้อยแค่ 1.75% เท่านั้น แค่ 30 Kcal โดยถ้าเทียบกับสูตรดั่งเดิมน้ำตาล 18% ครับ
  • ราคา 8 บาท เพิ่มขึ้นจากสูตรดั่งเดิม 1 บาทครับ
  • รสชาติ โดยทั่วไปไม่ต่างกับ อาจจะมีความจื๊ดหวาน ที่ลดลง สำหรับคนติดหวานน่าจะรู้สึกได้ครับ ^__^

สรุป

ยาคูลท์ไลท์ นมเปรี้ยวสำหรับคนรุ่นใหม่ ใส่ใจสุขภาพ

[CR] เหนื่อยก็พักที่ PowerNap @Interchange Tower MRT Asoke

ติดปัญหา Error ของ BPMN ตั้งนานครับ พอแก้ได้แล้วเลยมาผ่อนคลายบ้างครับ ^__^ โดยวันนี้ผมได้ไปที่ร้าน PowerNap @Interchange Tower MRT Asoke ครับ เห็นใน Facebook มาหลายรอบแล้ว พอดีผ่านมาแถวนี้ด้วยโอกาศดีเลยครับ เตรียมนอนช่วงบ่ายครับ

ที่อยู่ร้าน

  • ตึก Interchange ชั้น B1 ครับ ถ้ามีใต้ดินออกปุ๊บจะโพล่มาเกือบถึงเลย
  • สำหรับตัว PowerNap Lounge จะอยู่ลึกนิดนึงครับ โดยอยู่ชั้น B1 และผ่านช่องทางเล็กๆ จุดสังเกตุ คือ ร้าน Amazon ครับ เจอช่องเล็กๆพุ่งเข้าไปเลยครับ
  • ถึงทางเข้าร้านแล้วครับ
  • ป้ายร้านครับ

ภาพรวมร้าน

  • ตัวร้านมี 2 ส่วน
    • ส่วน Cafe กับ Co-Working Space ครับ แอร์เย็นสบาย Wifi-เร็วดีครับ

      This slideshow requires JavaScript.

    • ส่วนการนอน จะเป็นห้องมืด ไฟสลัวนิดนึงครับ

      This slideshow requires JavaScript.

  • ถ้ามาครั้งแรกมี Welcome Drink ด้วย – ได้มาแบบงงๆเลย ตอนแรกกะจะมานวด
  • และก็ที่มีให้เปลี่ยนรองเท้า เป็นรองเท้าแตะน้องปลาวาฬด้วยนะครับ สำหรับคนที่ใส่ถุงเท้ามาก็สวมทับเลย เข้าใจว่าป้องกันเรื่องกลิ่นครับ

โปรโมชั่นที่ผมได้ลอง

  • นวดด้วยเครื่องนวด 30 นาทีครับ + เครื่องดื่มครับ + ฟังเพลงผ่อนคลายครับ โดย
    • 20 นาที เป็นการนวด โดยมี 3 โหมด ให้เลือก ได้แก่
      • โหมด Swing – เก้าอี้นวด ยกขึ้น สลับลบ และนวดคลายจุดไป โดยแต่ละรอบแรงที่กดจะค่อยๆ เพิ่มขึ้นนะ
      • โหมดกดจุด – สำหรับคนชอบนวดแรงๆ หรือชอบนวดแผนไทย
      • โหมดหลับสบาย – ตัวเก้าอี้จะปรับเป็นสำหรับนอน และนวดผ่อนคลายเบาๆครับ
      • Note: ในช่วง 3 นาทีแรก ทางพนักงานจะมาติดตามสอบถามครับ ว่าเครื่องซาดิสไปไหม โดนกดตรงไหนแรง หรือเจ็บตรงไหนบ้างครับ
    • 10 นาที สุดท้ายเป็นการนอนพัก มีพนักงานเอาผ้ามาให้ห่มด้วย หลับสบายเลยเรา
  • ค่าเสียหายหละ
    • ถ้าราคาเต็ม 190 บาทครับ แต่วันนี้มีโปรมาคนเดียวลด 30% ครับ เหลือ 133 บาท (อิจจฉาคนมีคู่ เพราะถ้ามาเป็นคู่ จะได้โปร 1 แถม 1 ครับ
    • ราคาเครื่องดื่มรวมกับค่านอน 190 บาทแล้วครับ ผมได้สั่ง Italian Soda– Peach ชื่นใจตื่นเลยครับ ^___^

ปิดท้าย

  • สบายครับ หลับเพลินนน
  • ถ้าสนใจตามไปที่ Fackbook Fanpage ได้ที่ Power Nap Lounge ครับ

 

[BPMN] เพิ่มเติมเกี่ยวกับ multiInstanceLoopCharacteristics

จาก Blog ที่แล้วที่ผมได้เขียนเกี่ยวกับตัวอย่างของ multiInstanceLoopCharacteristics โดยใช้ตัวอย่างเรื่อง กระบวนการของการขอเสนอรางวัลให้กับพนักงานดีเด่น ซึ่งลองเล่นไป เล่นมาแล้วพบปัญหา ดังนี้

  • Task “Evaluate Award” ได้ถูก Assign ให้เป็น Group โดยที่กรรมการแต่ละท่านเลือกไปทำครับ แต่มันสามารถ Claim ซ้ำกันได้ครับ แบบนี้ไม่ดีแน่ครับ
  • ทางแก้ไขหล่ะ
    • แบบที่ 1: แก้ไข Object ของ MultiInstance แล้วให้กำหนด User เป็น Assignee สำหรับ Task นั้นเลย
    • แบบที่ 2:แก้ไขโดยการเพิ่ม Listener แล้วเขียน Code ขึ้นมาตรวจสอบครับ
  • ** สำหรับใน Blog นี้ ผมใช้วิธีแรกครับ แต่จะแทรก ตัวอย่างของ Listener เข้าไปด้วยครับ

ลุยกันเลยครับ

  • สำหรับภาพรวมของกระบวนการ (Process) เหมือนเดิมครับ แต่จะแก้ Coding และ Config ข้างในมากกว่าครับ
  • มาเริ่มกันเลยครับ
  • ใน Script Task “Setup Reviews” ผมแก้จากการใช้ List มาเป็น Dictionary ครับ โดยให้ key = ชื่อคณะกรรมการ และ value = ผลการประเมินครับ ตาม Code ตัวอย่างเลย
  • มาที่พระเอกของแรกแล้วครับ ตรง Sub-Process “EvaluateProcess” ที่ถูกกำหนดเป็น MultiInstance ครับ
    • แก้ไข MultiInstance ครับ
      • มาดูที่รูปก่อนครับ
      • แล้วที่นี้กำหนดข้อมูลของแต่ะส่วน ดังนี้ครับ
        • Loop Cadinalityอันนี้เหมือนเดิมครับ คือ เอาค่าจากตัวแปร ${RequiredNumOfPeers} ที่กำหนดมาจาก Task Associate Reviews 
        • Collection – Data ที่ใช้ใน multiInstanceLoopCharacteristics ครับ โดยช้อมูลชุดนี้เกิดจาก Task Setup Reviews ที่สร้าง MAP ชื่อ ${reviewResultMap} ที่มีขนาดเท่ากับ ${RequiredNumOfPeers} ถ้าในตัวอย่างเท่ากับ 3 ซึ่งในแต่ละ Instance ของ Task เห็นข้อมูล reviewsResult(Object แต่ละอันใน MAP reviewsResults โดยดึงมาเฉพาะ Key ถ้าดูในแบบจำลองในส่วน Collection กำหนดให้ค่าเท่ากับ  ${reviewResultMap.keySet()}  ) ซึ่งประกาศไว้ในส่วน  element ในรูปแบบ 1 Instance ต่อ 1 Object ครับ
        • completionCondition ครับ ซึ่งถ้าเงื่อนไขเป็นจริง ก็จะออกจาก  multiInstanceLoopCharacteristics ครับ โดยเงื่อนไขทาง Business คือ กรรมการ 2 ใน 3 ท่าน ได้เข้าร่วมการประเมินครับ ซื่งสามารถกำหนดเงื่อนไขได้ ดังนี้
    • เพิ่ม Listener เพื่อกำหนดตัวแปรระดับ Local ให้ Engine รู้จักครับ โดยผมเพิ่มตัวแปร reviewer(ชื่อผู้ประเมิน) และ reviewResult(ผลการประเมิน) ซื้อยู่ใน Scope ของ Sub-Process “EvaluateProcess” ดังนี้ครับ
      • มาดูที่รูปก่อนครับ
      • ในส่วนของ Script มีการแก้ไข โดยจะ Execute ต่อเมื่อมีการเรียกใช้ Sub Process “EvaluateProcess” ครับ โดยมีรายละเอียดของ Script ดังนี้
  • Note: อย่าลืมแก้ไขชื่อตัวแปรให้ครับนะครับ ถ้าไป Run ที่ตัว BPMN Engine แล้วเสียเวลาพอสมควรครับ

ทดสอบกันเลยครับ

  • Mary ได้เริ่มการทำงานของ Reward Process แล้วครับ
  • Mary กรอกข้อมูลเพื่อเสนอชื่อของผมไปครับ (ในชีวิตจริงๆ ก็อยากได้เงินก้อนแบบนี้บ้าง T__T)
  • กำหนดรายละเอียดของ Task Associate Reviews  ครับ
  • สังเกตุดีๆว่าตอนนี้ Task “Evaluate Award” ได้ถูก Assign เข้าไปที่คณะกรรมการแต่ละท่านแล้วครับ เมื่อ Mary ได้เขียน Flow มาจนถึง Sub Process “EvaluateProcess” พบว่า User ที่เป็นกรรมการทั้ง 3 ท่านได้ถูก Assign Task เรียบร้อยครับ
    • User jame
    • User john
    • User peter
  • และเมื่อ 2 ใน 3 ของคณะกรรมการได้พิจารณา Task เรียบร้อยแล้ว พบ่วาระบบทำการ Clear อีก 1 Instance ให้อัตโนมัติครับ
  • เมื่อจบการตัดสินของคณะกรรมการแล้ง ระบบตัดสินผลลัพธ์ และแจ้งให้ Mary รับทราบผลลัพธ์ครับ

สำหรับ Source Code ของแบบจำลองครับ

  • มาดูที่ Github ได้เลยครับ

[CUSE] เทอมที่ 3 แล้วนะ !!!!!

สำหรับเทอมนี้เป็นเทอมที่มีการเปลี่ยนแปลงเยอะครับ ทั้งการเปลี่ยนแผนการเรียนจาก แผน ข ไปเป็น แผน ก ครับ มาดูกันดีกว่า ว่าเทอมนี้ ผมได้ลองวิชาอะไรไปบ้าง

  • Research Method
    • วิชานี้ก็ตามชื่อวิชาเลยครับ บอกว่าแนวทางการทำวิจัยเป็นอย่างไร และวิจัยในสาย SE มีด้านไหนบ้าง มีจุดควรระวังอะไร
    • ** ก่อนจะมีเรียนวิชานี้เป็นไปได้ควรมีหัวข้อ Master Project  หรือ Thesis ก่อนครับ
    • ปีของผมดีอย่างนึง – เนื่องจากคนน้อย มันเลยออกแนวๆ Private Class และทุกคนได้มีเวลาประชุม หาจุดบอดของหัวข้อที่เพื่อน แต่ละคนทำครับ
  • Enterprise Application Architecture(EAA)
    • วิชานี้ สำหรับคนที่ต้องออกแบบระบบขนาดใหญ่ครับ หรือจะสร้าง Framework ไว้ใช้งานในองค์กรครับ โดยยึดตาม Pattern ของ Martin Folwer ครับ ซึ่งเน้นสถาปัตยกรรมของระบบแบบ Layer จากนั้นค่อยดูลงไป แต่ละชั้นว่ามีอะไรบ้าง และควรใช้ตอนไหน
    • การสื่อสารสำหรับสาย SE แล้ว UML เป็นภาษากลางครับ
    • การเรียนวิชานี้ได้ Idea เห็นว่าจากสิ่งเล็กๆ อย่าง Design Pattern มันไปตอบโจทย์ของสถาปัตยกรรมของซอฟต์แวร์(Software Architecture) ได้อย่างไร ใช้สำหรับงานประเภทไหน จากเดิมที่งานมันเป็น Business Batch (Transaction Script) จนกลางมาเป็น Domain Model ได้อย่างไร
    • สำหรับ DEV ทำไปทำมา อาจจะร้องอ๋อ เพราะ เขียน Code มาแล้วโดยที่ไม่รู้ตัวก็ได้ อย่าง เช่น
      • PHP – Codeigniter
      • Java – Spring Framework
  • Machine Learning(ML)
    • สำหรับวิชานี้ ผมมองว่ามัน Math ล้วนๆ ที่เป็นพื้นฐานของวิชา Social Network Analysis(SNA) ที่ผมได้เรียนไปเมื่อเทอมที่แล้วครับ โดยตัว SNA ผมมองว่าเป็น Application หนึ่งของ ML นะครับ
    • เนื่อหาที่เรียนเป็นพวก
      • Decision Tree
      • Neural Network (ANN) – Linear Node, TLN, Sigmoid
      • Classification Naive Bayes – เอาไปใช้กับพวก Text Classification
      • Clustering – K-Mean กับ SOM
      • Evaluation ML Model – ว่าของทำมาแล้วบอกได้ไงว่า Model เรามั่นใจได้ แต่ไหน ตรงนี้เอาแนวคิดของทาง Stat เข้ามาช่วยครับ
      • SVM – อันนี้เป็น Application นึงของ Neural Network
    • ปัญหาที่เป็น Imbalance Data
      • แก้สัดส่วนของ Entropy
      • เบิ๊ลข้อมูลให้ใกล้เคียงกัน
    • DataSet: ที่ใช้เป็น Benchmark หรือใช้อ้างอิงในงานวิจัยต่างๆ  UCI Machine Learning Repository และก็ได้ลองเอา Data จากพวก Open Data มาทำ Term Project ด้วย
  • Thesis (3 หน่วยกิต)
    • ได้หัวข้อแล้ว แต่ยังพายวนในอ่างอยู่ครับ 5555 ตอนนี้ผมก็ศึกษา BPMN กับ Mutation Testing ครับ

เทอมนี้พอเข้าใจแล้วว่าทำไมเพื่อนหลายคนถึงลงเรียนน้อยๆกัน หรือไม่ลงเลยนอกจาก Research Method กับ Thesis ไอ้เราก็เสียดายค่าเทอมเกือบหกหมื่นเลยลงเรียน EAA กับ ML เพิ่ม แม้ว่าจะเกินจากแผน ก(2) ที่ต้องเรียนแล้วครับ

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

  • วิ่ง – เทอมนี้/ไม่สิปีนี้พยายามออกกำลังให้ได้มากสุดที่สุดครับ เดือนแรก สัปดาห์ละ 3 วัน พอหลังๆงานประจำ และเรียนรุมเร้า ผมก็พยายามจัดเวลาให้ได้สัปดาห์ละ 1 ครั้งครับ
  • กิน – รู้สึกว่า เริ่มเลือกกินมากขึ้นและ กินพวกผักเยอะขึ้น
  • ตอนนี้เริ่มคิดและว่าหลังเรียนจบ คงต้องตรวจสุขภาพแล้ว รู้สึกแบบว่าสมองทำงานหนักเกินไป จนบางทีก็เบลอๆ ลืมๆ อาจจะเพราะ เทอมนี้งานหนักด้วยกลับบ้าน 2-3 ทุ่มเกือบประจำ

เรื่องงาน

  • โคตรเยอะครับ – อยู่ๆงานตลอดสงกรานต์ ก็ต้องทำงานแทน T____T และปัญหาอีกหลายๆที่ผมเขียนบ่นใน Blog นี้แหละ ซึ่งถ้ามองกลับไปตอนเรียนนึงถึงวิชา PM ที่มีเรื่องของ Communication ถ้าไม่คุยทำความเข้าใจกันดีๆตั้งแต่เริ่มแล้วหละก็ เละครับ และส่วนใหญ่คนที่ซวยๆ ก็กรรมกรไอทีอย่างเราๆ