ชวนน้องเล่นเกม และสั่งพูด 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/

ตัวอย่าง CSS ใน HTML (Joom.htm)

CSS (Cascading Style Sheets) คือ ภาษาคอมพิวเตอร์สำหรับกำหนดรูปแบบในเอกสาร HTML หรือเรียกว่า สไตล์ชีต ที่ใช้กำหนดรูปแบบ (Layout) สีอักษร สีพื้น ตัวอักษร การจัดวาง ระยะห่าง เส้นขอบ เป็นต้น มีรูปแบบ Syntax เฉพาะตัว ได้รับการกำหนดมาตรฐานโดย W3C การใช้ CSS มี 3 แบบ คือ Inline, Internal และ External CSS

เรื่อง CSS : Cascading Style Sheets กลายเป็นข้อควรรู้ที่จำเป็นสำหรับนักพัฒนาเว็บไซต์อย่างหลีกเลี่ยงไม่ได้ ปัจจุบัน CSS มีถึงรุ่น 3 แล้ว ในการใช้งานจริงมักสร้าง CSS แบบ External style sheet เพราะแฟ้มอื่นเรียกใช้ได้ ส่วน Internal style sheet ก็จะเรียกใช้ได้เฉพาะในแฟ้มนั้น ส่วน Inline style ก็จะพิมพ์คำว่า style ต่อท้าย tag นั้นไปเลย ซึ่งตัวแปรหลัก 2 แบบที่กำหนดเองใน CSS มี 2 แบบคือ id กับ class
การกำหนด และการเรียกใช้ต่างกันไป ถ้าเป็น id จะขึ้นต้นด้วย # แต่เป็น class จะขึ้นต้นด้วย . ถ้าเรียกใช้ id จะใช้ properties name ว่า id ส่วนเรียกใช้ class จะใช้ properties name ว่า class

สิ่งที่แตกต่างกัน คือ id จะเรียกใช้ครั้งเดียว แต่ class เรียกใช้ได้หลายครั้ง ถ้าวางแผนอย่างใจเย็นก็จะใช้ประโยชน์จาก css ได้อย่างเต็มที่ มีตัวอย่างที่ css_sample.htm และ การทำเมนู Responsive แบบ Top Nav หากจะทดสอบการปรับแต่ง css ทำได้ที่ w3schools.com

CSS คือ ภาษาคอมพิวเตอร์สำหรับกำหนดรูปแบบในเอกสาร HTML เรียกว่า สไตล์ชีต ที่ใช้กำหนดรูปแบบ สีอักษร สีพื้น ตัวอักษร การจัดวาง ระยะห่าง เส้นขอบ เป็นต้น มีรูปแบบ Syntax เฉพาะตัว ได้รับการกำหนดมาตรฐานโดย W3C การใช้ CSS มี 3 แบบ คือ Inline, Internal และ External CS จากตัวอย่างในรหัสต้นฉบับ แฟ้ม joom.htm ที่เป็นอัลบั้มแบบ static ถูกทำเครื่องหมายไว้ 6 จุด เพื่อใช้ชี้ให้เห็นในสิ่งที่น่าสนใจ ดังนี้ 1) แฟ้มเก็บ css ที่เก็บไว้ภายนอก แต่อยู่ในเครื่องบริการของตนเอง ทำให้เว็บเพจอื่นโหลดไปใช้ได้ นำเข้าได้ด้วย link tag 2) เขียน css ไว้ในเว็บเพจ และเรียกใช้ได้เฉพาะในเว็บเพจนั้น เขียนอยู่ใน style tag 3) ใน style tag สามารถกำหนด ขนาด media สำหรับเรียกใช้ css แต่ละชุดได้ เช่น mobile, desktop, notebook ก็จะแสดงผลแตกต่างกันไปตามขนาดหน้าจอ 4) มี css ที่ถูกพัฒนาให้ใช้ร่วมกับ Pure Javascript ที่ทำให้แสดงผลบนเว็บเพจแบบ dynamic และถูกใช้อย่างแพร่หลาย สามารถเรียกใช้ผ่านเครื่องบริการ CDN (Content Delivery Network) ได้ฟรี 5) การประกาศ css แบบ in-line ทำให้มีผลทันทีใน tag นั้น เช่น ประกาศบน div ใด ก็จะมีผลเฉพาะใน div นั้น หากอยู่นอกเหนือขอบเขต ก็จะไม่มีผล การประกาศใช้ที่จุดใด จึงต้องคำนึงถึงขอบเขตของการนำไปใช้ 6) การประกาศ css มักอยู่ในรูปของ class แล้ว tag ต่าง ๆ สามารถเรียกใช้ class ได้ และยังเรียกใช้หลาย class พร้อมกันได้ ซึ่งการตรวจสอบค่า css ในระหว่างแสดงผลบน browser เช่น chrome สามารถกด F12 แล้วใช้ Developer Tools เข้าไปตรวจสอบ หรือทดสอบแก้ไข แล้วการแสดงผลจะเปลี่ยนไปทันที ทำให้กลับไปแก้ไขโค้ดทำได้ง่ายขึ้น

จ๋อมเว็บเพจ (Joom webpage)

https://www.thaiall.com/java/indexo.html

React native + Android studio : SDK Location + Run APK

รา build app เพื่อให้ได้แฟ้ม .apk ที่พัฒนาขึ้นด้วย React native ร่วมกับ Android SDK ซึ่งสามารถส่งออกผลงานได้หลายวิธี เมื่อได้แฟ้ม .apk มาแล้ว นำไปใช้บนอุปกรณ์ หรือ emulator ได้อีกหลายวิธี ซึ่งวิธีหนึ่งที่น่าสนใจ คือ upload แฟ้ม .apk ขึ้นไปทำงานบน เว็บบราวเซอร์ (Run APK Online in Browser) ผ่านบริการของ appetize.io หรือ ApkOnline Chrome extension (ส่วน testobject.com และ Manymo.com ประกาศยุติแล้ว) ซึ่งตัวอย่างนี้ เลือกใช้บริการที่ appetize.io เมื่อสมัคร และกรอกอีเมล ระบบจะส่งลิงค์ register ไปให้ทางอีเมล หลังจากนั้นจะพบลิงค์เข้าแอพแบบ online ในอีเมล หัวข้อ “Your links are ready!” มีข้อความว่า Your app is ready to go at https://appetize.io/app/g7..ym หรือ sign in เข้า dashboard เลือก ชื่อโปรเจคของเรา (myproject) มีตัวเลือก view , embed , manage , .. หากเลือก view ก็จะเปิด emulator แบบ online มาให้ใช้งาน ถ้าต้องการใช้บริการมากกว่านี้ หรือมีข้อจำกัดที่ลดลง เลือกจ่ายค่าบริการได้ ซึ่งหน้าตาแอพบนเว็บไซต์ เหมือนที่พบบน emulator โดยเงื่อนไขให้บริการแบบ Trail มีระยะเวลาหนึ่งเดือน หรือจำกัดจำนวน มีรายละเอียดดังนี้ Current plan: Trial. Period usage: 0 sessions, 0 minutes from Aug 1, 2021 12:00:00 AM to Sep 1, 2021 12:00:00 AM UTC. You are limited to 1 concurrent user and 100 minutes of streaming per month.

Android Studio
 Menu bar, Tools, SDK Manager, Android SDK Location: C:\Users\burin\AppData\Local\Android\Sdk
 Menu bar, Tools, SDK Manager, Android SDK, SDK Platforms, Check : Android 9.0 (Pie) API Level 28
 Menu bar, Tools, SDK Manager, Android SDK, SDK Tools,
 Check : Intel x86 Emulator Accelerator (HAXM installer) - Installed
 Bios : VT-x Virtualization must be enabled in Bios ( VT-x )
 C:> sysdm.cpl
 ANDROID_SDK_ROOT=C:\Users\burin\AppData\Local\Android\Sdk
 อ่านเพิ่ม https://developer.android.com/studio/run/emulator-commandline
 dir C:\Users\burin.android\avd พบ folder : Nexus_5X_API_24.avd
 C:\Users\burin\AppData\Local\Android\Sdk\emulator> emulator @Nexus_5X_API_24
 C:> react-native init myproject
 C:\myproject> gradlew assembleRelease
 dir E:\myproject\android\app\build\outputs\apk\release\app-release.apk - 31 MB
 dir E:\myproject\android\app\build\outputs\apk\debug\app-debug.apk - 44 MB

การติดตั้งหรืออัพเดทรุ่นของ node.js

การติดตั้ง node.js เพื่อใช้คำสั่ง npm (Node Package Manager) เริ่มจากดาวน์โหลด node-v…-x64.msi สำหรับ windows จาก https://nodejs.org/en/ พบโปรแกรมใน C:\Program Files\nodejs\ หลังติดตั้งตรวจสอบรุ่นด้วย C:\> npm -v (16.7.0)

มื่อเวลาผ่านไป พบว่า node.js ได้รับการพัฒนาจนมีรุ่นใหม่ และรุ่นเก่าใช้ติดตั้ง package ใหม่ไม่ได้ จึงต้องติดตั้งโปรแกรม nvm โดยดาวน์โหลด nvm-setup.exe สำหรับ windows มาใช้งาน เพื่อใช้จัดการรุ่นของ node.js ทำให้เราสามารถติดตั้ง node.js ได้หลายรุ่น และเลือกใช้รุ่นที่ต้องการได้ เช่น C:\> nvm use 16.7.0 เป็นต้น ดังนั้นหลังติดตั้ง node.js แล้วจะได้ node , npm และ npx ไว้ใช้งาน แต่ยังไม่มี nvm จึงต้องติดตั้งเพิ่ม เพราะเมื่อเวลาผ่านไป ก็จะต้องติดตั้ง node.js รุ่นใหม่ แม้ node.js รุ่นเก่าจะเป็น LTS (Long Term Support) version แต่มี package เสริมจำนวนมากที่ถูกพัฒนาเพิ่ม และแจ้งว่าไม่เข้ากันกับ package รุ่นเก่า ที่เป็น deprecated ไปแล้ว และไม่สนับสนุน package เหล่านั้นอีกต่อไป และ nvm นี้เองที่ช่วยสลับรุ่นของ node.js ทำให้สามารถนำ project เก่ามาแก้ไข โดยไม่ต้องปรับแก้ code ตามการพัฒนาของ node.js ในแต่ละรุ่น

 ตรวจรุ่น https://nodejs.org/download/release/latest/
 ตรวจรุ่น https://github.com/coreybutler/nvm-windows/releases
 nvm-setup.zip (สั่ง nvm-setup.exe ได้ C:\Users\ACER\AppData\Roaming\nvm)
 nvm -v (1.1.7)
 npm cache verify (ตรวจสอบ cache)
 npm cache clean -f (ถ้าติดตั้ง/สั่งงานไม่สำเร็จ ข้อมูลอาจค้าง ถ้าเจอปัญหาลองไปล้าง cache)
 nvm list available (แสดง version ทั้งหมดที่ติดตั้งได้)
 nvm install 16.7.0 (ติดตั้ง node.js รุ่นที่กำหนด)
 node -v (เก่า v10.15.3)
 npm -version (เก่า 6.4.1) 
 nvm list (แสดง version ที่ถูกติดตั้งไว้แล้ว)
 nvm use 16.7.0
 node -v (v16.7.0)
 npm -version (7.20.3)

ตัวอย่างโค้ดที่ธนาคารแห่งประเทศไทยให้มาเพื่อใช้เชื่อมต่อ API

 var request = require("request");
 var options = { method: 'GET',
   url: 'https://apigw1.bot.or.th/bot/public/Stat-SpotRate/v2/SPOTRATE/',
   qs: { start_period: '2021-06-01',end_period: '2021-06-12' },
   headers: { accept: 'application/json', 'x-ibm-client-id': 'xxx … xxx' } };
 request(options, function (error, response, body) {
   if (error) return console.error('Failed: %s', error.message);
   console.log('Success: ', body);
 });

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/

การจัดการเรียนรู้เชิงรุกในสาระการเรียนรู้การศึกษาค้นคว้าด้วยตนเอง

บทความวิจัย
รุ่งภรณ์ กล้ายประยงค์. (2563). การจัดการเรียนรู้เชิงรุกในสาระการเรียนรู้การศึกษาค้นคว้าด้วยตนเอง. วารสารสถาบันวิจัยญาณสังวร, 11(1), 104 – 113.

บทคัดย่อ
การจัดการเรียนรู้เชิงรุกเป็นกระบวนการจัดการเรียนรู้ที่ผู้เรียนจะต้องมีส่วนร่วมในกิจกรรม พัฒนากระบวนการคิด อภิปรายแลกเปลี่ยนความคิดเห็นร่วมกัน จนเกิดเป็นองค์ความรู้ของตนเอง ซึ่งสอดคล้องกับกระบวนการจัดการเรียนรู้แบบบันได 5 ขั้นของการพัฒนาผู้เรียนสู่มาตรฐานสากลในสาระการเรียนรู้การศึกษาค้นคว้าด้วยตนเอง วัตถุประสงค์ของบทความนี้เขียนขึ้นเพื่อนำเสนอเกี่ยวกับคำจำกัดความ แนวคิด และลักษณะของการเรียนรู้เชิงรุก รูปแบบการจัดการเรียนรู้และบทบาทของผู้สอนในการจัดการเรียนรู้การศึกษาค้นคว้าด้วยตนเองด้วยการเรียนรู้เชิงรุก รวมถึงตัวอย่างการจัดการเรียนรู้การศึกษาค้นคว้าด้วยตนเองด้วยการเรียนรู้เชิงรุก

บันได 5 ขั้นของการพัฒนาผู้เรียนสู่มาตรฐานสากล
(Five Steps for Student Development)
ได้แก่ 1) การตั้งคำถาม/สมมติฐาน (Hypothesis Formulation) เป็นการฝึกให้ผู้เรียนรู้จักคิด สังเกต ตั้งคำถามอย่างมีเหตุผลและสร้างสรรค์ ซึ่งจะส่งเสริมให้ผู้เรียนเกิดการเรียนรู้ในการตั้งคำถาม (Learning to Question) 2) การสืบค้นความรู้และสารสนเทศ (Searching for Information) เป็นการแสวงหาความรู้ ข้อมูล และสารสนเทศ จากแหล่งเรียนรู้อย่างหลากหลาย เช่น ห้องสมุด อินเทอร์เน็ต หรือจากการฝึกปฏิบัติ ทดลอง เป็นต้น ซึ่งจะส่งเสริมให้เกิดการเรียนรู้ในการแสวงหาความรู้ (Learning to Search) 3) การสร้างองค์ความรู้ (Knowledge Formation) เป็นการฝึกให้ผู้เรียนนำความรู้และสารสนเทศที่ได้จาการแสวงหาความรู้ มาถกแถลง อภิปราย เพื่อนำไปสู่การสรุปและสร้างองค์ความรู้ (Learning to Construct) 4) การสื่อสารและนำเสนออย่างมีประสิทธิภาพ (Effective Communication) เป็นการฝึกให้ผู้เรียนนำความรู้ที่ได้มาสื่อสารอย่างมีประสิทธิภาพ ซึ่งจะส่งเสริมให้ผู้เรียนเกิดการเรียนรู้และมีทักษะในการสื่อสาร (Learning to Communicate) 5) การบริการสังคมและจิตสาธารณะ (Public Service) เป็นการนำความรู้สู่การปฏิบัติ ซึ่งผู้เรียนจะต้องเชื่อมโยงความรู้ไปสู่การทำประโยชน์ให้กับสังคมและชุมชนรอบตัวตามวุฒิภาวะของผู้เรียน และจะส่งผลให้ผู้เรียนมีจิตสาธารณะและบริการสังคม (Learning to Serve) (สำนักบริหารงานมัธยมศึกษาตอนปลาย, 2555)

ลักษณะของการเรียนรู้เชิงรุก
กระบวนการจัดการเรียนรู้เชิงรุก ผู้เรียนจะถูกเปลี่ยนบทบาทจากผู้รับความรู้ ไปสู่การมีส่วนร่วมในการสร้างองค์ความรู้ (Fedler & Brent, 1996) โดยผู้เรียนต้องมีการปฏิบัติมากกว่าการฟังพวกเขาต้องมีการอ่าน เขียน อภิปราย หรือร่วมกันแก้ไขปัญหา สิ่งสำคัญที่สุดคือการมีส่วนร่วมของผู้เรียน ต้องมีส่วนร่วมในกระบวนการคิดขั้นสูง เช่น การวิเคราะห์ การสังเคราะห์ และการประเมินผล (Chickering & Gamson, 1987 cited in Bonwell & Eison, 1991) จนเกิดเป็นองค์ความรู้ของตนเอง ซึ่งจะมีส่วนสำคัญที่ส่งผลต่อความคงทนในการเก็บรักษาความรู้เมื่อเวลาผ่านไป (Berry, 2008) ผู้สอนจึงมีส่วนสำคัญต่อการกำหนดทิศทางอย่างมีนัย รวมถึงโครงสร้างของการจัดกระบวนการเรียนรู้ (Mayer, 2004; Kirschner & Clark, 2006) อีกทั้งการจัดกิจกรรมและสภาพแวดล้อมที่จะช่วยกระตุ้นให้ผู้เรียนมีส่วนร่วมในการจัดกระทำกับข้อมูล เนื้อหา หรือประสบการณ์ต่าง ๆ ผ่านการลงมือปฏิบัติ ร่วมกับผู้เรียนคนอื่น และจะต้องสร้างความหมายให้กับสิ่งนั้น ๆ จนเกิดเป็นองค์ความรู้ของตนเอง ซึ่งเป็นกระบวนการปฏิสัมพันธ์ภายในสมอง และกระบวนการปฏิสัมพันธ์ทางสังคมระหว่างผู้เรียนกับผู้เรียน จึงถือว่าเป็นกระบวนการทั้งทางด้านสติปัญญาและสังคมควบคู่กันไป

https://so04.tci-thaijo.org/index.php/yri/article/download/244035/166005/

http://www.edu.ru.ac.th/index.php/30-2014-06-07-08-03-10/385-2020-06-01-13-04-44

บันทึกคลิปวิดีโอ สลับ scene บน fb live

การบันทึกคลิปวิดีโอด้วย Facebook live แล้ว Download มาเป็น .mp4 แล้ว Upload ไปยัง youtube.com โดยใช้เนื้อหาเรื่อง หมอพร้อม และ 7 ข้อเตรียมตัวก่อนฉีดวัคซีน ซึ่งการสลับ scene ใช้การกด alt-tab ส่วนกล้องวิดีโอใช้ Extension / Apps บน Chrome ชื่อ Camera เลือกใช้ได้ทั้ง 2 apps คือ 1) turn camera on 2) chromeos-cameraapp ใน Facebook live จะแชร์แบบ Share : Your Entire Screen และเตรียม Scene ให้เลือกใช้สลับไปมาตามเนื้อหา ดังนี้ 1) Webpage 2) Camera 3) Image บนโปรแกรม Irfan View ซึ่งการบันทึกครั้งนี้ ผลลัพธ์ดูลื่นไหล และเป็นธรรมชาติระหว่างสลับ Scene ในระดับหนึ่ง ซึ่งข้อดี คือ ไม่ต้องติดตั้งโปรแกรมสำหรับถ่ายทอดที่ควบคุมซีน หรือตัดต่อแยกออกมาจากการบันทึกอีกครั้ง

อ่านมังงะ เป็นอาชีพ

เล่าเรื่องนิสิต
นายหนึ่ง เล่าให้ อ.นุ้ย ฟัง เรื่องอ่านมังงะ ผมก็เก็บมาเล่าต่อ หากสนใจช่องของ นายหนึ่ง เชิญที่
https://www.youtube.com/channel/UCFA9FAhdF4UTPZlqaQHFD7Q
ส่วนเรื่องเล่านั้น ผมเล่าไว้ที่
http://www.thaiall.com/handbill/
ให้น้อง ๆ ได้ทราบว่า อาชีพ ก็มีหลายแนว

7 พ.ค.64 วันนี้ อ.นุ้ย สัมภาษณ์เจ้าของช่อง “Moon Manga Channel” ที่เชื่อมช่องเข้ากับแฟนเพจ “เพจอ่านมังงะ” ทำให้ทราบว่าเจ้าของช่องชื่อ “หนึ่ง” สำเร็จการศึกษาด้านคอมพิวเตอร์ แต่ให้ความสนใจกับการอ่านมังงะ หลังทำงานในชุมชนและสิ้นสุด โครงการ 1 ตำบล 1 กลุ่มเกษตรทฤษฎีใหม่ ก็ได้ยึดเริ่มอาชีพ Youtuber ที่ยึดเป็นอาชีพหลักมาได้ 6 เดือนแล้ว โดยเริ่มต้นจากการซื้อเครื่องคอมพิวเตอร์มาทำตามความฝัน ที่เคยเล่าให้ อ.นง ฟังสมัยที่เป็นนิสิต ปัจจุบันได้ทำในสิ่งที่ชอบ นั่นคือ อ่านมังงะ เป็น Youtuber งานนี้เป็นเจ้านายตนเอง เลือกเวลาทำงานได้ และไม่ต้องเป็นลูกจ้างใคร จากการสำรวจช่องนี้ ผ่าน noxinfluencer.com พบข้อมูลการวิเคราะห์ช่อง Moon Manga Channel พบว่า ข้อมูล ณ วันนี้ มีรายได้ไม่ต่ำกว่าสองหมื่นต่อเดือน มีคลิ๊ปทั้งสิ้น 28 วิดีโอ มียอดวิว 7 วันที่แล้วประมาณ 40,746 view มีสมาชิก 3.19 หมื่นคน มีจำนวนผู้เข้าชมทั้งหมด 1.62 ล้านคน เรื่องที่ปักหมุดไว้ล่าสุด คือ มังงะ : นักล่าพลังงาน ตอนที่ 1-104 (จบ SS1) 6 ชม. ครึ่ง แล้วขอเชิญชวนทุกท่านไปติดตามฟังเสียงหล่อ ๆ ของหนุ่มคนนี้กันครับ

การตรวจสอบเครื่องมือ

นิสิตมหาบัณฑิตสายสังคมศาสตร์ ที่ต้องการหาคำตอบด้วยกระบวนการวิจัย เมื่อออกแบบเครื่องมือแล้ว มักจะต้องนำเครื่องมือไปทดสอบความเที่ยงตรง (Validity) และความน่าเชื่อถือ (Reliability) ของเครื่องมือ ก่อนที่จะนำไปใช้สอบถามกับกลุ่มตัวอย่างที่คัดเลือกไว้ ซึ่งความเที่ยงตรงนั้นจะต้องทดสอบโดยผู้เชี่ยวชาญเฉพาะด้าน ส่วนความน่าเชื่อถือนั้นจะทดสอบกับกลุ่มตัวอย่างไม่ต่ำกว่า 30 ชุด
1. การตรวจสอบหรือทดสอบคุณภาพของเครื่องมือ
ความตรงของเนื้อหา (Content Validity) คือ การทดสอบนำแบบสอบถามที่สร้างขึ้น ให้ผู้เชี่ยวชาญที่มีความเชี่ยวชาญด้านที่เกี่ยวข้อง ช่วยตรวจสอบประเมินความถูกต้อง ความชัดเจน ความสอดคล้องของเนื้อหาที่ต้องการศึกษา จากนั้นนำมาปรับปรุงแก้ไขเพิ่มเติมในส่วนของเนื้อหา โดยหาค่าสัมประสิทธิ์ความสอดคล้อง (Index of Item-Objective Congruence, IOC) มาจาก ผลรวมคะแนนจากผู้เชี่ยชาญทั้งหมด หารด้วย จำนวนผู้เชี่ยวชาญ ซึ่งเกณฑ์การให้คะแนนเป็น 3 ระดับ โดย 1+ คือเนื้อหาสอดคล้อง แล้ว -1 คือ เนื้อหาไม่สอดคล้อง และ 0 เมื่อไม่แน่ใจ สรุปคือค่า IOC ในระดับดี ที่สามารถนำไปวัดผลได้ จะต้องมีค่า IOC เกินกว่า 0.5 ขึ้นไป จึงจะถือว่าสอดคล้อง
2. การตรวจสอบหรือทดสอบความน่าเชื่อถือของเครื่องมือ
ความน่าเชื่อถือของเนื้อหา (Content Reliability) คือ การทดลองนำแบบสอบถามจำนวน 30 ชุด ไปใช้กับกลุ่มที่แยกออกมาจากกลุ่มตัวอย่างในการศึกษา ซึ่งค่าหนึ่งที่น่าสนใจ คือ ค่าสัมประสิทธิ์สหสัมพันธ์แอลฟาของครอนบัค (Cronbach’s alpha coefficient) สามารถใช้วัดความสอดคล้องภายใน (internal consistency) ที่สามารถหาความสอดคล้องและบ่งบอกมิติไปในทิศทางเดียวกันของข้อคำถามในชุดนั้น หากได้ค่าความเชื่อมั่นโดยรวมมีค่ามากกว่า 0.7 (ยิ่งเข้าใกล้ 1.0 ยิ่งมีความเชื่อมั่นสูง) นั่นหมายถึงสามารถนำแบบสอบถามมาใช้ในการเก็บข้อมูลจริงได้
การตรวจสอบคุณภาพด้านความเชื่อมั่น

  1. การสอบซ้ำ (Test-Retest Reliability)
  2. ความคงเส้นคงวาภายใน (Internal Consistency)
    2.1 การหาความเชื่อมั่นโดยใช้สูตรของคูเดอร์และริชาร์ดสัน (Kuder and Richardson)
    2.2 การหาความเชื่อมั่นใช้สูตรสัมประสิทธิ์อัลฟ่าของ ครอนบัค (Coefficient Alpha or Cronbach’s Alpha)
  3. การตรวจสอบคุณภาพด้านความเชื่อมั่นโดยอาศัยหลักของความเท่าเทียมกัน (Equivalence)
    (อ่านจาก บทที่ 7 : การตรวจสอบคุณภาพเครื่องมือการวิจัย ของ อ.พัชราภัณฑ์ ไชยสังข์ 503 402 Nursing Research และเอกสารของ ดร. ดนัย ปัตตพงศ์ เรื่อง การทดสอบความเชื่อมั่นด้วย Cronbach’s alpha)

ชวนอ่าน 2 บทความ
เรื่องแรก : การทดสอบความเที่ยงตรงและความเชื่อมั่นของแบบประเมินกลยุทธ์ในการรับมือกับความเครียดแบบสั้นฉบับภาษาไทย โดย ธนานันต์ นุ่มแสง และ ธนิตา ตันตระรุ่งโรจน์ ภาควิชาจิตเวชศาสตร์คณะแพทยศาสตร์โรงพยาบาลรามาธิบดีมหาวิทยาลัยมหิดล ใน วารสารสมาคมจิตแพทย์แห่งประเทศไทย 2561; 63(2): 189-198
เรื่องที่สอง : การตรวจสอบคุณภาพเครื่องมือวิจัย Validation of the Tests โดย อารยา องค์เอี่ยม และพงศ์ธารา วิจิตเวชไพศาล ภาควิชาวิสัญญีวิทยา คณะแพทยศาสตร์ศิริราชพยาบาล มหาวิทยาลัยมหิดล กรุงเทพ 10700 ประเทศไทย ใน วิสัญญีสาร 2561; 44(1): 36-42