วันพฤหัสบดีที่ 13 พฤษภาคม พ.ศ. 2564

Flask ออกรุ่น 2.0 ต้องการ Python 3.6 ขึ้นไปเท่านั้น


Flask เฟรมเวิร์คสำหรับพัฒนาเว็บยอดนิยมบนภาษา Python ออกรุ่น 2.0 ความเปลี่ยนแปลงใหญ่ที่สุดคือการยกเลิกรองรับ Python 2 และ Python 3.5 ลงไป โดยทีมงานวางแผนว่าในอนาคตจะซัพพอร์ตเฉพาะ Python เวอร์ชั่นที่โครงการหลักยังซัพพอร์ตอยู่เท่านั้น

การอัพเกรดครั้งนี้มาพร้อมกับการเปลี่ยนเลขเวอร์ชั่นของโมดูลย่อยๆ ทั้งหมด ได้แก่

  • Flask 2.0: ซัพพอร์ตการทำงานแบบ asynchronous, รองรับ blueprint ซ้อนกันหลายชั้น, shell รองรับ tab completion
  • Werkzeug 2.0: ตัวเซิร์ฟเวอร์สำหรับ Flask ประสิทธิภาพการอ่านข้อมูลฟอร์มเร็วขึ้นมาก, ถอด jQuery ออกจากระบบดีบั๊ก
  • Jinja 3.0: ระบบ template รองรับ async เต็มตัว
  • Click 8.0: ระบบ shell ของ Flask รองรับ tab completion, ใส่สีข้อความ, ตรวจสอบออปชั่น
  • ItsDangerous 2.0: ไลบรารีเข้ารหัสข้อมูล รองรับการเปลี่ยนกุญแจตามช่วงเวลา โดยใช้กุญแจเป็นชุด

การเปลี่ยนแปลงเกือบทั้งหมดเป็นการเปลี่ยนแปลงภายใน ทางทีมงานระบุว่าน่าจะไม่มีปัญหาความเข้ากันได้กับโค้ดที่เขียนบนเวอร์ชั่นก่อนหน้านี้ แต่หลังจากออกเวอร์ชั่นจริงแล้วก็จะตรวจสอบหาจุดที่มีปัญหาต่อไป

ที่มา: Blognone

กรณีศึกษา การย้ายโค้ด COBOL เดิมมาเป็นภาษายุคใหม่ มีทางออกอย่างไรบ้าง?

ภาษา COBOL กลับมาเป็นที่สนใจอีกครั้งในช่วง COVID-19 จากกรณีรัฐนิวเจอร์ซีย์ขอโปรแกรมเมอร์ COBOL เข้าไปช่วยแก้ระบบสวัสดิการช่วง COVID-19 ทำให้โลกกลับมาสนใจโค้ดเดิมที่เขียนไว้หลายสิบปีแล้ว และสนใจว่าจะหาทางแก้ปัญหาในระยะยาวได้อย่างไร

เว็บไซต์ InfoWorld รวบรวมข้อมูลประเด็นการย้ายระบบ COBOL ว่ามีหลายแนวทาง ตั้งแต่การเขียนใหม่ทั้งหมด (rewrite) ซึ่งมีข้อเสียว่าโค้ดเก่า 30 ปี เอกสารไม่มี อาจไม่มีใครเข้าใจมันอีกแล้ว ไปจนถึงการยกโค้ดเก่ามารันบนโครงสร้างพื้นฐานยุคใหม่ (lift-and-shfit) ซึ่งมีข้อเสียว่าไม่สามารถปรับซอฟต์แวร์เพื่อสนองความต้องการของคนรุ่นนี้ได้อีก

ทางเลือกที่อยู่ตรงกลางคือ code refactoring ที่ยังคง logic ทางธุรกิจเดิมเอาไว้ แต่ปรับโค้ดให้ประสิทธิภาพดีขึ้น ไม่ผูกติดกับฮาร์ดแวร์มากเหมือนเดิม ซึ่งมีกรณีศึกษา 2 กรณีคือ

  • กระทรวงแรงงานและบำนาญของอังกฤษ (UK Department of Work and Pension) เคยพยายามเขียนโค้ด COBOL จำนวน 25 ล้านบรรทัดใหม่มาหลายครั้งแต่ไม่สำเร็จ สุดท้ายหันมาใช้ Micro Focus Visual Cobol ซึ่งเป็นภาษา COBOL เวอร์ชันใหม่ มีฟีเจอร์อย่างภาษาสมัยใหม่แทน ผลคือลดภาระการดูแล และประสิทธิภาพของระบบดีขึ้นมาก โค้ดย้ายจากเมนเฟรม VME มาเป็นลินุกซ์ RHEL และภายหลังจะย้ายมารันบน AWS ด้วย
  • หนังสือพิมพ์ The New York Times เดิมรัน COBOL บนเมนเฟรม IBM Z ใช้อีกวิธีคือแปลงโค้ดมาเป็น Java ด้วยเครื่องมือ automated refactoring ของบริษัท Modern Systems ใช้เวลาแปลงทั้งหมด 2 ปี ตอนแรกรันบนเซิร์ฟเวอร์ภายใน ภายหลังย้ายมาบน AWS เช่นกัน ลดต้นทุนค่าดูแลลงได้ 70%

ข้อมูลของ The New York Times มีเป็นกรณีศึกษาบนเว็บไซต์ของ AWS 

หน้าตาของ Micro Focus Visual Cobol ที่รันอยู่ใน Visual Studio (รองรับ Eclipse ด้วย)


Tech Stack ของ The New York Times ระหว่างเก่ากับใหม่


ที่มา: Blognone

Google โชว์งานวิจัยใหม่ ปรับแสงตกกระทบคนในภาพเอง เปลี่ยนฉากหลัง คนก็ไม่ดูลอย!

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

Google ได้ผุดงานวิจัยใหม่ขึ้นมาที่ชื่อว่า Total Relighting งานวิจัยสำหรับการปรับแสงในรูปภาพในการตัดต่อจากพื้นหลังหนึ่งไปยังอีกพื้นหลังหนึ่งให้มีความเสมือนจริงมากขึ้น โดยจะแบ่งเป็นหลักๆ ใน 2 ขั้นตอน การตัดภาพจากพื้นหลังเดิม และปรับแสงเพื่อนำไปวางบนภาพใหม่


การตัดภาพคนออกจากพื้นหลังจะมีการใช้โมดูลที่ชื่อว่า Human Matting ในการหารูปตัวคนด้วยอัลกอริทึมต่างๆ เพื่อตัดภาพออกมาก่อน


ต่อมาจะมีการนำไปปรับแสงให้เข้ากับพื้นหลังที่ต้องการเปลี่ยน โดยจะใช้โมดูลที่ชื่อว่า Relighting ที่มีโมเดลต่างๆ อยู่ภายใต้โมดูลนี้อยู่หลายตัว ที่จะมีส่วนสำคัญในการปรับแสงด้วยเช่นกัน ได้แก่ Geometry Net, Albedo Net, และ Shading Net


โดย Geometry Net จะทำหน้าที่วัดค่าต่างๆ เช่นความลึกเพื่อสร้างเป็นโมเดลรูปคนขึ้นมา จากนั้น Albedo Net จะทำการวัดค่าแสงที่กระทำต่อพื้นผิวต่างๆ และสุดท้ายใน Shading Net จะมีการคำนวณค่าแสงของพื้นหลังใหม่ ที่จะกระทำต่อพื้นผิวของตัวคน ในสถานการณ์ต่างๆ เพื่อรวมผลลัพธ์ที่ได้เป็นภาพคนบนพื้นหลังใหม่ที่ถูกปรับแสงให้เข้ากับสภาพแวดล้อมเรียบร้อยแล้ว


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

ในการใช้งานนั้นต้องการเพียงแค่รูปภาพคนต้นฉบับ และภาพพื้นหลังใหม่เท่านั้น ไม่จำเป็นที่จะต้องตัดพื้นหลังออกก่อนด้วย โดยอัลกอริทึมนี้ก็จะทำทุกอย่างทั้งตัดพื้นหลังและปรับแสงเพื่อนำไปวางบนพื้นหลังใหม่ให้อย่างเรียบร้อย


ทั้งนี้งานวิจัยนี้ยังไม่มีการเปิดใช้งานอย่างสาธารณะ และเตรียมตัวที่จะนำเสนอในงานประชุมวิชาการเกี่ยวกับด้านกราฟิก SIGGRAPH 2021 ที่จะจัดขึ้นในวันที่ 9-13 สิงหาคมนี้

สามารถอ่านงานวิจัยฉบับเต็มได้ที่ augmentedperception.github.io/total_relighting 

ที่มา: Beartai