เปลี่ยนจาก classic editor เป็น block editor

มีโอกาสเข้าไปอัพเดทเนื้อหาใน thainame . NET อยู่เสมอ พบว่า เนื้อหาที่เคยมีไว้ 178 หน้า หรือ 1546 โพสต์ เมื่อเปิด edit post จะมีการถามว่า เลือก update จาก classic editor เป็น block editor ไหม เป็นคำถามที่ จี๊ดมาก เพราะหันกลับไปมอง 1546 โพสต์นี่ หมายความว่า ผมต้องเข้าไป rewrite ทั้งหมดเลยใช่ไหม คำตอบ คือ ใช่

แล้วการเปลี่ยนครั้งนี้ ดีอย่างไร พบว่า Pavel Ciorici เขียนเมื่อ July 21, 2023
มีข้อดี 5 ข้อ

  1. แก้ไขโค้ดได้สนุกขึ้น เพราะแบบโบราณคงไม่รองรับอนาคต
  2. เลือกใช้ แพทเทิร์น ที่ออกแบบให้เลือกใช้ได้
  3. ทำให้โพสต์ไม่บวม เพราะแบบใหม่ performance ดีกว่า
  4. แบบใหม่ใช้ plugin ได้จำกัด แต่ดีกว่า
  5. รองรับการตรวจสอบรุ่น ในอนาคต

วันนี้ได้ทดสอบ ตรวจ pagespeed กับ post ในแบบ classic กับ block เทียบกันแล้ว พบว่า แบบ classic editor ได้คะแนน performance ต่ำกว่า block editor ได้ทดสอบก่อน และหลังเปลี่ยน ได้คะแนนต่างกันชัดเจน จากการทดสอบปรับจำนวน 3 โพสต์

เมื่อหันกับไปมอง wordpress site ทั้งหมด 4 ตัวของผม ก็นั่งคิดอยู่ว่า จะไป rewrite ได้ครบได้อย่างไร แค่ thainame . NET ก็พันกว่าโพสต์แล้ว

แต่ผมกลับมีกำลังใจขึ้นมา เมื่อหันไปมองเพื่อนผู้ประกอบการ เพราะมีเพื่อนที่เค้าให้ความสำคัญกับ “เนื้อหา” เมื่อหันไปมอง ttpcargo.com , umbrella-perfect.com , ofisu.co.th , usb-perfect.com เค้าก็มีโพสต์ที่ออกมาเป็นราย weekly อย่างต่อเนื่องหลายปีติดต่อกัน ให้ได้เรียนรู้เรื่องราวเกี่ยวกับธุรกิจ สินค้า บริการต่าง ๆ ก็หาเวลาไปตามอ่านอยู่ครับ มีเนื้อหาที่น่าสนใจเยอะมาก

ttpcargo.com blog

PWA เริ่มใช้ที่รุ่น 8.2

เมื่อ 23 มี.ค.65 เริ่มปรับ /web2 และ /pwa เป็นรุ่น 8.2 มีการปรับที่สำคัญ คือ การทำให้ webpage สามารถแสดงผลเหมือนเป็น mobile app ซึ่งการใช้งาน เริ่มจากเปิด webpage ผ่าน browser บน mobile แล้วเลือก “เพิ่มไปที่ , หน้าจอหน้าแรก” จะมี icon ปรากฎบน mobile ถือเป็นการติดตั้งเรียบร้อยแล้ว ต่อจากนั้น เมื่อเริ่มใช้งาน เราสามารถคลิ๊ก icon บน mobile จะมีหน้าตาเหมือน application แต่ระบบข้างหลัง คือ browser เช่นเดิม

โจทย์นี้ เคยมีเพื่อนต้องการให้แสดง webpage แบบ full screen บน browser ซึ่งมีกรณีศึกษาที่ดำเนินการเทียบเคียงได้กับหนังสืออีเล็กทรอนิกส์ Peter rabbit ทำให้ผมนึกถึงการทำงานของ PWA ที่เคยแกะโค้ดไว้เมื่อปี 2560 แต่เป็นคุณสมบัติการทำ Full screen ที่แตกต่างกัน แล้วเห็นว่าความสามารถของ PWA นี้น่าสนใจ จึงเริ่มต้นนำร่องปรับใช้กับ 2 โฮมเพจนี้ ซึ่งการใช้งานก็เพิ่มโค้ดไปเพียง 2 tag ในบรรทัดที่ 6 คือ 1) กำหนดค่ารายการในแฟ้ม manifest ที่ต้องปรับสำหรับแต่ละหน้า และ 2) เรียกสคลิ๊ป material.min.js ซึ่งเป็นองค์ประกอบสำหรับการออกแบบที่เรียกใช้ค่าจากแฟ้ม manifest

http://www.thaiall.com/pwa/

http://www.thaiall.com/web2/

https://github.com/kongruksiamza/PWATutorial/

ห้องเรียนจักรวาลนฤมิต

การเรียนการสอนในห้องเรียนจักรวาลนฤมิตอาจเป็นจริงในเร็ว ๆ นี้
พบว่า ในงาน MWC 2016 นั้น Mark Zuckerberg ได้แสดงให้เห็นชัดเจนว่า “VR is the Next Platform” เป็นภาพที่ถูกตั้งคำถามว่า “นี่เปรียบเสมือนมโนภาพอนาคตของเรา” (allegory = การสมมติ) ผู้ร่วมประชุมได้ใช้อุปกรณ์ Gear VR แบบสวมหัว เข้าสู่โลกเสมือนจริง (22 ก.พ.2016) ซึ่ง Facebook ได้ซื้อ Oculus (25 มี.ค.2014) ผู้นำเทคโนโลยี VR มูลค่าประมาณ 2 พันล้านเหรียญสหรัฐฯ พัฒนาต่อยอดเป็น Metaverse ให้ทุกคนเข้าไปใช้ชีวิตกันในโลกเสมือนจริงได้ใกล้กว่าที่เคย คำว่า ห้องเรียนจักรวาลนฤมิต คือ การจัดการเรียนการสอนที่ห้องเรียนจะมีสภาพแวดล้อมของโลกเสมือนจริง

ห้องประชุมจักรวาลนฤมิต

https://www.blognone.com/node/78174

https://www.cbsnews.com/news/mark-zuckerberg-vr-virtual-reality-headset-photo/

https://www.theverge.com/2016/2/22/11087890/mark-zuckerberg-mwc-picture-future-samsung

site icon ของบล็อกนี้ ปรับ ก.พ.65

WordPress มี Site icon ในหัวข้อ Site Identity ให้เลือก upload ภาพประจำไซต์ฺได้ ซึ่งบล็อกนี้เลือกใช้ Twenty Sixteen สามารถกำหนดภาพได้
ประกอบกับช่วงนี้เตรียมตัวอย่างชุดภาพที่วาดด้วย Vector โดยเลือกวาดตัวเองอย่างง่าย สวมเสื้อหลากสี ด้วย Powerpoint แล้วส่งออกเป็น png เพื่อนำไปช้งาน ซึ่งภาพใน Powerpoint กำหนด slide ไว้ 6 ซม * 6 ซม จะุได้ภาพส่งออกเป็น 227px * 227 px โดย 37.83 = 1 ซม. ดังนั้นภาพ 10 ซม. * 10 ซม. ก็จะได้ขนาด 378px * 387px ภาพนี้ชื่อ face_01 เป็น vector ถือเป็นเซตแรกที่ได้วาดภาพคน ไม่ได้สวยใส่ หล่อเหล่า จมูกโด่ง คางแหลม ๆ แต่ผมก็ชอบในแบบของผม จึงเลือกมาเป็น site icon ของบล็อกนี้ ขนาดต้นฉบับที่ส่งออกจาก powerpoint มีขนาด 227px แต่ wordpress ต้องการ 512px จึงใช้ irfanview ทำการ resize เป็น 512 px แล้วจึงอัพโหลดเข้าไปในบล็อก

face_01

heroku login เพื่อ push ผ่าน command line

การใช้งาน heroku.com บน command line นั้น เริ่มต้นจากการสมัครสมาชิกบน heroku.com ให้เรียบร้อย ก็จะมี user และ password เป็นของตนเอง แต่เมื่อต้องการใช้งานโปรแกรม heroku บน command line ต้อง download
โปรแกรม https://devcenter.heroku.com/articles/heroku-cli

หากต้องการใช้งาน เช่น ใช้คำสั่งแสดงรายการแอปพลิเคชันของเรา ด้วยคำสั่ง heroku apps ต้องเริ่มต้นด้วยคำสั่ง heroku login ซึ่งมีรายละเอียดการรักษาความปลอดภัยแบบ Two-factor authentication พบว่า ต้องมีการ Verify บัญชีผู้ใช้ และต้องเลือก method ในการยืนยันตัวตน
พบว่า มี 3 ปุ่มปรากฎขึ้นมาให้เลือก 1) Salesforce Authenticator 2) One-Time Password Generator 3) Security Key โดยวิธีที่สาม จะเกี่ยวข้องกับการใช้ usb drive ที่น่าสนใจลดลงสำหรับการใช้งานในปัจจุบันที่บางอุปกรณ์ไม่มีช่อง usb แล้ว จึงเลือก 2 วิธีแรก และการใช้งาน ต้องไปดาวน์โหลด app จาก Google play store ชื่อ Salesforce Authenticator ไปติดตั้งบน mobile device เพื่อให้พร้อมสำหรับการยืนยันตัวตน

ขั้นตอนการยืนยันตัวตน มีดังนี้ 1) บน PC : ติดตั้งโปรแกรม แล้วตรวจสอบรุ่นด้วย heroku -v แล้วสั่ง heroku login พบว่าจะมีการเปิด browser ให้ยืนยันตัวตน ซึ่งมี 3 method ให้เลือกดำเนิน ซึ่งผมเลือก 2 method แรก 2) บน PC : คลิ๊ก One-Time Password Generator จะพบกับ QR code มาให้ถูก scan ผ่าน application เฉพาะ จึงไม่สามารถ scan ด้วยโปรแกรมใด ๆ แล้วนำ code ไปเปิดบน browser เพราะไม่ใช่ web link 3) บน Mobile : ติดตั้ง Application ชื่อ Salesforce Authenticator บน Smart phone เปิดขึ้นมา แล้วเลือก เพิ่มบัญชี และสแกน QR code ที่พบบน PC จนผ่าน แล้วจะพบตัวเลข 6 หลัก สำหรับนำไปกรอกบน PC และจะเปลี่ยนเร็วมาก โปรดจดจำ แล้วไปกรอกในเวลาที่กำหนด 4) บน PC : คลิ๊ก Salesforce Authenticator พบช่องให้กรอกโค้ด ถ้ากรอกเลข 6 หลักในเวลาที่กำหนดแล้ว คลิ๊กปุ่ม Enable Two-factor Authentication 5) บน PC : ถ้ายืนยันตัวตนผ่าน ในหน้า Command line จะพบรายงานว่ายืนยันผ่านเรียบร้อย แล้วปรากฎรหัสผู้ใช้ขึ้นมา จากนั้นสามารถใช้ คำสั่ง heroku auth:whoami ตรวจสอบได้ว่าฉันคือใคร คำสั่ง heroku apps แสดงรายการแอปที่เคยสร้างไว้ คำสั่ง heroku apps:info react640909 แสดงรายละเอียดของแอปพลิเคชัน

http://www.thaiall.com/heroku/

http://www.thaiall.com/react/

App : LPMuseum2 บน Google Play Store


เล่าเรื่อง App

ที่มาของแอปพลิเคชัน lpmusem ทั้งรุ่น 1 และ 2 ใน Google play store อ้างอิงข้อมูลทั้งหมดจากข้อมูลในเว็บไซต์ lpmuseum.net ที่ดำเนินการภายใต้ โครงการ การจัดการพิพิธภัณฑ์ชุมชนในระบบอิเล็กทรอนิกส์ของจังหวัดลำปาง (The Management of Community Museum in Electronic System of Lampang Province) โดย พระครูสิริธรรมบัณฑิต,ผศ. ผู้อำนวยการวิทยาลัยสงฆ์นครลำปาง หัวหน้าแผนวิจัยและคณะ ซึ่งได้รับทุนอุดหนุนจากมหาวิทยาลัยมหาจุฬาลงกรณราชวิทยาลัย ประจำปีงบประมาณ 2563 MCU RS 6303008 โดยข้อมูลการศึกษาได้มาจาก 3 วัดต้นแบบ ได้แก่ วัดบ้านหลุก 289 หมู่ 6 ตำบลนาครัว อำเภอแม่ทะ จังหวัดลำปาง วัดปงสนุกเหนือ ตำบลเวียงเหนือ อำเภอเมืองลำปาง จังหวัดลำปาง วัดไหล่หินหลวง หมู่ 2 บ้านไหล่หิน ตำบลไหล่หิน อำเภอเกาะคา จังหวัดลำปาง

ในโครงการประกอบด้วย 3 โครงการย่อย ได้แก่ โครงการวิจัยย่อยที่ 1 เรื่อง ศึกษาองค์ความรู้และกระบวนการสร้างการจัดการพิพิธภัณฑ์ท้องถิ่นเพื่อความยั่งยืน ก่อให้เกิดแนวปฏิบัติที่ดีในการสร้างการจัดการพิพิธภัณฑ์ท้องถิ่น ผู้ดำเนินการวิจัย : อ.ณรงค์ ปัดแก้ว โครงการวิจัยย่อยที่ 2 เรื่อง การพัฒนาพิพิธภัณฑ์ชุมชนด้วยระบบอิเล็กทรอนิกส์ในจังหวัดลำปางได้สร้างรูปแบบทะเบียนโบราณวัตถุของพิพิธภัณฑ์ชุมชนในระบบอิเล็กทรอนิกส์ ผู้ดำเนินการวิจัย : พระครูสิริธรรมบัณฑิต,ผศ., ผศ.ดร.บุษกร วัฒนบุตร, ดร.อนุกูล ศิริพันธ์, อ.ณฤณีย์ ศรีสุข โครงการวิจัยย่อยที่ 3 เรื่อง การสร้างต้นแบบพิพิธภัณฑ์ชุมชนในระบบอิเล็กทรอนิกส์สร้างแอปพลิเคชัน พิพิธภัณฑ์ชุมชน พัฒนาระบบและเครือข่าย และการสร้างต้นแบบพิพิธภัณฑ์ชุมชนด้วยระบบอิเล็กทรอนิกส์ ดร.ภัทรเดช ปัณชญาธนาดุล

http://www.thaiall.com/reactnative/lpmuseum/

รักใครหลงอะไร ไปตั้งแฟนคลับได้นะ

7 ก.ย.64 เห็นนิสิตรหัส 64 ทั้งพยาบาล เทคนิคการแพทย์ และทันตแพทย์ ที่ส่งผลงานจากที่ได้รับมอบหมาย มีคุณภาพที่สะท้อนถึงความตั้งใจ เขียนบล็อกเรื่องราวเกี่ยวกับการใช้ชีวิต การทำกิจกรรม และประสบการณ์ เล่าเหตุการณ์ก่อนจะมาถึงวันนี้ให้ได้อ่านมาก รู้สึกว่าชีวิตวัยรุ่นเป็นไปอย่างมีความสุข และความหวัง ทำให้ผมในฐานะผู้อ่านรู้สึกเหมือน 18 อีกครั้ง ประกอบกับวันนี้เคลียร์ปัญหา และเงื่อนไขหลายอย่างเกี่ยวกับการสร้างแอปพลิเคชัน บนสมาร์ทโฟน จึงมองหาช่องทางที่เป็นไปได้ เช่น การสร้างโปรแกรมต้นแบบจากข้อมูลที่มีอยู่ เพื่อใช้เป็นแนวทางก้าวต่อไปในการสร้างแอป

ถือเป็นแอปแรกที่อยากสร้างที่ไม่ได้เกิดจากงานในปีนี้ คือแอปแฟนคลับ เพราะใกล้ตัว และมีข้อมูลอยู่มาก นั่นคือการเป็นแฟนคลับมหาวิทยาลัยเนชั่น เดิมผมเป็นแฟนคลับไอดอลญี่ปุ่น เกาหลี จีน หรือจะฝั่งตะวันตกทั้งอเมริกา อังกฤษ ฝรั่งเศษ หนัง เพลง การ์ตูน และหนังสือก็เป็นแฟนเช่นกัน แต่ก็ไกลตัวเกินไป เลือกใกล้ ๆ ก็เลือกที่ทำงานนี่เลย เพราะไปทำงานทุกวัน มีเรื่องราวให้เล่าได้ เลือกภาพมาจัดกิจกรรม น่าจะพัฒนาขึ้นเป็นแอปแฟนคลับได้ เริ่มต้นก็ใช้ webpage มาสร้าง prototype ที่จำลองคล้ายกับหลักการของ webview component ที่ใช้บน react native ด้วยเวลาที่จำกัด จึงเลือกสร้างไว้ 4 เพจ คือ ประวัติ ภาพสวย บทความของท่านอธิการ และคลิปวิดีโอ เนื่องจากข้อมูลที่เคยสะสมไว้มีพร้อม จึงดำเนินการได้เร็ว ปรับโค้ดไม่มาก ด้วย template เดียวกัน สรุปว่าต่อจากนี้ก็ต้องนึกฝันกันต่อไปว่าจะเอาอะไรมาใส่ในแอพ ก่อน build เป็น version 1 ขึ้น google play store กันต่อไป

http://www.thaiall.com/ntufan

ชวนน้องเล่นเกม และสั่งพูด Hello World ด้วย node.js

อยากเล่าให้น้องที่ชอบเล่นเกมฟัง ว่า Bluestacks ใช้ดาวน์โหลดเกมบน Android มาเล่นได้เหมือนกับมี Smart phone อีกเครื่อง วางอยู่บนโปรแกรม Windows เรียกได้ว่า โปรแกรมซ้อนโปรแกรมและมีได้หลายชั้น และโปรแกรม Node.js ก็ถูกกล่าวถึงกันอย่างมาก ไปค้นดูใน google ได้เลยว่า นิยมชมชอบกันขนาดไหน โดยเฉพาะ กลุ่มที่สนใจเทคโนโลยีแบบเข้มข้น ทั้งนิสิต นักศึกษา และโปรแกรมเมอร์ ถ้าสนใจเรื่องนี้ มาอ่านกันต่อได้เลยครับ ผมขอเสนอกิจกรรมน่าสนุก คือ พูด Hello world บน Bluestacks ถ้าดูตามภาพประกอบทั้ง 7 ภาพ เป็นเหตุการณ์ที่จะเกิดขึ้นหลังจากเราไป download โปรแกรมจาก bluestacks.com มาติดตั้งแล้ว เมื่อเปิดใช้งานโปรแกรมครั้งแรกนั้น 1) เรามักเริ่มต้นจากการเข้าไป ตั้งค่า (setting) ว่าจะใช้งานแบบแนวนอน หรือแนวตั้ง และความละเอียดของหน้าจอ ให้เหมาะกับการเล่นเกมของเรา 2) เปิด Play store เตรียมดาวน์โหลดโปรแกรม และเกมที่รอเราอยู่นับล้าน แต่เริ่มใช้งานก็ต้องอัปเดตคลังการสนับสนุนกันก่อน 3) จะติดตั้งเครื่องมือ ก็นึกถึงสูตรโกงเกมสมัยก่อนเลย ต้องเข้าโปรแกรม Termux (ก่อนอื่นต้อง download Termux….apk ค้นจาก google.com หรือดาวน์โหลดจากแหล่งเผยแพร่ เช่น apkcombo.com หรือ apkpure.com หรือ f-droid.org เมื่อได้มาแล้ว ก็เพียงแต่ลากแฟ้ม .apk ไปวางใน Bluestacks ก็จะเป็นการติดตั้งและใช้งานได้ทันที) หน้าตาของโปรแกรมจะเป็นพื้นสีดำ ตัวอักษรสีขาว ที่ดูจะมือมน แต่มีอะไรซ่อนอยู่มหาศาล ลองค้นหาดูครับ นึกซะว่าเก็บเหรียญ เข้าแล้วก็พบกับเครื่องหมาย $ แสดงว่าตรงนี้มีค่า ที่พร้อมสนับสนุนให้เราได้ไปต่อ เพราะเป็นสัญลักษณ์หน่วยเงินของต่างประเทศ เรียก Dollar sign 4) โปรแกรม Node.js ที่นักคอมพิวเตอร์เค้าใช้กันนั้น เริ่มต้นใช้งานได้ด้วยการพิมพ์คำสั่ง npm แต่เมื่อสั่งแล้วพบว่าในระบบยังไม่มี จึงต้องสั่งติดตั้งเพิ่ม การสั่งติดตั้งจะพิมพ์คำสั่งว่า pkg install nodejs แต่ฟ้อง error ก็ใจเย็น ๆ หาสาเหตุ และวิธีแก้ไขกันก่อน 5) ในอุปกรณ์มีแต่โปรแกรมเก่าที่มีมาก่อนหน้านี้ จึงยังใช้คำสั่งติดตั้งไม่ได้ อยากได้ของใหม่ก็สั่งอัพเกรดรายการกันก่อน จะได้มีโปรแกรมที่ทันสมัยยิ่งขึ้น มาสั่งกันได้เลย ด้วยคำสั่ง pkg upgrade 6) ถึงเวลาแล้ว ที่จะติดตั้งโปรแกรมที่เราต้องการ ก็เพียงแต่พิมพ์สั่งว่า pkg install nodejs ก็จะใช้เวลาไปดาวน์โหลดโปรแกรมมาติดตั้งให้เราอยู่พักหนึ่ง 7) เมื่อพร้อมก็เริ่มสั่งงาน และเขียนโปรแกรมกันเลย แต่ละบรรทัดก็จะมีความหมายเฉพาะตัว เรามาค้นหาความหมายของคำสั่งต่าง ๆ กันดีไหม เมื่อเขียนเสร็จ ก็สั่งให้โปรแกรมทำงาน ผลของการทำงานจะพบคำว่า Hello World ถือว่าภารกิจลุล่วง ภาษาอังกฤษเรียก Mission Complete ยินดีด้วย ผ่าน ด่านที่ 1 เรียบร้อยแล้ว

ภาพที่ 7

http://www.thaiall.com/bluestacks/

http://www.thaiall.com/node.js

กลุ่มซิกเซนต์ ที่ปลุกให้กลับมาพัฒนาโมบายแอปอีกครั้ง


วันนี้ 29 สิงหาคม 2564 ครบกำหนดเวลาที่นิสิตปี 1 มหาวิทยาลัยเนชั่น ส่งผลงานเขียนบล็อก เพื่อร้องเรียงเรื่องราวบอกเล่าสั้น ๆ โดยใช้ภาพประกอบ มาลำดับความคิด เหตุการณ์ หรือช่วงเวลา ที่เลือกเขียนได้ทั้งแนวลึก และแนวกว้าง เมื่อได้อ่านผลงานแล้วรู้สึกสนุก นิสิตบอกเล่าถึงความสุขเกี่ยวกับชีวิตวัยรุ่น ที่เปลี่ยนผ่านจากเยาวชนตัวน้อยในครอบครัวสู่ความเป็นผู้ใหญ่ สู่ชีวิตนิสิตในรั้วมหาวิทยาลัย เล่าได้ดีโดยใช้ภาพเป็น Milestone ในแต่ละย่อหน้า เพราะภาพหนึ่งภาพแทนคำพูดนับพันคำ ทำให้นิสิตสรรหาภาพที่ชื่นชอบในอดีตมาประกอบการเล่าเรื่องได้อย่างมีความสุข ร้อยเรียงเป็นเรื่องราวน่าอ่าน มีที่มา ที่เป็นอยู่ และที่เป็นไป ฝึกทักษะการสื่อสารผ่านการเขียน รอบต่อไปก็จะฝึกทักษะการพูด และบันทึกคลิปออกสื่อกัน หวังว่าจะพัฒนาทักษะการเขียน แล้วใช้ทักษะการเขียนไปเขียนตอบข้อสอบต่อไป ชวนอ่านผลงานของ วรรณศาสน์ มณีรัมย์ เลิศฤดี พลคำมาก หรือ วัชราพร เพื่อนสงคราม

https://www.moveoapps.com/blog/wp-content/uploads/2020/07/best-programming-languages-for-mobile-app-development.png


กลับมานึกถึง นิสิตรุ่นพี่ปี 4 สายเดฟ ผมตั้งชื่อว่า Six Sense ไม่ใช่ The Sixth Sense ที่เป็นชื่อภาพยนตร์ที่แสดงนำโดย Bruce Wills แต่ Six มาจาก จำนวน ไม่ใช่ Sixth ที่มาจากคำว่า ลำดับที่ ตั้งชื่อว่า ซิกเซนต์#1 ประกอบด้วย หวาน แพรว ฟลุ๊ค เฟิร์น นน ฝน ซิกเซนต์#2 ประกอบด้วย คอม หนึ่ง นิค มิ้ม แบล็ค วิว เพราะนิสิตทั้งสองรุ่น อ.แนน อ.นุ้ย อ.เชพ ผู้สอน และศิษย์พี่ที่รับศิษย์น้องไปทำงานตรงสาย ต่างเสมือนเป็นแรงผลักดันต่างกรรมต่างวาระ ทำให้ผมกลับมาสนใจการพัฒนาโมบายแอปด้วยเครื่องมือใหม่อีกครั้ง จากที่เริ่มพัฒนาเว็บแอป มาตั้งแต่ 2541 ก่อนหน้านี้เคยสนใจ Android Studio แต่อุปกรณ์ไม่พร้อมสนับสนุนการพัฒนา แล้วปัจจุบัน 2564 ได้พี่เปรม และพี่เบนซ์ มาช่วยทำให้อุปกรณ์ของผมพร้อมขึ้น และตัวเครื่องมือพัฒนาได้รับการปรับปรุงให้มีประสิทธิภาพ ขึ้น จึงเริ่มกลับมาสนใจการพัฒนาโมบายแอป ด้วย React Native บน Android SDK และถือเป็นเวลาที่ต้องกลับไปซ่อมแซมโมบายแอป ที่เคยใช้ webview หรือแอปเก่ามีปัญหาที่ไม่ สอดคล้องกับเงื่อนไขใหม่ของ Play Store จนเป็นผลให้ Google play store ลบแอปออก เนื่องจากเวลาผ่านไปเงื่อนไขก็เปลี่ยนตาม (lpmuseum2) โดยเฉพาะคำว่า deprecated หมายถึง การยุติฟังก์ชัน โมดูล หรือไลบรารี่ที่ใช้ในการพัฒนาแอปพลิเคชัน ที่ประกาศยุติอยู่เสมอในทุก เครื่องมือ ทำให้ต้องกลับไปรื้อแอปเก่า นำมาเข้าคิว เพื่อพัฒนาใหม่อีกหลายตัว


กลับมาชวนมองกระแส React Native พบว่า แนวโน้มการใช้เครื่องมือพัฒนาโมบายแอพในปัจจุบัน กลุ่มนักพัฒนาโมบายแอปในดาวเคราะห์สีน้ำเงินนี้ เลือกใช้ React Native ที่พัฒนาขึ้นโดย Facebook และเป็น Cross Platform ที่ส่งโค้ดไป compile บนตัวแปลภาษาในแต่ละอุปกรณ์ทำให้ใช้ฟังก์ชันได้ทุกตัว อาทิ Andriod หรือ iOS จึงเรียกว่า Native language จากบล็อกที่เขียนโดย Sophia Martin เขียน 14 ก.ย.2562 ระบุว่า เครื่องมือมาแรงมี 3 ตัว คือ Flutter , React Native และ Xamarin ส่วน Hirar Atha เขียน 23 ก.ค.63 นำเสนอ 6 Best programming languages ประกอบด้วย Android = 1) Java, 2) Kotlin ส่วน iOS = 3) Swift, 4) Objective-C ส่วน Cross Platform = 5) React Native, 6) Flutter แล้วคุณ Hirar Atha ยังเล่าว่า โดยเฉลี่ยแล้วผู้ใช้สมาร์ทโฟนอยู่กับอุปกรณ์ 2 ชั่วโมง 55 นาทีทุกวันเมื่อปี 2562 ซึ่งนานกว่าดูทีวีหรืออุปกรณ์อื่นใด มีร้อยละ 90 ใช้เวลาในแอปพลิเคชัน ซึ่งชัดเจนว่า Mobile apps คือ สื่อดิจิทัลที่ลูกค้าเกาะติดเป็นกลุ่มที่ใหญ่ที่สุด ผู้ใช้สมาร์ทโฟนเฉลี่ยแล้วมี 80 แอปพลิเคชัน และใช้อย่างน้อย 40 แอปพลิเคชันทุกเดือน

https://www.thaiall.com/reactnative/

set user variables กับ system variables

ลูกศิษย์ชื่อหนึ่ง โพสต์ถามใน สมาคมโปรแกรมเมอร์ไทย เกี่ยวกับ C:\> npx react-native run-android ที่ต้องตั้งค่า JAVA_HOME แต่ผมสนใจเรื่องการตั้งค่าใน System variables และ User variables จึงเรียบเรียงมาเล่าสู่กันฟัง ซึ่งการเข้าไปตั้งค่านั้น สั่งผ่าน command line ด้วย sysdm.cpl แล้วเข้า Advanced มองหา Environment variables… ซึ่งตัวแปรที่ตั้งขึ้นนั้น มี 3 สภาพแวดล้อม (Environment) คือ 1) ตั้งขึ้นขณะอยู่ใน Current shell ที่กำลังเปิดใช้งานอยู่นั้น และหายไปเมื่อปิด shell ลง 2) ตั้งตัวแปรใน System variables จะมีตัวแปรและค่าให้ใช้ในทุกเชล และทุกยูเซอร์ ถ้ามีตัวแปรซ้ำกับที่ประกาศใน User variables ก็จะใช้ในส่วนที่ผู้ใช้เป็นผู้ประกาศขึ้นสำหรับตนเอง 3) ตั้งตัวแปรใน User variables จะใช้เฉพาะกับ user ที่ sign in ในระบบขณะนั้น ผู้ใช้คนอื่นก็จะไม่เห็นตัวแปรนั้น ซึ่งตัวแปรแบบนี้ไม่ได้เกี่ยวว่าจะอยู่ shell แบบไหน เพราะได้ค่าเหมือนกันทั้งใน user หรือ administrator หรือ powershell เช่น ตัวแปร burin มีค่าเป็น u ก็จะเป็นเช่นนั้น เมื่อเรียกใช้โดย user ปัจจุบัน แต่ถ้า sign out และมีสมาชิกคนอื่นเข้ามาในระบบ แล้วใช้ตัวแปรที่สร้างใน System variables ค่าของ burin ก็จะเป็น s ตามตัวอย่างในภาพ

อีกกรณีหนึ่ง คือ การจัดการกับ variable ใน shell หนึ่ง จะไม่มีผลไปยัง shell อื่น จะลบหรือเปลี่ยนค่า burin เมื่อเปิด shell ใหม่ ระบบก็จะ load ค่าอีกครั้งจากระบบใหม่เข้ามาใช้ใน shell ไม่ว่าจะเป็น user variables หรือ system variables ก็ตาม เพราะแต่ละ shell มีหน่วยความจำเก็บตัวแปรเป็น local variables ของตนเอง หรือแม้แต่การเข้าไปเปลี่ยนใน sysdm.cpl ก็จะไม่กระทบค่าตัวแปรใน shell ที่กำลังเปิดอยู่ หากต้องการค่า variable ที่มีการเปลี่ยนแปลง ก็ต้องปิด shell แล้วเปิดขึ้นมาใหม่

มีอัลบั้มภาพที่เกี่ยวข้อง
ที่ http://www.thaiall.com/reactnative/