ลอง Live ดูเกี่ยวกับ Dart x Flutter

ลอง Live ดูเกี่ยวกับ Dart x Flutter ที่เพจ Dart แบบ Dart Dart ดู ยังไม่ค่อยชินกับการ Live สักเท่าไร เพราะการ stream มันมี delay ของเนื้อหาบางทีกด end live แต่ข้อมูลยังไปไม่หมดก็มี ก็เลยได้ประสบการณ์หลายๆ อย่างในการ live ครั้งแรก

สำหรับครั้งหน้าจะเริ่มเข้าเนื้อหาแบบจริงจังละ

– แนะนำการติดตั้ง Flutter tools
– การใช้งาน Command line tools (create, run, upgrade, channel)
– Editor (VSCode, Android Studio)
– Build package debug, release
– ใช้งาน Git
– Auto build package กับเครื่องมือ CI/CD
– ลอง HelloWorld กัน
– Live โค้ด Boilerplate + แจกเอาไปเล่นกัน

live วันอังคารที่ 17 มีนาคม ตอนประมาณ 5 ทุ่มนะครับ ติดตามกันได้ที่เพจ Dart แบบ Dart Dart กันได้

สรุปประสบการณ์ไปทำงานกระเป๋าผ้า

แฟนผมให้ไปตัดผ้าเพื่อทำกระเป๋าผ้าส่งให้ลูกค้า 1,000 ใบ เพราะงานที่รับเข้ามามีหลายงานจนทำไม่ทัน และช่างตัดผ้าไม่อยู่ทำให้งานตัดผ้าขาดคน ก็เลยได้ไปช่วยงานและสังเกตเห็นอะไรหลายๆ อย่างที่ต้องแก้ไขเลยมาสรุปไว้สักหน่อย

ก่อนอื่นต้องเล่าก่อนว่างานกระเป๋าผ้าที่คุณแฟนทำอยู่มีหลายงาน สรุปเป็นประเภทงานได้ 3 ประเภท

  1. งานประเป๋าผ้าแบบมาตรฐาน (standard) เป็นขนาดมาตรฐาน มี 12 แบบ ทำ pattern ไว้แล้วพร้อมตัดเย็บและสกรีนลาย
  2. งานกระเป๋าผ้าสั่งทำ (tailor-made) เป็นงานที่ลูกค้าอยากได้กระเป๋าตามแบบและขนาดที่ลูกค้าต้องการ งานแบบนี้เป็นงานสั่งทำที่ต้องทำ pattern ใหม่ทุกครั้ง จะเสียเวลาในการออกแบบ ทำ pattern และคัดเลือกเนื้อผ้านาน เพราะเป็นงานสั่งทำเฉพาะ เน้นงานพรีเมี่ยม
  3. งานกระเป๋าผ้าสั่งผลิต (mass production) เป็นงานกระเป๋าผ้าเน้นงานเย็บ มีแบบกระเป๋า และผ้ามาให้เรียบร้อยแล้ว สั่งผลิตจำนวนมาก เช่น งานกระเป๋าแบรนด์ต่างๆ กระเป๋าผ้าโหล กระเป๋าผ้า 7-11 เป็นต้น

งานที่ผมไปช่วยเป็นงานแบบที่ 1 คือเป็นงานประเป๋าผ้าแบบมาตรฐาน มี pattern พร้อมตัดเย็บ ซึ่งงานจะแบ่งเป็น station ต่างๆ ดังนี้

  1. งานตัดผ้า
  2. งานสกรีน
  3. งานเย็บ

ผมไปช่วยงาน station งานตัดผ้าและงานสกรีน

งานตัดผ้า ก็ตามชื่อเลยคือตัดผ้าตามแบบ (pattern) ตัว pattern จะเป็นฟิวเจอร์บอร์ดเอาไปทาบกับผ้าแล้วใช้ปากกาวาดตามแบบแล้วใช้กรรไกรตัด ปัญหาของ station นี้คือ ตัดผ้าไม่ทัน ตัดผ้าออกมาไม่ได้ขนาด ทำให้เย็บกระเป๋าออกมาขนาดไม่ถูกต้อง สังเกตดูจาก pattern ออกจะเบี้ยวๆ ไม่ได้ฉากเวลาลอกแบบจะไม่ได้ขนาด ต้องใช้วิธีการพับผ้าให้ได้ฉากแล้วตัดจะได้ขนาดที่ถูกต้องและเร็วกว่าทาบแบบ การตัดผ้าหากต้องการตัดให้ได้จำนวนเยอะๆ ต้องพับผ้าเป็นชั้นแล้วใช้เครื่องตัดผ้าจะตัดได้เร็วขึ้นและได้จำนวนมากขึ้น แต่จะมีเศษผ้าที่เป็น waste มากขึ้นตามไปด้วย การลอกแบบใช้ดินสอหรือช็อกเขียนผ้าจะดีกว่าเพราะสามารถลบหรือซักออกได้

งานสกรีน ใช้เทคโนโลยีพิมพ์ภาพลงบนผ้า แบบ sublimation การพิมพ์ผ้าต้องพิมพ์ลายแบบกลับด้านบนกระดาษ sublimation จากนั้นเอากระดาษที่พิมพ์ลายแล้วเอาไปรีดด้วยเครื่องรีดร้อน ความร้อนจะลอกลายจากกระดาษและพิมพ์ลงบนเนื้อผ้า การพิมพ์ผ้าแบบ sublimation ให้ได้ความคมชัดสีสดและคงทน ต้องใช้ผ้าที่มีใยโพลีเอสเตอร์ผสมอยู่ด้วย เช่นผ้า TK, TC เป็นต้น งานพิมพ์ผ้าไม่ได้ยาก แต่ต้องพิถีพิถันในเรื่องการจัดวาง ตั้งอุณหภูมิ และเวลาในการกรีน เพราะผ้าแต่ละแบบทนความร้อนได้ไม่เท่ากัน ผมเจอเนื้อผ้า 3 แบบในงานเดียวกัน ผ้าบางชนิดไม่ทนความร้อนความร้อนทำให้ผ้าเปลี่ยนสีทำให้ลายที่สกรีนสีผิดเพี้ยนไปได้

สำหรับ waste และ NG ใน station ต่างๆ ก็มีเช่นกัน ต้องลดขยะ (waste) กับของเสีย (NG) ให้น้อยลง และ recycle waste ให้ได้ ในแต่ละ station มี waste และ NG ดังนี้

  1. งานตัดผ้า มี waste เป็นเศษผ้า มี NG เป็นผ้าที่ตัดไม่ได้ขนาด
  2. งานเย็บผ้า มี waste เป็นเศษผ้าที่ตัดออกตอนโพ้ง มี NG เป็นกระเป๋าที่ขนาดไม่ตรงตามแบบ
  3. งานสกรีน มี waste เป็นเศษกระดาษ sublimation, งานสกรีนเสีย

ในแต่ละ station ไม่ได้บันทึกจำนวนงานเสีย ทำให้เกิดปัญหาเรื่องจำนวนสินค้าไม่ครบ ต้องตัดผ้าและเย็บเพิ่มตามจำนวน ช่วงนี้งานยังมีจำนวนน้อยยังสามารถแก้ไขปัญหาเหล่านี้ได้ทัน แต่ยังต้องปรับปรุงกระบวนการในขั้นตอนต่างๆ ให้ดีมากขึ้น

มาลองเล่น Google Cloud Vision กัน

เนื่องจากมีงานที่ได้กลับไปใช้ Cloud Vision อีกครั้งก็เลยมา blog ไว้สักหน่อย Google Cloud Vision มี feature ใหม่เยอะมาก ซึ่ง feature ที่ผมเอามาใช้คือ Detect explicit content (adult, violent, etc.) ในรูปภาพ

เรื่องของเรื่องคือมี Mobile App ตัวนึงที่มีบริการอัพโหลดภาพ ซึ่งผู้ใช้ก็จัดเต็มอัพโหลดภาพที่ติดประเด็นเรื่อง content policy ของ Google PlayStore ก็เลยทำให้ App โดน suspended ทางเจ้าของ App เค้าก็เลยจะใช้คนมานั่งดูภาพแล้วคัดออก ซึ่งก็ดูน่าจะทรมานน่าดู เพราะจำนวนไฟลที่อยู่ใน Google Cloud Storage ก็ประมาณ 400 กว่าภาพเข้าไปแล้ว (เพิ่มขึ้นเรื่อยๆ ) ใช้ AI เข้ามีช่วยน่าจะดีกว่า ก็เลยได้ใช้ Cloud Vision อีกรอบ

เนื่องจาก Mobile App ไม่ได้อ่านค่าตรงจาก Google Cloud Storage เพราะ Meta data อยู่ใน Firebase database ก็เลยต้องอ่านข้อมูลจาก Firebase database แล้วทำ label, flag จากนั้นให้ผู้ดูแลตรวจสอบและสั่งลบไฟล์ใน bucket อีกครั้ง สำหรับการตรวจครั้งต่อไปแบบอัตโนมัติ ใช้ Cloud Function เข้ามาช่วยตรวจสอบและลบ content จาก Firebase database และไฟล์ใน bucket อัตโนมัติ

demo ที่แปะ label ไว้แล้ว

ไอ้หลงหายไป

ไอ้หลงปีนหลังคาตามคดกับนวลไปเที่ยว หายตัวไปไม่กลับบ้านมา 2 วันละ ส่วนไอ้ 2 ตัวนั้นก็กลับบ้านมาเฉพาะตอนเช้า ยังคิดถึงและเป็นห่วงไอ้หลงมันอยู่นะ

ไก่เทอริยากิ (สูตรหม้อทอดลมร้อน)

ช่วงนี้ทำกับข้าวเอง เพราะไม่อยากให้แม่เดินไปซื้อกับข้าวตอนเช้าทำกินเองก็ได้ไม่ยาก ช่วงนี้ทำไก่เทอริยากิก็เลยมา blog สูตรไว้สักหน่อย

วัตถุดิบ

  • ไก่ปีกกลาง 1 แพค (10ชิ้น)
  • ซอสเทอริยากิ 3 ช้อนโต๊ะ
  • น้ำมันหอย 1/4 ช้อนโต๊ะ
  • น้ำมันพืช 1/4 ช้อนโต๊ะ

วิธีทำ

  • ล้างไก่ให้สะอาด
  • ผสมซอสเทอริยากิ น้ำมันหอย น้ำมันพืช คนให้เข้ากัน
  • หมักไก่กับซอสที่ผสม ประมาณ 1-2 ชั่วโมง
  • ใช้หม้อทอดลมร้อน ใช้ความร้อนที่ 180 องศาฯ ทอด 2 ครั้ง เรียงไก่คว่ำหนังลง ทอด 10 นาที จากนั้นพลิกไก่เอาหนังขึ้น ทาด้วยซอสเทอริยากิ แล้วทอดต่ออีก 10-15 นาที
  • ถ้าชอบกลิ่นซอสเทอริยากิหอมๆ ใส่ซอสเทอริยากิเพิ่มอีกนิดหน่อย
  • กินกับข้าวร้อนๆ อร่อยมว๊ากกกกก

ได้ทำอะไรบ้างในปี 2019

ในแต่ละปีได้ blog เอาไว้ว่าทำอะไรไปแล้วบ้าง แต่ปี 2018 ไม่ได้เขียน เลยยกมาปี 2019 เลยละกัน

  • พาแฟนไปเที่ยวต่างประเทศ – พาแฟนไปเที่ยวสิงคโปร์ตามสัญญา
  • เดินทางหลายประเทศ – เดินทางไปต่างประเทศหลายประเทศ ส่วนใหญ่ไปเรื่องงาน ซึ่งส่วนใหญ่ไม่ประสบความสำเร็จ แต่ก็ได้ความรู้มากขึ้น
  • มีโรคประจำตัว – มีโรคความดันสูงมาเป็นโรคประจำตัว มีอาการแทรกซ้อน ต้องไปหาหมอทุกเดือน กินยาทุกวัน ช่วงหลังๆ ได้ออกกำลังกายบ้าง ลดยาที่หมอให้ ถ้าอาการแย่จริงๆ ถึงจะกินยา แต่อาการก็ไม่ได้ดีขึ้นเท่าไร
  • มีอาการซึมเศร้า – ไม่คิดว่าจะเกิดอาการซึมเศร้าอย่างรุนแรงกับตัวเอง ได้ดำดิ่งไปกับอาการนี้ทรมานกับอาการ เกือบตายไปหลายรอบ
  • มีอาการคนแก่ – เกิดอาการคนแก่หลายอย่างเริ่มปรากฏขึ้น เช่น ความดันสูง สายตายาว ฉี่ไม่สุด ปวดตามข้อ หงุดหงิดง่าย ฯลฯ
  • ออกจากงาน – ช่วง 2 ปีที่ผ่านมา รู้สึกเศร้าเสียใจและเจ็บปวดกับงานที่ทำมาก เหมือนเป็นคนแปลกแยกและเป็นตัวประหลาด เข้ากับใครไม่ได้ สุดท้ายก็ออกจากงาน พอออกจากงานก็มีความสุขอย่างมาก ไม่ได้รู้สึกตกงานแค่รู้สึกว่าเป็นอิสระที่อยากทำอะไรก็ได้ที่อยากทำ
  • ซ่อมช็อปเปอร์ – ซ่อมช็อปเปอร์ที่จอดไว้นาน 14 ปี กว่าจะวิ่งได้ก็ใช้เวลาซ่อมกว่า 3 เดือน
  • มีคนชวนไปทำงานด้วย – มีหลายบริษัทชวนไปทำงานด้วย แต่ก็ปฏิเสธไปเพราะร่างกายและจิตใจไม่พร้อม
  • บ้าปากกาหมึกซึม – หยิบปากกาหมึกซึมที่ซื้อมาจาก miniso เขียนคำซ้ำๆ กันในกระดาษให้ตัวเองมีสติและสมาธิ เขียนไปเขียนมาก็เกิดอาการบ้าปากกา เลยซื้อปากกามึกซึมมาหลายด้ามเลย
  • กลับมาเขียน code – กลับมาเขียน code ในโปรเจคเล็กๆ ซึ่งไม่ทำเงินแต่ก็เขียนเพราะต้องการฟื้น skill ที่หายไปและสร้างความสุขให้กับตัวเอง
  • เขียน 3D model – ศึกษาโปรแกรม CAD อย่างจริงๆ จังๆ เพราะได้ Fusion 3D startup license มาก็เลยหัดใช้สักหน่อย ได้ออกแบบงานหลายอย่าง
  • วิ่งมาราธอน – แฟนลงวิ่งมาราธอนให้ 2 รายการ เป็น mini marathon 12.8 กม. และ trail 13 กม.
  • แมวตาย – คุณด่างแมวที่เลี้ยงมาตั้งแต่ยังตัวเล็กๆ ได้ตายไป คุณด่างเป็นแมวอัธยาศัยดี เข้ากันได้กับทุกคน กลางวันชอบนอนเฝ้าบ้าน กลางคืนไปเที่ยวเล่น คุณด่างตายรู้สึกเสียใจมาก เลยไว้อาลัยโดยการไว้หนวดเครา
  • มีลูกแมวหลงมา – มีลูกแมวหลงมาอยู่ที่บ้าน ร้องแม้วๆ อยู่ 1 วัน สุดท้ายก็หาตัวเจอ จับอาบสมุนไพรไล่หมัด โรยแป้ง ตั้งชื่อว่า “ไอ้หลง” ตอนนี้ก็เล่นซนสนุกสนานกับนวล

ทอดเฟรนซ์ฟรายกับหม้อทอดไร้น้ำมัน

ที่บ้านชอบทำอาหารทอดๆ ก็เลยแนะนำเรื่องหม้อทอดไร้น้ำมันจะได้ลดเรื่องไขมันไปในตัว ที่บ้านก็เลยจัดหม้อทอดไร้น้ำมันมา 1 เครื่อง ก็เลยเอามาลองทำอะไรกินบ้าง

ทอดเฟรนซ์ฟราย รอบแรกไหม้ไปหน่อย

รอบที่สองใช้ได้ กรอบนอกนุ่มใน

ลองทอดปีกกลางดู

ลองทอดน่องไก่ดู

ก็ถือว่าใช้ได้นะ คราวหน้าต้องอบไก่เป็นตัวๆ บ้างละ แต่ใช้หม้ออบอันใหญ่

เขียน App Instant Feedback

ป๋าช้างแห่ง Ayarafun ให้ยืมจอ 7″ มาพักนึงละ แต่ยังไม่ได้เริ่มทำอะไรมาก หลังจากหมดพลังไปกับ cross compile ตัว Fultter Engine ก็ยังไม่ได้ทำอะไรต่อ คิดว่าถ้า port ไปเป็น desktop app บน Raspbian ได้ก็น่าสนใจ แต่ยังทำไม่สำเร็จก็เลยพักไว้ก่อน หันมาดูเรื่อง Flutter for Web แทน ซึ่งยังไงก็ยังได้ใช้งาน เคยออกไอเดียเรื่อง Instant Feedback ไปให้ป๋าช้างลองทำเล่นดู ไปๆ มาๆ วนกลับมาทำเองซะงั้น ก็เลยลอง Flutter 1.13 ใน master repo ซะเลย

จากวิดีโอตัว App ถูก cross compile เป็น macOS App เรียบร้อยแล้ว การแสดงผลถือว่าใช้ได้เลยทีเดียว เริ่มอยาก compile บน Raspbian บน ARM ละ