วิธี Word Wrap ใน Jupyter Notebook / Jupiter Lab

มีคำถามมา หาคำตอบเจอ คิดว่าเป็นประโยชน์​เลยบันทึกไว้ ปัญหาของคนใช้ Jupyter Notebook / Jupyter Lab คือ ถ้ามีโค๊ดยาว ๆ จะไม่ขึ้นบันทัดใหม่ให้ จริง ๆ ต้องบอกว่า ไม่ Word Wrap ตามภาพที่ 1 ไปค้นหามา พบข้อมูลจาก Alex Ioannides ตอบที่ https://stackoverflow.com/questions/48202340/enable-word-wrap-in-jupyterlab-code-editor เค้าแนะนำให้เอาแก้ไขโดยใส่สิ่งนี้ใน Settings แต่มันอยู่ตรงไหนหล่ะ มันอยู่ตรงนี้นะ Settings > Advanced Settings Editor แล้วก็คลิกที่ Notebook จากนั้นเอาโค๊ดข้างต้นไปแปะที่ User Preferences แล้วกดปุ่ม Save ด้านขวามือบน (รูปแผ่น Disk) ผล หวังว่าจะเป็นประโยชน์นะครับ

Read More »

[บันทึกกันลืม] วิธีแก้ปัญหาข้อมูลประเภท timedelta64[ns] ใน Pandas ไม่สามารถเขียนลงฐานข้อมูล field ที่เป็น Time ได้

เหตุ: ผลคือ: ซึ่ง ref_visit_time นั้น ใน MySQL/MariaDB ใช้ชนิดเป็น Time เช่น 08:00:00 หมายถึง 8 นาฬิกา อะไรทำนองนั้น ปัญหา: อยู่ที่ตอนเอา Dataframe นี้ ไป Write ใส่อีก Table นึง ซึ่ง table2 นั้น มีโครงสร้างเหมือนกับ table1 เลย โดยเฉพาะ ref_visit_time มีชนิดเป็น Time เช่นกัน แต่ถ้า run code นี้จะได้ Error/Warning ว่า เหตุเพราะ แทนที่จะเก็บเป็น Time มันดันเปลี่ยนเป็น Integer ที่เป็นจำนวน Nanosecond แทนนั่นเอง วิธีแก้ไข ต้องตรวจสอบว่า มี column ใน destination table มีชนิดเป็น Time (timedelta64[ns]) ให้เอาไปบวกกับเวลาเริ่มต้น แล้ว เปลี่ยนชนิดเป็น Time แทน ดังนี้ เราก็จะได้ข้อมูลที่ถูกต้องกลับมา ตามนั้นครับ

Read More »

Zoom Developer – การใช้ Webhook เพื่อรายงานเหตุการณ์ต่าง ๆ ในห้อง Zoom

เช่นเดียวกับ Enterprise-grade อื่น ๆ Zoom ก็มี API ให้เราพัฒนาโน่นนี่ได้ บทความนี้จะมาแนะนำวิธีการ Webhook เพื่อรายงาน ผ่าน LINE Notify เมื่อมีคนเข้ามาในห้อง เช่นใช้เพื่อแจ้งคนบน Host ว่า มีคนเข้ามาแล้วนะ เป็นต้น แต่ก่อนอื่น ต้องเข้าใจว่า Zoom Account มี หลายรูปแบบ โดยเข้าไปที่เว็บ https://zoom.us/profile Basic Account อันนี้ หลายคนคงจะใช้อยู่ ที่ถูกลิมิต ไม่ให้ใช้งานเกิน 40 นาที — อันนี้ จะเห็นคำว่า BASIC อยู่ในหน้า Profile ดังรูปที่ 1 2. LICENSED Account แบบนี้ สร้างเอง จ่ายตังค์เอง นักเลงพอ ก็จะประชุมได้ไม่จำกัดเวลา คนเข้าได้พร้อมกัน 100 คน จะมีคำว่า LICENSED ดังรูปที่ 2 3. แต่มีอีกแบบ ไฮโซกว่า คือแบบ Corporate (มั้ง) แบบว่า ในองค์กรซื้อ ข้อแตกต่างกับแบบที่ 2 คือ ประชุมไม่จำกัดเวลา และ ผู้เข้าร่วมได้สูงสุด 300 คน ดังรูปที่ 3 คราวนี้ เชื่อว่าหลายคนอาจจะยังไม่ทราบว่า เราสามารถเขียนโปรแกรมเพื่อจัดการงานต่าง ๆ กับ Zoom ได้ โดยไปที่เว็บ https://marketplace.zoom.us/develop/create สำหรับ Basic Account เค้าให้เราเป็น Admin จึงสร้างได้ครบทุกชนิด ดังรูปที่ 4 สำหรับ Licensed Account แบบจ่ายตังค์เอง เค้าให้เราเป็น Admin จึงสร้างได้ครบทุกชนิด ดังรูปที่ 5 ส่วน Corporate Licensed Account … ก็น่าเสียดาย ที่ Admin เค้าให้เราเป็นแค่ Member จึงไม่สามารถใช้งานได้ครบถ้วนได้ เสียดายตังค์ เอ๊ย เสียดายจัง ดังรูปที่ 6 ก็ … แล้วแต่นะ มาสร้าง Zoom Webhook กันเถอะ Requirement คือ เราเป็น Host เปิดห้อง Zoom เอาไว้ ซึ่งจะเริ่มประชุมเวลา 10:00 แต่ต้องการทราบว่า มีใครเข้ามาก่อนเวลา ให้ ส่ง Line Notify ไปแจ้ง Host ให้ทราบ Zoom Webhook จะทำหน้าที่เฝ้าห้องให้ แล้วเมื่อเกิด Event ที่กำหนด ก็จะส่ง POST request ไปยัง URL ที่กำหนดไว้ ดังนั้น สิ่งแรกคือ เราจะมาสร้าง Google Cloud Function ด้วยภาษา Python เพื่อรับ POST Request นั้น (Prerequisite: ท่านสามารถใช้ Google Cloud Platform และ LINE Notify ได้แล้ว) Google Cloud Function ไปที่ https://console.cloud.google.com/functions/add จะได้หน้าตาประมาณนี้ (รูปที่ 7)กรอก Function name, Region (แนะนำให้ใช้ Singapore), ให้ Trigger ด้วย HTTP Protocol และ Allow unauthenticated invocation. จากนั้นคลิก

Read More »