[BPMN] Deploy Process ผ่าน REST-API

จริงๆ ใน Blog ตอนก่อน ช่วงที่ผมได้เล่นกับตัว Camunda BPMN ช่วงแรกจะพบว่าการ Deploy Process นั้นยุ่งยากครับ ต้องทำเป็นไฟล์ .war แล้วนำไปวางที่ Tomcat ครับ แต่จริงๆ มันมีวิธีการที่ง่ายกว่านั้น คือ การใช้ REST-API ครับ โดยมีข้อกำหนดของ Web Service ดังนี้ครับ REST-API : Deployment สำหรับตอนนี้ เราจะมาลองกันครับ โดยใช้ Tools ที่มีชื่อว่า POST-MAN สำหรับการทดสอบครับ โดยใน Blog ตอนนี้ ผมทดสอบ Create และ Delete BPMN ที่เราได้เพิ่ง Deploy ไปครับ ก่อนจะ Create สิ่งที่ต้องเตรียม BPMN Engine – Camunda ครับ ที่ผมเลือก ถ้าใช้ JBPM หรือ Activiti ก็สามารถทำได้ครับ POST-MAN ไฟล์ BPMN ครับ โดยมีการกำหนด Process ตามแผนภาพครับ CREATE ผ่าน REST-API Method = ‘POST’ URL : [base-url] /deployment/create ตัวอย่าง http://localhost:8080/engine-rest/deployment/create โดยมีการกำหนด Parameter ดังนี้ครับ ผลลัพธ์ที่ได้ครับ id คือ deploymemt id (988aa432-824f-11e8-8365-005056c00001) ซึ่งบ่งบอกว่าการ deploy process ของเรา ซึ่งเอาไว้ใช้อ้างอิงใน Operation ต่างๆที่เกี่ยวกับ BPMN ครับ ส่วนที่ผมตีกล่องไว้จะเป็นข้อมูลของ BPMN Process ครับ มาดูในส่วนของ…

[CUSE] ขอทุนอุดหนุนการวิจัย

photo of people having meeting

หลังจากนั่งทำ Paper กับ อาจารย์ที่ปรึกษาช่วงปีใหม่ ตอนนี้ผมก็ออกมาแล้วครับ ว่า Paper ที่ส่งไปติดแล้วครับ Conference Accept Paper เรียบร้อยแล้ว ขั้นตอนถัดมา คือ การขอทุน เพื่อให้ไม่พลาดแบบ Propasal โดนวางยาแบบมืนๆ คราวนี้ ผมขอตัวอย่างมาทั้งหมด 5 Sample ครับ สำหรับเอกสารขอทุนต้องมีเอกสารที่ต้องส่งก่อนไปนำเสนอผลงาน ได้แก่ เอกสารขอทุน สามารถ Download ได้จาก บัณฑิตวิทยาลัย-ทุนอุดหนุนการวิจัย โดยเอกสารในส่วนของ “ทุนสนับสนุนนิสิตระดับปริญญาดุษฎีบัณฑิต มหาบัณฑิตไปเสนอผลงานวิชาการในต่างประเทศ” โดยให้กรอกหน้าที่ 1-7 ให้เรียบร้อยก่อน ที่เหลือส่งหลังจากไปนำเสนอผลงานครับ (หากใครได้ทุนของที่อื่นก็เลือกตามแบบฟอร์มของทุนนั้นๆ ครับ) 12.1 หนังสือตอบรับจากองค์กรที่จัดประชุมให้นำผลงานไปเสนอในที่ประชุมในรูปแบบด้วยวาจา (Oral Presentation) หรือในรูปแบบโปสเตอร์ (Poster Presentation) หรือกรณีที่ยังไม่ได้รับการตอบรับ จากองค์กรที่จัดประชุมในวันที่ส่งแบบขอรับทุน ให้นิสิตส่งเอกสารตอบรับในวันที่ส่งหลักฐานการเบิกจ่ายเงินทุน และหากไม่มีหลักฐานการตอบรับมาแสดงในวันที่ส่งหลักฐานการเบิกจ่ายเงินทุน บัณฑิตวิทยาลัยจะไม่อนุมัติการเบิกจ่ายเงินทุนให้นิสิตดังกล่าว – อันนี้ให้เอาเมล์ตอบรับจาก Conference แนบไปครับ 12.3 บทคัดย่อ (abstract) 12.4 ผลงานฉบับสมบูรณ์ (Manuscript ที่ส่งตีพิมพ์ หรือ Full paper ที่ได้รับหรือตอบรับการตีพิมพ์) ที่เสนอขอรับทุน 12.5 หลักฐานที่แสดงว่า รายงานสืบเนื่องจากการประชุม หรือวารสารอยู่ในฐานข้อมูล ISI หรือ SCOPUS – ลองค้นหาว่ามีงานของ Conference ปีก่อนๆติดอยู่ใน ISI หรือ SCOPUS ถ้าพวก Conference ที่เพิ่งจัดครั้งแรก อันนี้น่าจะลำบากครับ 12.6 ประมาณการค่าใช้จ่ายตามเกณฑ์ ข้อ 6 (ในประกาศหลักเกณฑ์การสนับสนุนทุนฯ) ซึ่งรวมจำนวนเงินที่ขอแล้วต้องไม่เกินวงเงินที่จัดสรร 12.7 ใบอนุมัติโครงร่างวิทยานิพนธ์จากกรรมการบริหารคณะ/หน่วยงานเทียบเท่า ถ้าบัณฑิตของคณะวิศวกรรมจุฬาลงกรณ์มหาวิทยาลัย ไปขอที่ฝ่ายวิชาการ ตรงตึก 3 ชั้น แถวลานเกียร์ ต้องเตรียมบัตรนิสิตด้วยให้นะ…

[BPMN] Access Camunda H2 Database

หลังจากว่างเว้นไปกับ Blog ของ Camunda BPMN Engine ไปพักใหญ่ๆ คราวนี้มีเหตุต้องไปไล่ดูแล้วว่าตัว Camunda BPMN มันเก็บข้อมูลอะไรบ้าง เพื่อเอาไปใช้กับ Thesis ครับ โดยการเข้าถึงตัว H2 Local Database ของ Camunda มีวิธีการ ดังนี้ครับ เมื่อ Start ตัว Camunda เรียบร้อยแล้วให้เข้าไปที่ url http://localhost:8080/h2/h2 Login เข้า Database โดยใช้ข้อมูล ดังนี้ JDBC URL: jdbc:h2:./camunda-h2-dbs/process-engine Username: sa Password: sa ทดสอบ SELECT ข้อมูลออกมาดูได้เลยครับ Thesis ท้อแต่ต้องสู้ครับ

[CR] Xiaomi Purely Anti-Pollution Mask V.2

อันนี้เป็น Review หลังจากที่ใช้งานมาแล้วเกือบเดือนครับ จากช่วงต้นปีนี้ที่กระแส PM2.5 มาแรงแซงโค้งเลยครับ และแถมช่วงนี้ผมทำงานดึกด้วย แต่ก็ช่างมันเถอะครับ ก่อนที่ผมจะร่างกายแย่ไปกว่านี้ผมได้ทดสอบซื้อเจ้า Xiaomi Purely Anti-Pollution Mask V.2 ผ่านทาง Lazada ครับ สงวนราคาประมาณ 540 บาทครับ ใช้ Code ลด โปรลดทุดอย่างครับ หลังจากรอไป 2 วันเมื่อได้ของมาแล้วมาดูบรรจุภัณฑ์กันครับ เป็นกล่องที่ Import มาจากเมืองจีนจริงๆครับ เมื่อแกะออกมาพบของในกล่อง ดังนี้ครับ เวลาใช้งานก็ไม่ยากครับ เสียบชาร์จไว้ประมาณ 1-2 ชั่วโมงก็พร้อมใช้งานแล้วครับ ก่อนใช้งานตรวจสอบแผ่นกรองด้วยนะครับ พัดลม > แผ่นกรองสีเขียว > แผ่นกรองสีฟ้า ครับ สำหรับอายุการใช้งานประมาณ 10 ชั่วโมงครับ หลัง 10 ชั่วโมงลองดูแผ่นกรองได้เลยครับ ซ้าย-ก่อนใช้งาน / ขวา-หลังใช้งานมาแล้ว 10 ชั่วโมง ความเห็นส่วนตัวหลังจากใช้งานมา 2-3 สัปดาห์ครับ

[VM] Virtual Box ทำให้ตัว VM ตั้งเวลาไม่ให้เหมือนเครื่อง Host ได้

เนื่องจากพยายามย้ายงานที่เอาไปฝากบน PC หลายๆ เครื่อง ซึ่งมันลำบากพอตัวเลย ผมเลยย้ายมาที่ VM ครับ ซึ่งมันก็มีปัญหาอีกครับ เพราะ ตัว VM มันเชื่อเวลาจากเครื่อง Host ครับ ถ้าต้องมีเคสที่ต้องการจะปรับแก้เวลาของเครื่อง Guest หรือ VM ของเรา ปัญหา ตัว OS ของ Guest มันยอมให้ปรับครับ แต่พอผ่านไปสัก 3 นาที มันเด้งกลับไปเป็นเวลาเดิมครับ สาเหตุ เกิดจากตัว VM มันเชื่อเวลาจากเครื่อง Host ทางแก้ไข แน่นนอนว่ามีครับ นักพัฒนาทั่วโลกเจอกันครับ โดยทำตามขั้นตอน ดังนี้ครับ

[WIN] ติดตั้ง Windows Service ด้วย Command Line กันครับ

สำหรับหลายๆคนที่มีไฟล์ exe แล้วอยากจะผูกการทำงานให้อยู่กับ Service ของ Window ครับ ให้มันทำงานตั้งแต่เปิดเครื่อง หรือทำโดย User ที่สนใจ ตัว Windows เองมี Tools ที่ช่วยสำหรับงานนี้ครับ SC.exe การสร้าง Service รูปแบบคำสั่ง SC.exe CREATE [ServiceName – ไม่มี Space] binpath= “Full Path ของ exe ถ้ามี Space ให่ใส่เครื่องหมายคำพูดครอบด้วย” DisplayName= “ชื่อ Service สำหรับแสดงผล” start= {boot | system | auto | demand | disabled | delayed-auto} ตัวอย่าง การกำหนดคำอธิบายของ Service รูปแบบคำสั่ง ตัวอย่าง การหยุดการทำงานของ Service รูปแบบคำสั่ง ตัวอย่าง การลบ Service รูปแบบคำสั่ง ตัวอย่าง การเริ่มการทำงานของ Service รูปแบบคำสั่ง ตัวอย่าง การตรวจสอบสถานะของ Service รูปแบบคำสั่ง ตัวอย่าง SC.exe VS InstallUtil.exe ความแตกต่างระหว่าง SC.exe กับ InstallUtil.exe นั้น คือ ตัว InstallUtil.exe 1 executable สามารถลงแบบ Service ได้แค่ตัวเดียว เวอร์ชันเดียว (ดูจาก GUI) ที่เครื่องเท่านั้น ทำให้มีข้อจำกัดลง Service แบบหลาย Version ที่เครื่องเดียวกัน Reference

[CUSE] เขียน Paper

black laptop computer on brown wooden table beside books

การเขียน Paper มันเป็นการสรุปแนวคิด นำเสนอแนวคิดที่กำลังจะทำ เพื่อให้เกิดการระดมสมองให้นักวิจัยทั่วโลกที่สนใจมาทำต่อ สรุปผล หรือ สรุปองค์ความรู้ที่ได้ครับ ซึ่งสำหรับนักวิจัยตัวน้อยอย่างผมเนี่ย มาสรุปประเด็นที่ควรระวังของการเขียน Paper ดีกว่าครับ หากมีเรื่องอื่นๆ เดี๋ยวผมมาเพิ่มเติมครับ สำหรับ Paper ของผมกว่าจะผ่านได้ มีการปรับแก้จากอาจารย์ที่ปรึกษาไปเยอะเลยครับ เนื่องจาก Skill ภาษาด้านการเขียนนั้นแย่พอสมควรครับ และมีการปรับตามข้อกำหนดของ Conference อีกครับ สำหรับงานของผมเป็นการทดสอบวีคมิวเทชัน (Weak Mutation) กับแบบจำลองบีพีเอ็นเอ็นครับ ว่าจัดได้อย่างไร และแนวทางการทำเครื่องมือเพื่อช่วยนักทดสอบครับ ใน Paper “A Weak Mutation Testing Framework for BPMN” ครับ นำเสนอช่วง 13-15 มีนาคม 2562 ที่งาน International MultiConference of Engineers and Computer Scientists 2019 (IMECS 2019)

[REGEX] ดักจับ Pattern ของ ISO8601 Repeating Interval

ช่วงนี้ก็ยุ่งๆครับ พยายามดัน ตัว Tool และ Paper ของงานวิจัยครับ โดยสำหรับผมทำเกี่ยวกับ BPMN พวกวันทีเวลาทั้งหลายเนี่ย มันจะถูกจัดเก็บในรูปแบบมาตรฐาน ISO8601 ครับ หลายคนอาจจะคิดว่ามันไกลตัว แต่จริงๆมันแทรกซึมได้ไปในวิถี Developer แล้วครัับ เพราะ ISO8601 ถูกบรรจุในมาตรฐานของ JSON ครับ ลองดูว่าคุ้นๆกันไหมเอ่ยยย DateTime เห็นกันบ่อยครับ แต่ที่แปลก และน่าจะถูกลืมน่าจะเป็นพวก ที่ถูกลืม เพราะ มันมีสิ่งที่น่าจะมาก่อนแล้วอย่าง CRON Format ครับ หรือชาวเพนกินเรียกว่่า CRON JOB ครับ เกริ่นนำมายาวพอสมควรเลยครับ คราวนี้มาลองดูว่าปัญหาที่ผมเจอ คือ อะไร ถ้าเป็น มาที่ตัว Repeating Interval มันมี Combination แบบไหนได้บ้าง เท่าที่ผมเข้าใจนะ มาที่พระเอกของเราแล้วครับ โดยสังเกตุได้ว่า {R[N]}/{Interval} ต้องมาคู่กันครับ ถ้าเขียน Code ดักใช้ Regular Expression ช่วย โดยดักตามกลุ่ม ดังนี้ สำหรับแบบที 1 จะได้เป็น กลุ่ม {R[N]} หรือ กลุ่ม {Date หรือ Time} หรือ กลุ่ม {Interval} โดยได้ RegEx ดังนี้ ผมได้เขียน RegEx ไว้ ดังนี้ครับ และสำหรับ Java ผมได้ทดสอบเพิ่มเติม เนื่องจากมันจะมีข้อจุกจิเล็กน้อยของแต่ละภาษาครับ ปรับให้มันซับซ้อนขึ้นตามข้อกำหนดที่ {R[N]}/{Interval} มาคู่กันครับ

[JAVA] แก้ไข XML ในส่วนของ CDATA กันครับ

ช่วงนี้ก็กลับมาทำ Thesis แล้วครับ หลังจากที่ได้ทำงานอย่างหนัก เพื่อลูกค้าไปจนดึกดื่นครับ โดยในปัญหาที่ผมเจอ คือ ต้องการ Update ค่าใน XML ครับ โดยมีตัวอย่างของ XML ที่ต้องการแก้ไขค่า ดังนี้ครับ ก่อนแก้ไข หลังแก้ไข จากรูปเห็นว่าค่าใน XML Node ที่ผมต้องการแก้ไขมันมีอักขระพิเศษอย่าง สำหรับเจ้า CDATA มันมีชื่อเต็ม คือ Character Data ครับ จุดประสงค์ของมันก็ตรงตัวเลยครับ ยัดอะไรเข้ามาใช้ XML ก็ต้องเก็บตามที่ยัดครับ ไม่เว้นพวกอักขระพิเศษ ตามตารางด้านล่างเลยครับ สิ่งที่ XML เก็บ สัญลักษณ์ที่แสดง &lt ; < &gt ; > &le ; <= &ge ; >= มาดูดีกว่า Java มีการจัดการสำหรับการแก้ไขค่า CDATA บน Node ที่สนใจ ถ้าภาษา XML พื้นที่ตรงนี้จะเรียกว่า Text Node ครับ เอ้ามาดู Code กันเลยครับ

[ML] Decision Surface ของ Decision Tree และ Neural Network ต่างกันอย่างไร

ฺBlog นี้เป็นคำถามที่อยู่ดีๆก็นึกขึ้นมาได้ น่าจะเป็นตอนสมัยที่เรียน Machine Learning ตอน ป โท ก็เลยลองหาคำตอบเลยลองเขียนดูครับ ซึ่งผมของเอาภาพมาอธิบายดีกว่า โดยภาพผมเอามาจาก  โดยภาพนี้ ถ้าสังเกตุดีๆ พบว่า Decision Tree – มี Decision Surface ที่ขนานไปกับแกนเลย มองว่าเป็น Linear ก็ได้นะ ซึ่งถ้าลงลึกไปในตัวการทำงานของ Decision Tree มันมีลักษณะไปได้ 2 ทาง True / False ตาม Feature ที่สนใจ Neural Network – มี Decision Surface ที่มันจะลัดเลาะไปตามแกน และพบว่ามีคำตอบบางอัน ตอบไม่เหมือน Decision Tree ด้วยนะ แสดงว่ามันมี Error ซึ่งมันเป็นไปได้นะ ถ้าลองไปใช้ข้อมูล Sample Data ในตัว Rapidminer ดูพบว่า มันใช้ Hidden Layer ไม่ครับนะ สบายใจแล้ว ไม่รู้ว่าคำตอบจะถูกไหมหว่า งานระลึกชาติ