สรุปงาน Data Science Talk Chill #1

สำหรับวันนี ผมมาแบบ + 1 ครับ ตอนที่พี่ที่บริษัทชวนมา ไอ้เราก็บอกว่าไปด้วย แถมลืมจ่ายตังค์ให้พี่เค้าอีก ดองค่างานข้ามปีกันเลยทีเดียวครับ สำหรับงานวันที่สถานที่จัดงาน คือ ที่ LINK Collaboration Space @ MRT หัวลำโพง มันอยู่แถวอุทยานจุฬาผป 100 ปีครับ ฝั่งถนนบรรทัดทองครับ ทางเข้าก็ซ่อนแอบอยู่ข้างโรงเรียนครับ เดินหลงไปเหมือนกัน

สำหรับงานในวันนี้เป็น Flash Talk ลั้นๆ ประมาณ 15 นาที โดยมี Session ดังนี้

NLP – Natural Language of Passion โดย ดร.อาร์ม [ NECTEC ]

  • ทุกปัญหา ทุกเรื่อง มันมี Pattern อย่าง ดร. อาร์ม สนใจความแปลกในภาษาเขียนของชนชาติต่างๆ Math และองค์ความรู้ของฝั่ง IT มันมีความหลงไหล(Passion) ที่พยายามหา Pattern ของมัน
  • Passion มาจากไหน ลองมาดู Pattern Finder Process
    • เกลียด – เจอปัญหา อยากรู้คำตอบ
    • สำรวจ Data – มันมีอะไรบ้าง ?
    • สกัด information และ เบาะแส จาก Data
    • หา Abstract pattern
    • แก้ปัญหา โดยเริ่มจาก Abstract Pattern
    • ทบทวนดูว่าเราได้อะไร จากการแก้ปัญหา ตาม Abstract Pattern นั้น
  • Language of passion
    • ตัวเอง- อะไรที่ตัวเองตื่นเต้น Wow เราเองก็ไม่ต้องฝืนไปกับมัน และมันมีความท้าทาย ให้สู้
    • สร้างตัวตน – make a plan 》 strive for execellence ต้องสุ้สิ 》 Continuous Improvement & Contribute
    • ช่วยสังคม – ทำเอง 》 สอน 》 สร้างแรงบันดาลใจให้ผู้อื่น(Inspiration)
  • สุดท้ายแล้ว ทำอะไรตาม Passion แล้ว อย่าลืมทำเพื่อสังคม ^__^

People With Passion Can Change The World, Steve Jobs

DS แบบไม่ต้องโค้ด โดย ดร.เอกสิทธิ์ [ DATA CUBE ]

  • Text Mining ข้อมูลทั่วๆไปมี 2 แบบ
    • Structure – พวก XML
    • Unstructure
  • Application
    • Classify
    • Sentimental Analysis
  • ถ้าวิเคราะห์ทำ Text Mining กับ Twitter เรามีขั้นตอน อย่างไร
    • เอา Emoticon ออก
    • ทำ Tokenization ตัด stop word ทำ Tf (Term Frequency) IDF- คำไหนสำคัญ
    • มันจัดกลุ่มคำว่าคำไหนเป็น + หรือ –
  • สำหรับ Tools ที่ใช้ โดยไม่ต้อง Code คือ โปรแกรม Rapid Miner
    • Rapid Miner เป็นลักษณะของ Process ลาก แต่ละ Operator มาต่อกัน ซึ่งตัว Twitter เอง มี Operator ของ Search Twitter นะ
    • ใน Rapid Miner เวอร์ชัน 8.x ตัว Tools เองมี Feature ใหม่อย่าง Auto Model ใช้ Run Model Machine Learing หลายๆ Model พร้อมๆ และเลือก Model ที่เหมาะสมมาให้ แต่มันมีข้อจำกัดว่าต้องใช้ในเวอร์ชันเสียเงิน หรือ Educational License(ใช้ได้ 1 ปี) ต้องใช้ E-mail ของมหาวิทยาลัยสมัย

From Good to Great DS โดย ดร.ศิษฎพงศ์ [ G-ABLE ]

  • ผมชอบ Quote นี้นะ

    Good is enemy of great – Jame C. Colins จะทำอะไรให้ดีง่าย แต่ถ้าต้องการเป็นที่หนึ่งมันยาก

  • โลกมันหมุนไปเร็วมาก จากเดิมการจัดการองค์ความรู้ มันมี 4 ระดับ ได้แก่ Data(ข้อมูลดิบ), Information(สารสนเทศ – ผมมองว่าเป็นข้อมูลที่ผ่าน Preprocess มาแล้ว สะอาด), Knowledge(ความรู้-เชี่ยวชาญ) และ Wisdom(ปัญญา-เอามาปรับใช้ได้จริง) แต่ในปัจจุบันความต้องของฝั่งธุรกิจเปลี่ยนไปเร็วมาก จนบางทีการพัฒนา Information ขึ้นมา มันไม่ทันกับธุรกิจ จนบางครั้งต้องคุยที่ Data ดิบ ซึ่งถ้าสามารถทำที่สามารถสร้าง Wisdom ก็ถือว่าเป็นผู้นำ
  • Organisational Maturity – ผมชอบคำนี้นะ บอกว่า เราพร้อมมีวุฒิภาวะมากเพียงไหน จริงพอลองมาดูกับ SDLC เออช่าย

    • Fundamental – ตระหนักถึง เช่น AI ทำอะไรได้ ยังไม่มีการเตรียมข้อมูล
    • Approaching – มีการจัดการข้อมูล และบอกได้ว่ามันสร้างประโยชน์อะไรได้
    • Aspirational – เอาข้อมูลที่จัดการแล้ว มาคิดต่างได้ สร้าง Product & Service พวก Startup จัดในกลุ่มนี้ คือ มี Experiment & Apply
    • Mature – เอาไปใช้งานจริงแล้ว มีการ MA ดูแลต่อไปได้
  • 3D
    • Data Scientist – ทำให้ได้ Insight
    • Data Engineer – ทำให้ Data มันสะอาด
    • Data Analyst – ทำให้มันเห็นภาพ
  • ทุกองค์กร สมัยนี้ต้องมี R&D สร้าง Insight ใหม่ๆ มา (อธิบายได้ด้วยนะ ว่ามันมีที่มาอย่างไร ให้ Business เอาไปใช้) และ Factory ทำให้มันตอบโจทย์ Busimess
  • Data Science = Processing >> Insight >> Action (บอกได้ว่า Fact ที่ได้ Insight ที่ได้ เกิดจากอะไร มาจากไหน)
  • ถ้าถามผม Session นี้
    • R&D = Data Science
    • ส่วน Factory = Software Engineering มี Process / Coding ดี รวมถึง Product ที่ออกมามีคุณภาพ(Quality)

Data Science Pipeline โดย ดร.กานต์ [ PRONTO MARKETING ]

  • ทุกวันนี้ Data มีขยะเพิ่มมากกว่าข้อมูลที่พร้อมใช้หา Insight เช่น ทำ 5 วัน ใช้ 5 วิ
  • Data Pipeline – Process การประมวลผลข้อมุล แบ่งเป็น Block / Debug รับ Stream และ Automate
  • มาดู Stack ของ Pronto บ้าง

Master of Data Science โดย แอดเพิร์ธ [ Data Science ชิลชิล ]

  • หลายมหาวิทยาลัย Top ของโลกมีปริญญาโทด้าน Data Science กันแล้วครับ Google ได้เลย *เท่าที่ผมทราบมาของไทยมีที่ NIDA กับที่ CHULA(ออกแนว Technical เยอะ)
  • ตอนนี้ แอดเพิร์ธเรียนที่ ที่ Australia ที่มหาวิทยาลัย Monash สำหรับหลักสุตร Master of Data Science จะเรียนกัน 2 ปี 4 เทอม ซึ่งใน 1 เทอม(12 week) เรียน 16 หน่วย ตีง่ายๆลงได้มากสุด 4 วิชา ซึ่งใน 1 คาบ 4 ชั่วโมงแบ่งเป็น
    • Lecture 2 ชั่วโมง
    • Lab 2 ชั่วโมง โดย Lab เป็น Workshop และ Lab ที่นี่ ทำแล้วลองตรวจผลลัพธ์ได้เลยครับ (อันนี้ ผมคิด น่าจะเหมือนระบบของตัว Edx นะครับ)
  • แต่ละเทอมเรียนอะไรบ้าง
    • เทอม 1 – Foundation Unit ปูพื้นฐาน Data Science
    • เทอม 2 – เรียนลึกเรื่อง Data Science
    • เทอม 3 – เรียน + ติดต่ออาจารย์ทำ Thesis
    • เทอม 4 – เรียน + ทำ Thesis ให้จบ และ Speaker บอกว่า ป.โท ที่ต่างประเทศ มันเรียนข้ามสายได้ด้วย อย่างตัว speaker เองไปลงวิชาทาง Business
  • จุดเด่น – มันมี Course ปูพื้นฐานให้ ถ้าไม่จบสายคอมก็เรียนได้ Data Sciecne ของที่ Monash – รู้ภาพกว้างๆ 3 มุมมอง

    • IT – Programming / Algorithm / Data Structure / Database / BI / Big Data
    • Math – Stat / Data Model/ Data Analysis / Machine Learning / etc.
    • Business – Minor Thesis หรือ Industry Experience (ผมเข้าใจว่าเป็นพวกสหกิจนะ)
  • นอกจากเรียนมีกิจกรรมอื่นๆมากมาย
    • ท่องเที่ยว
    • Meetup – งาน Tech ต่างๆ หรืองานอื่นๆ
    • ศัพท์ใหม่สำหรับผมนะ Datathon vs. Hackathon
      • Datathon – หา insight จาก Data
      • Hackathon – ทำ Product ตอบโจทย์กับปัญหา

 ชีวิตดราม่าของคนทำ Social โดย @leafsway [ Thoth Zocial ]

  • Social Media Research มีแบบไหนบ้างนะ Speaker ได้แบ่งเองนะตามรูป

    • Note: Social Listening – เป็นการดูแบบ Passive ผมเข้าใจว่ามองทางอ้อม อยากรู้ว่าสังคมพูดถึงเราอย่างไร !!!!
  • ชีวิตดราม่าของคนทำ Social 5 เรื่อง
    • #เราไม่เข้าใจนาย – ภาษาที่มันซับซ้อนทุกวัน ทุกวันนี้ มีศัพท์แปลกๆ เกิดขึ้นทุกวัน เช่น นก, ตะใตะมิ หรือ ประโยคนี้มันตีความได้อย่างไรนะ หรือ caption กับภาพคนละแบบ คำผวน ประชดความเพี้ยนของภาษา เกิดการใช้คำที่ง่าย ชิมิ – ช่ายไหม / เหตุการณ์ / พิมพ์ผิด เช่น เมพ – เทพ
      • ข้อความกลุ่มนี้ เราตีความได้อย่างไร ? – คิดยังตีความยาก ระบบยิ่งยากกว่า
      • ดร.อาร์ม [ NECTEC ] เสริมตรงส่วนนี้เข้าไป ว่าทำไม ภาษาไทยถึงทำงานพวกนี้ยาก ตาม Slide อ แก เลยครับ

        This slideshow requires JavaScript.

    • #คุณเก็บความลับได้ไหม – API ที่เปลี่ยนไปตาม Policy ของ Platform ข้อมูลบางอย่างเมื่อก่อนเก็บได้ แต่ตอนนี้เก็บไม่ได้แล้วนะ อันนี้จริงของผมเองก็โดนมากับตัวตอนทำ Term Project ตอนเรียน SNA เหมือนกัน เปลี่ยน API ปุ๊บชีวิตพัง จากเดิมเคยดูข้อมูล FB Page ต่างๆมาได้ พอจะทำโปรเจคอ้าวต้องเป็นเจ้าของเพจซะงั้นถึงจะดูข้อมูลได้
    • #แล้วจะเก็บยังไง – ตอนนี้มี 3 แบบ
      • Keyword
      • Page tacking – เก็บทั้ง Page เลย ไม่สนใจ Keyword ทั้ง Post จาก Page และจาก User ได้ความเห็นที่มีต่อ Brand แต่เอาข้อมูลมาเปรียบเทียบยาก เพราะ จำนวนที่ Follow / Like ก็แตกต่างกันแล้ว จริงๆ ถ้าไม่ชอบ Page ก็คงไม่ Like
      • Collect by post tracking -ดึง Comment จาก Post ที่สนใจมาวิเคราะห์
      • Note: เราจะเก็บข้อมุลบน Assumption อะไร ตกลงกันให้ได้ก่อน ทั้งทีมพัฒนา และลูกค้า
    • #Mr. Report – Presentation มันง่าย จริงเหรอออ !!!! กว่า 1 Report ออกมาใช้ยลโฉมได้ มันต้องใช้เวลา และทีมงาน Data Team (Collecting / Process / Deliver & Visualization)
    • #ทำไมไม่บอกกัน !! – วิเคราะห์ข้อมูล เราจะรู้ได้ยังไง ว่ามาจาก Brand จ้างมา (ต้องเขียนดีอยู่แล้ว) หรือ มาจากใจ(ใช้แล้วดี แย่ มาแชร์กัน) ปัญหานี้มันทำให้ผลลัพธืมัน Bias
  • สำหรับผมเองนะ ดราม่าพวกนี้ มันก็คล้ายกับปัญหาของการทำ Software ขอบ่นบ้าง ดึกมาหลายคืนแล้ว

    Requirement !!!
    Requirement !!!
    Requirement !!!

DS Learning Path 2018 โดย แอดทอย [ DataRockie ]

  • ตอนนี้ Chat Bot ที่เป็น AI ตอนยังไม่ผ่าน Turing Test – Concept ของ AI เบื้องต้น Blade Runner การตรวจสอบว่าเป็น Repitance ปัจจุบัน ยังไม่มี Chat Bot ตัวไหน ผ่าน Turing Test แต่ทุกอย่างโตขึ้น ดีขึ้นเหมือน Moore’s Law
  • การเรียนรู้ มันเป็นการ Connecting the dot เมื่อถึงเวลาสิ่งที่เราได้เรียน มันจะมี Pattern ความสัมพันธ์ และก่อให้เกิดประโยชน์ได้

    Live as if you were to die tomorrow. Learn as if you were to live forever. – Mahatma Gandhi

  • Stick with it – ทำยังไงให้มันสำเร็จ
    • Step Ladder – ค่อยๆก้าวไปทีนะนืด ตั้งเป้าให้ได้ที่ละนิด เพิ่มทีละหน่อย
    • Community – Share & Contribute
    • Important – มี priority ของชีวิต เติมคุณค่าให้ตัวเอง
    • Easy – ทำจากเล็กไปใหญ่
    • Neurohack – เรียนรุ้จากการ ลงมือทำ (Try & Error)
    • Captivating – ให้รางวัลกับชีวิต (Gamenification)l
    • Engrained – พัฒนาอย่างต่อเนื่อง Continuous Improvement
  • สนใจอะไรแล้ว เราลุยไปเลย และไม่ต้องแคร์เรื่องชื่อตำแหน่ง จะเป็น Data Scientist หรือป่าว ขอแค่ทำงานได้ก็พอ ^__^

ปิดที่ด้วยของกิน ถ่ายมาฝาก แต่กินไม่ได้ ผมลดนำหนักอยู่ครับ 555

สุดท้าย

  • วันนี้ผมเพิ่มรู้ว่า แอดเพิร์ธ [ Data Science ชิลชิล ] กับ แอดทอย [ DataRockie ] ไม่ได้จบสายคอมมาทั้งคู่ แต่เก่งมากๆ ทำ FB Page สอนความรู้ทางด้านนี้ ให้รูปแบบที่เข้าใจได้ง่าย
  • ฺBlog นี้น่าจะเป็นสรุปงานที่กลับมาเขียนอีกครั้งหลังจากที่ห่างหายไปนานเลยครับ

[C#] มาดูกันว่า User Remote เข้ามาเปิดใช้ Application จากเครื่องไหน

ก่อนอื่นมาดูปัญหากันก่อนครับ ว่าทำไมถึงต้องไปไล่ดูว่า มีการ Remote จากเครื่อง User เพื่อมาใช้งาน Application ที่ติดตั้งบนเครื่อง Server หรือป่าว ? เพราะ IT ของลูกค้า อยากรู้ว่ามีใครใช้งานในระบบบ้าง แล้วใช้งานที่เครื่องไหน แต่บังเอิญว่ารอบนี้ ตัว Application ที่พัฒนาถูกไปติดตั้งบรเครื่อง Windows Server พอ User Remote เข้ามาใช้งาน ปรากฏว่าระบบลง Log และ Active User มาจากเครื่อง Serer ที่เป็น Windows Server ทั้งหมดเลยครับ โดยคำสั่ง C# ที่ใช้ดึงว่าเครื่องที่ Run Application อยู่ ชื่อเครื่องอะไร เป็นคำสั่งที่มีใน .Net Framework API ตามตัวอย่าง Code ด้านล่างเลยครับ

มาที่โจทยฺ์ใหม่บ้าง เพราะ คำสั่ง Environment.MachineName; มันมีข้อจำกัด ถ้าเอา Application ไปดิดตั้งบน Windows Server มันจะไม่รู้ว่า User Remote มาจากเครื่องไหนครับ คำสั่งนี้จะดึงเฉพาะ แต่ชื่อเครื่อง ของ Server แทน โดยโจทย์ที่ทาง IT ของลูกค้าต้องการ ในกรณีที่มีการ Remote เข้ามาใช้งาน Application มีรูปแบบ ดังนี้ครั

ชื่อเครื่องปลายทาง(ชื่อเครื่องต้นทาง)

หลังจากรู้โจทย์แล้ว มาดูดีกว่าครับ ว่า C# ไม่สิต้องบอกว่า .Net Framework ได้เตรียมอะไรมาช่วยไว้บ้างครับ

  • ตัว System.Windows.Forms.SystemInformation.TerminalServerSession เป็นตัวที่บอกว่า Application ที่เขียนขึ่น Run ผ่่าน Remote Desktop หรือป่าวครับ ถ้าใช่ Return True ถ้าไม่ใช่ Return False ครับ
  • ตัว Remote Desktop Services API – เอาไว้ช่วยดึงค่าบางอย่าง มาจาก Protocal RDP ครับ

Code ที่ได้ปรับปรุง

  • Method GetComputerName() อันนี้เป็น Method ที่เราเปิดให้คนภายนอกใช้นะครับ
  • Helper GetTerminalServerClientNameWTSAPI และ WTSQuerySessionInformation เอาไว้ช่วยดึงค่าที่ต้องการจาก RDP Service ครับ

ผลการทดสอบ

  • เมื่อลองเปิด Application ผ่าน Remote Desktop มันแสดงขึ้น ตาม Requirement ที่ตกลงกันไว้ข้างต้น ดังรูป

Reference

[CR] ไอติมโมจิวานิลลา และชาเขียว จาก เนสท์เล่

Blog น่าจะเขียนตามหลัง Trend ไปพอสมควรแล้ว หลังจากออกมาในทวิตเตอร์สักพักใหญ่ๆ แล้ว เราก็อ่าน แล้วปล่อยผ่านไป จนมานึกถึงอีกทีตอนเพื่อน ป. โท มาอวดว่าได้กินนะ มันเป็นขอที่หาโคตรรรรรยากกก แมร่ง Rare Item ดั่งไอติมกูลดิโก๊ะ

พอกลับบ้าน อ้าวแถวบ้านตูรม มีเต็มตู้เลยหวะ ลองเหมาเลยและกัน โดยไอติมโมจิของออกมา 2 รสชาตินะครับ ได้แก่

  • รสวานิลลา
  • รสชาเขียว

แกะห่อออกมา

  • ไอติมโมจิเล็กไปนิด + ไม้จิ้มอันนึง

หลังจากกินแล้ว

  • ปริมาณ – น้อยไปนิด
  • ราคา – 20 บาท ถ้าเทียบกับปริมาณ แอบแพงนะ
  • พลังงาน – 70 kcal  และมีน้ำตาล 8 กรัม
  • รสชาติ – ใช้ได้เลย ยิ่งถ้ารอไอติมละลายมาผสมกับแป้ง เหนียวนุ่มมมมมมมม กัดไปเจอแป้งโมจิขาว ๆ กับไอติมวานิลลา (ใจจริงอยากกินรสชาเขียวด้วย) กินไปอ่าน paper ไปเพลินดีครับ

    This slideshow requires JavaScript.

Update เพิ่ม 2018-02-16

  • ได้กินรสชาเขียวแล้ว รสชาติออกจะขมๆ ไม่หวานมาก แต่ผมก็กินแบบเดิม รอให้ไอติมมันละลายนิดนึงแล้วกิน อาหร่อยยย ^___^

    This slideshow requires JavaScript.

[CR] CP ไก่ตุ่นน้ำแดง (กุ้ง+ไก่)

วันนี้ระหว่างเบื่อๆหลังจากการวิ่งมา วันนี้มาหาอะไรกินกันดีกว่าครับ มองไปมองมา อ่าาา “CP ไก่ตุ่นน้ำแดง” ราคา 25 บาท

ลองมาแก้ดูครับ น่ากินเหมือนกันนะ เหมือนพุดดิ้งยังไงไม่รู้ แต่น้ำสีไม่แดงเลย (ส่วนตัวไม่แน่ใจว่า น้ำแดงต้องสีแดง หรือป่าวนะ)

ลองตัดออกมา เนื้ออัดแน่นครับ

เอามากินคู่กับข้าวกระเพราหมูก็อร่อยดีครับ

สรุป

  • ราคาน่าคบหาครับ 25 บาท สำหรับ CP ไก่ตุ่นน้ำแดง (กุ้ง+ไก่)
  • เนื้อจับเป็นก้อนเลย ถ้าแยกไก่กับกุ้งออกมาเป็นคำๆได้ น่าจะดีครับ
  • คะแนน 8/10 ครับ

 

[BPMN] Loop หรือ การทำซ้ำ

แม้ว่าตัว BPMN ถูกออกแบบมาสำหรับทางฝั่ง Business แต่มีการทำบางอย่าง ที่ยังต้องใช้มีการทำวนซ้ำ หรือ ถ้าในภาษา Technical ของ Developer ทั้งหลาย ว่าวนลูป (Loop) ครับ สำหรับใน BPMN สามารถเขียนได้ 2 แบบครับ ได้แก่

  • Loop Activity
  • Non-Loop Activity

Loop Activity

โดย Loop Activity คือ Loop ที่เกิดกำหนด Property ของตัว Activity ครับ ถึงถ้าไปดูใน Spec ของ BPMN อยู่ในรูปแบบของ XML Tag StandardLoopCharacteristics

มาลองดูตัวอย่างกันครับ ภาพด้านล่าง ผมเอามาจาก Tools Visual Paradigm Modeler ครับ เป็น

  • สัญลักษณ์ลูกศรวน บนตัว Activity
  • การกำหนด Attribute ใน XML Tag StandardLoopCharacteristics โดยอยู่ในส่วนของ Standard Loop Specification

Note: แต่ Loop Activity BPMN-Engine ที่เป็น Open-Source ณ ปี 2018 ทั้งหมด ยังไม่ Support ครับ

Non-Loop Activity

ส่วน Non-Loop Activity นั้น มองภาพที่ใหญ่ขึ้นจาก Activity เดี๋ยวๆ โดยการสร้าง Loop จากการใช้ Exclusive Gateway นำมาประกอบกันครับ มาลองดูตัวอย่างกันครับ

  • อย่าง Loop ที่ถ้าใช้ Loop Activity testBefore=true สามารถปรับเป็น Exclusive Gateway ได้ตาม Pattern ดังนี้ครับ
  • อย่าง Loop ที่ถ้าใช้ Loop Activity testBefore=false สามารถปรับเป็น Exclusive Gateway ได้ตาม Pattern ดังนี้ครับ

หมายเหตุ

  • คำอธิบายนี้อิงตาม Spec ของ BPMN 2.0 ที่ทาง OMG ได้ประกาศไว้ครับ
  • ถ้าไปดูตัว BPMN-Engine อาจจะยังทำไม่ครบตาม Spec ของ OMG อันนี้ผมเข้าใจว่า เพราะมันมี Non-Loop Activity ที่สามารถทำงานทดแทนได้อยู่แล้วครับ

[CUSE] สรุปขั้นตอนการเปลี่ยนแผนการเรียนจากแผน ข ไปเป็นแผน ก

สรุปไว้เผื่อคนที่เรียนที่จุฬา แล้วอยากเปลี่ยนแผนการศึกษาตอน ป โท นะครับ จากแผน ข ไปเป็นแผน ก มีขั้นตอนคร่าวๆ ดังนี้

  1. มีอาจารย์ที่ปรึกษาก่อนครับ ข้อนี้สำคัญมาก
  2. เตรียมเอกสารที่จำเป็น
  3. เขียนคำร้องให้เรียบร้อย
  4. บทคัดย่อให้อาจารย์ที่ปรึกษาตรวจทาน และเซ็นรับทราบด้วยครับ
  5. นำเอกสารทั้ง 2 ชุดไปยื่นที่ห้องธุรการ อาจจะเป็นห้องภาคก็ได้ครับ
  6. รอผลคำร้อง 5 วันทำการครับ
  7. เมื่อได้ผลคำร้องแล้ว ถ้าสำเร็จ ต้องเอาเอกสาร S/U เขียนให้เรียบร้อย แล้วให้อาจารย์ที่ปรึกษาเซ็นรับทราบครับ

สู้ต่อไปนะทุกๆคนๆ ^___^ หวังว่าตัวเราเองจะสามารถจบได้ภายใน 2 ปี

[CR] ลองสั่งหนังสือจาก Manning

ต้องย้อนกลับไปช่วงวันคริสต์มาสปี 2017 ครับ พอดีวันนั้นเหลือบไปเห็นโปรโมชั่นที่่ยั่วมากๆ ลดหนังสือทุกเล่ม 50% ครับ ลองกดเครื่องคิดเลขดูแล้ว มันน่าจะคุ้มนะ ผมเลยจัดมา 2 เล่ม ที่คิดว่ามีประโยชน์กับการทำงาน และการทำ Project จบครับ ได้แก่

  • Activiti in Action ชุด Combo (ราคาเต็ม 49.99 USD หรือ 1,681.67 บาท) – ได้เข้าใจ BPMN-Engine แบบลึกซึ้ง หลังจากงมๆมานานโข
  • Spring Boot in Action ชุด Combo (ราคาเต็ม 44.99 USD หรือ 1,531.47 บาท) – เอามาศึกษาเผื่อได้ใช้ทำ Project จบ หรือทำงานครับ

สำหรับชุด Combo มันเป็นชุดรวม pBook (Printed Book – หนังสือที่พิมพ์) และ E-Book ในรูปแบบต่างๆ เช่น pdf, ePub,  kindle และ liveBook โดยส่วนตัวผมมองว่าสมัยนี้ตัว Printed Book เหมือนของแถมมากกว่า เพราะเพิ่มอีก 5-10 USD ก็ได้มาแล้วครับ แถมมันลดราคาก็เลยจัดเต็มซะเลย ซึ่งพอเลือก Printed Book มันเลยมีค่าใช้จ่ายที่เพิ่มเข้าใจ ซึ่งนั่น คือ ค่าจัดส่ง(Shipping) ครับ สำหรับเมืองไทย จัดถูกจัดเป็นแบบ “All other international” โดยมี 2 แบบ

  • International Economy (ราคาแกว่งตามรอบ)
    • เล่มแรกค่าส่ง 13.95 USD เล่มถัดไป 10 USD
    • ส่งแบบไปรณีย์ ส่วนใหญ่มาทางเรือ หรือเกาะเครื่องบินโดยสารมา
    • Tracking ได้เฉพาะในอเมริกาเท่านั้น [ส่วนใน Pantip ที่มีบางกระทู้บอกว่าใส่เลข Tracking ในเว็บไปรษณีย์ไทยได้นั้น ใช้ไม่ได้นะครับ] พอหลุดนอกอเมริกาแล้วนั่งวันเอาครับ ประมาณสัก 10 วันโทรไปถามไปรษณีย์ไทยที่สาขาใกล้บ้านครับ
  • International Expedited
    • เล่มแรกค่าส่ง 55.00 USD เล่มถัดไป 10 USD
    • เร็วกว่าส่ง ระดับแบบพวก FedEx
    • Tracking ได้ตลอดทางจนถึงไทย

หลังจากดูราคาแล้ว มือมันโดนมนต์สะกด 555 กดสั่งซื้อไปเรียบร้อยแล้ว โดยมีค่าเสียหาย ดังนี้

  • Activiti in Action ชุด Combo ราคา 24.995 USD
  • Spring Boot in Action ชุด Combo ราคา 22.495 USD
  • ค่าขนส่งแบบ International Economy 13.95 USD + เล่มถัดไป 10 USD = 23.95 USD
  • รวม 71.44 USD

พอสั่งซื้อเสร็จ ตอนจ่ายเงิน เนื่องจากผมไม่มีบัตรเครดิตครับ ผมเลยใช้ K-Web Shopping Card แทนครับ พอสั่งเสร็จปุ๊บ เนื่องจากรอนาน ผมเลยเมล์ไปถาม Support ของทาง Manning โดยตืดต่อไปที่เมล์ support@manning.com โดยเนื้อหาที่ต้องใส่ลงไปในเมล์ คือ หมายเลข Order หลังจากส่งไปทาง support ของ manning ตอบกลับไวมากครับ โดยได้หมายเลข Tracking กลับมาครับ จะพบว่า

  • วันที่ 26-Dec-2017 จนถึง 31-Dec-2017 สามารถ Tracking ได้ครับ

    This slideshow requires JavaScript.

  • วันที่ 01-Jan-2018 จนถึง 08-Jan-2018 เท่าที่ถาม Support มาเหลือเค้าจะบอกว่า พัสดุอยู่นอกอเมริกาแล้ว เหมือนมันหายไปจนลืม แล้วมันจะโผล่มาส่งที่บ้าน ได้ใบรับของแทนเลยครับ

    This slideshow requires JavaScript.

  • วันที่ 09-Jan-2018 ไปรับของที่ไปรษณีย์เองครับ ปล. ถ้าไปไม่ได้ โทรบอกให้ไปรษณีย์มาส่งให้ครับ แต่มีค่าใช้จ่ายครับ

ได้ของมาแล้ว มาดูบรรจุภัณฑ์กันก่อนครับ ดูแข็งแรงทนทานดี

This slideshow requires JavaScript.

แกะหนังสือออกมาดูครับ หนังสือหนักครับ แต่ความหนาน้อยกว่าที่ไปถ่ายเอกสารมาเองอีก

[BPMN] ลองใช้ Process ที่ได้เพิ่งสร้างกัน

จาก Blog ตอนก่อนหน้าที่เราได้ทำอะไรไปหลายๆอย่าง ทั้ง

มาใน Blog ตอนนี้ เรามาใช้ ลองเป็น End-User ของ Process ที่ทำครับ โดยหลังจาก Deploy Process เราต้องเข้าในส่วนของ Activiti Task กันครับ มาทวนภาพรวม Process กันก่อนครับ ดังรูป

เริ่่มลองใช้งาน Process โดยต้อง Login เป็น User ที่อยู่ใน Group Employee ครับ

สวมบทบาทเป็น Employee  กันครับ

  • Login เข้าระบบด้วย User ที่อยู่ใน Group Employee ครับ
  • เข้ามาที่ เลือก Task App ครับ
  • มา Start Procrss ที่ Deploy ไว้กันเลย
  • เจอ Process ที่สร้างไว้แล้ว เลือกเลยครับ
  • ตรงนี้ เราเห็นแล้วว่า Active Process ขึ้นมาแล้วครับ

    • ถ้ากด Show Diagram เห็นว่า Task นี้ ยังอยู่ที่ Employee Request Budget ครับ
  • ถ้าต้องการทำ Task ใน Process นั้น ให้ Double Click ที่ Active ซึ่งถ้าต้องการทำ Process ต่อก็สามารถกด Claim ได้เลยครับ
  • จากนั้นกรอกข้อมูลที่จำเป็นลงไปครับ
  • พอกลับมาดูที่ Process ตอนนี้ Active Task อยู่ที่ Manager แล้วครับ

    • ถ้ากด Show Diagram เห็นว่า Task นี้ ยังอยู่ที่ Manager Review / Approve ครับ เพราะ วงเงินที่ขอไว้เกินกำหนด 1,000 บาท
  • สังเกตุดีๆครับ ตอนนี้ Assigned to nobody ครับ ให้เพิ่มคนที่อยู่ในกลุ่ม Manager ดังนี้
    • เลือก Involve someone else and start collaborating
    • จากนั้นเลือก User ในกลุ่ม Manager ครับ

Manager เข้ามา Claim Task ว่าจะอนุมัติ หรือไม่ ?

  • Login เข้าระบบด้วย User ที่อยู่ใน Group Manager ครับ
  • พอเข้ามาที่ Task App จะเจอว่ามี TaskManager Review / Approve รออยู่ครับ
  • Manager Claim Task นั้นไปครับ
  • ปรากฏว่า Manager ไม่อนุมัติ (แล้วจะทำอย่างไรต่อ !!!)
  • ตอนนี้ Process เลย วนกลับไปที่ Employee ให้ใส่ข้อมูลวงเงินมาใหม่

เมื่อ Employee แก้ข้อมูลใหม่ แล้วส่งงานกลับมาให้ Manager

  • ตอนนี้ ถ้าสังเกตุ Complete Task หลังจาก Employee ใส่ข้อมูลมาใหม่แล้ว
  • หลังจาก Manager อนุมัติแล้ว งานส่งต่อไปให้กับฝ่ายบัญชี-การเงินครับ

เมื่อฝ่ายบัญชีจัดการเสร็จแล้ว จบกระบวนการ

  • Login เข้าระบบด้วย User ที่อยู่ใน Group Accountant ครับ
  • พอมาดูที่ Task Manager ส่งงานมาให้แล้วครับ (เพราะ วงเงินที่ขออนุมัติแล้ว)
  • จากนั้น Claim Task
  • แต่เนื้องจาก Task นี้เป็น Task สุดท้ายแล้ว และก็ไม่มีิ Process อะไร นักบัญชีเลยกด Complete Task ไปครับ

จบไปแล้วกับ Blog เรื่องยาวครับ แม้ว่า Process ที่ทำเป็น Demo อาจจะไม่สมจริงเท่าไหร่นะครับ หากทุกท่านอ่านแล้วสงสัยอะไร สามารถทักมาได้ หรือทวงติงกรณีที่ผมเขียนผิดครับ ^__^

 

 

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

บทความนี้ ทดสอบบน Windows นะครับ โดยตอนนี้เป็นการ Setup Python ใช้พร้อมกับการทำ Machine Learning ใน Anaconda ครับ

สิ่งที่ต้องเตรียม

  • Download Anaconda (อันนี้ผมใช้ Python 3.x) ครับ
  • ติดตั้ง Anaconda ใช้เรียบร้อย
  • ทดสอบเปิด Anaconda  Navigator ดังรูป

ทดสอบ Conda

  • ตัว Conda คือ Anaconda command line
  • เปิดตัว Anaconda Prompt โดยเรียกจาก Start Menu ดังรูป อย่าลืม Run As Administrator
  • ลองมาดู Conda ว่า version อะไร โดยใช้คำสั่ง
  • ลองมาดู Python ที่ติดกับ Anaconda เป็น Version อะไร โดยใช้คำสั่ง
  • ผลที่ได้จาก 2 คำสั่งข้างต้น ดังรูป

Update Conda และ Anaconda

  • Update Conda โดยใช้คำสั่ง ดังนี้
  • ผลลัพธ์ที่ได้ ดังรูป
  • Update Anaconda โดยใช้คำสั่ง ดังนี้
  • ผลลัพธ์ที่ได้ ดังรูป
  • Tip: ถ้าหากลิมเปิด Anaconda Prompt โดยลืม Run As Administrator มันจะด่าเรา ดังรูป

Update Machine Learning Library scikit-learn

  • scikit-learn – เป็น Library สำหรับทำ Machine Learning ของ Python ครับ
  • Update scikit-learn โดยใช้คำสั่ง
  • ผลลัพธ์ที่ได้ ดังรูป (กรณีนี้ Package เป็นอันล่าสุดแล้ว)
  • Tip: หากต้องการระบุ Version เฉพาะเจาะจงลงไป สามารถใช้คำสั่ง ดังนี้

Testing: scikit-learn และ Library ที่จำเป็นสำหรับ Machine Learning

  • ทดสอบโดยการเปิด jupyter และใส่คำสั่งลงไป ดังนี้
  • ลอง Execute ดูผลลัพธ์ครับ

เดี๋ยว Blog ตอนถัดไป อาจจะลองทำเรื่อง Setup Envirosment สำหรับ Deep Learning นะครับ (ถ้าว่าง)

 

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

Reference: https://pixabay.com/en/colored-pencils-colour-pencils-star-374771/

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

ถ้าสังเกตุใน Code พบว่า RebalanceProcessExtensions.Col_OriginalNAV ชื่อ Class RebalanceProcessExtensions มันยาวมากๆ ครับ ถ้าทำไปนานๆ Code ตรึมครับ ดูยาก ที่นี้มาลองใช้ตัวช่วยกันดีกว่า ลองใช้ Class Alias โดยการย่อชื่อ Class ไว้ช่วง using ครับ โดย Code ที่ได้จะเป็นประมาณนี้

จาก Code ใหม่ ย่อจาก RebalanceProcessExtensions ไปเป็น RBExt แล้ว Code ที่เขียนออกมา สั้นลง และดูสบายตาขึ้น ครับ