การติดตั้งหรืออัพเดทรุ่นของ 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/

pingback and trackback

trackback
trackback

PingBack คืออะไร

ปิงแบล็ค (PingBack) คือ การเชื่อมโยงกลับไปยังบันทึกต้นฉบับ เกิดจากการเขียนลิงค์ในบันทึกที่อยู่ในบล็อก
ของนายบี แล้วระบบบล็อกของนายบี จะแจ้งกลับไปยังบล็อกต้นฉบับของนายเอให้รับทราบ
เมื่อนายเอได้รับข้อความในรูป comment ก็สามารถแก้ไข comment ดังกล่าวได้
แต่ไม่ส่งอะไรกลับไปยังบล็อกของนายบีอีก สรุปได้ 2 ส่วนคือ
1) วางลิงค์ในบันทึกก็จะเป็นการสร้างปิงแบล็คทันที บล็อกจะแจ้งกลับไปยังบล็อกของผู้ถูกอ้างอิงให้รับทราบ ถ้าบล็อกทั้งสองระบบสนับสนุนเทคนิกนี้
2) บันทึกที่มีปิงแบล็คจะส่งลิงค์ของบันทึกและบทคัดย่อกลับไปยังบันทึกต้นฉบับอัตโนมัติ และผู้ดูแลบล็อกต้นฉบับเลือก approve ให้เพิ่มเป็น comment ในบันทึกของตนเอง
เทคโนโลยีการสื่อสารของ pingbacks ใช้   XML-RPC  
       

TrackBack คืออะไร
แทร็กแบล็ค (TrackBack) คือ การเชื่อมโยงระหว่างบันทึกเรื่องเดียวกัน
ประเด็นตรงกัน อาจเขียนต่าง เพิ่ม แก้ไขจากที่มีอยู่หรือเหมือนกันก็ได้
โดยเชื่อมโยงข้อคิดเห็น (Comment) มาใช้ร่วมกันเป็นเครือข่าย สรุปได้ 3 ส่วนคือ
1) บล็อกที่เขียนบันทึกใหม่จะส่งการเชื่อมโยงและบทคัดย่อที่เรียกว่า Excerpt กลับไปให้บันทึกต้นฉบับ
2) เมื่อเพิ่มข้อคิดเห็นในบันทึกใหม่ ระบบจะส่งข้อคิดเห็นไปให้กับบันทึกต้นฉบับที่เป็น TrackBack อัตโนมัติ
3) บล็อกต้องสั่ง approve เพื่อส่งเข้าไปเป็น comment ในบันทึกต้นฉบับ
เทคโนโลยีการสื่อสารของ  trackbacks ใช้  HTTP POST

Link Back มี 3 เทคนิค คือ  
1)Refback  คือ การเขียน link ตามปกติ เมื่อคลิ๊กก็จะไปยังเว็บที่ถูก link แบบนี้ไม่ส่งอะไรให้ linked server
2)Trackback คือ การใส่ link เข้าเครื่องบริการ แล้วจะส่ง notification ไปยัง linked server
สิ่งที่อาจส่งไป คือ site name, post title, post excerpt และ post url
3)Pingback คือ การใส่ link เข้าเครื่องบริการ แล้วจะส่ง notification ไปยัง linked server
โดยใช้ XML-RPC มิได้ใช้  HTTP Post
สิ่งที่ส่งไป คือ linked post URL, Linking post URL

http://en.wikipedia.org/wiki/Linkback

http://blog.kudson.com/bimbim/2008/01/28/%E0%B8%9A%E0%B8%A5%E0%B9%87%E0%B8%AD%E0%B8%81-blog-%E0%B8%84%E0%B8%B7%E0%B8%AD%E0%B8%AD%E0%B8%B0%E0%B9%84%E0%B8%A3/

รายละเอียดดีมาก
http://www.optiniche.com/blog/117/wordpress-trackback-tutorial/

การส่งข้อความข้ามเครื่องผ่าน IP เขียนด้วย C# บน console application

listener เปิดรับ client ส่งข้อความlistener ได้รับ

ฟัง ดร.ถาวร ล่อกา พูดเรื่องงานวิจัยเชิงคุณภาพ (Quality Research)

https://www.facebook.com/ajarnburin/posts/2482414421772674

ทำให้นึกถึงเรื่อง เกิดขึ้น ตั้งอยู่ ดับไป
ช่วงนี้ ลองทำโปรแกรม 2 เซต คือ แต่ละเซตมี ตัวรับ กับตัวส่ง
ระหว่างเครื่องผ่าน ip เขียนด้วย C#

http://www.thaiall.com/csharp

เพราะนักศึกษาสนใจภาษานี้
เครื่องมือที่ใช้ทดสอบ มี 2 เซต คือเซต sharp develop และเซต VS
(แฟ้ม program.cs ใช้ร่วมกันได้ระหว่าง 2 tools นี้ ในกรณีนี้)
เพราะใช้ .net framework ทั้งคู่ คำสั่งที่ใช้ต่างกัน
คือ ตัวหนึ่งเปิดพอร์ตผ่าน TcpListener(ipaddr,8888);
อีกตัวใช้ new Socket(ipAddress, Stream, ProtocolType.Tcp);
เป้าหมายคือเปิดให้ listener รับฟังจาก client ได้ ก็ถือว่า ok แล้ว

ภาพประกอบมี 3 ภาพคือ
1. listener เปิดรับ
2. client ส่งข้อความ
3. listener ได้รับ

สรุปว่าเล่าเรื่อง Docker กับ Container

มีเรื่องที่อยากเล่าหลายเรื่องเมื่อ 22 ก.พ.62
แต่ละวันมีเรื่องอยากเล่าเยอะ แต่ก็ไม่ได้เล่า เพราะมีเรื่องมากไป
เช้ามา ดร.นิรันดร์ ผู้ก่อตั้งมหาวิทยาลัย มาเป็นวิทยากร
บรรยายให้ศิษย์ของ อ.ธวัชชัย ฟัง เรื่องการเรียน การใช้ชีวิต
สายหน่อย อ.แนน หัวหน้าก็ไปร่วมต้อนรับ กรรมการตรวจคณะพยาบาล
ได้ข้อเสนอแนะกลับมาให้ผมว่า วิชาสื่อต้องปรับคำอธิบายรายวิชาและแผน
ต้องเพิ่มสมรรถนะดิจิทัล ตามที่ประกาศว่า ป.ตรี ในไทยต้องเพิ่มใน มคอ.
ข้างห้องมี ม.ฟุกุอิ มาประชุมวิชาการ อ.อดิศักดิ์ กับ อ.แม็ค
ก็ทำกิจกรรมกันตลอดหลายวันที่ผ่านมา ข้าง ๆ ห้องเลย
บ่ายมาก็ปรับข้อสอบตามข้อเสนอแนะของพี่นาย และอ.นุ้ยได้เม้นไว้
พอว่างก็นั่งส่องผลงานนักศึกษา 6 กลุ่ม บวกนิเทศอีกกลุ่ม เป็น 7 กลุ่ม
ผลงานปีหนึ่งทั้งหมดที่ไปท่องเที่ยว ส่ง #เจอนี่ที่ลำปาง
ส่งเสริมการท่องเที่ยวจังหวัดลำปาง
อีกเรื่องที่ชื่นใจคือใช้กระเป๋าตังจริง จากที่ไม่ค่อยอยากใช้
ภาษาอังกฤษเรียก True wallet จ่ายค่าค้างชำระ True move H
เพราะเด็กที่บ้านโดนตัดเน็ต ก็ไปเติมเงินเข้ากระเป๋าที่ 7-11
พอกดจ่ายค่าโทร ก็ขึ้นยอดมา 600 กว่าบาท จ่ายง่ายเลย
ช่วงเช้า หัวหน้าทักว่า รูปเพื่อนหายไป 1 รูป ก็หาเวลาอัพรูปจนเสร็จไปอีกเรื่อง
ระบบนี้ใช้ joomla
นี่ก็ฝันว่าจะหาเวลาเข้า home room เพื่อฟิตนิสิตให้เป็น dev อยู่
จะได้กระจายแทรกซึม ฝังตัวตามหน่วยงาน
เย็นล่ะจะออกงาน เห็น อ.กร เล่าเรื่องนักศึกษาในกลุ่มเฟส
ผมก็อยากชวนเค้าเล่าเรื่อง 5W1H
แล้วนึกถึงละครภาษาอังกฤษของ อ.เก๋ ที่แสดงไปเมื่อศุกร์ที่ 15
ซึ่งน่าจะเล่าเป็นเรื่องย่อได้สนุก ๆ อยากชวนนิสิตเขียน blog กันอีก
ย้อนไปเริ่มเช้าวันนี้ ดร.นิรันดร์ ท่านชวนดูภาพเก่า ๆ เมื่อ 30 ปีที่แล้ว
ตอนผมอายุสัก 18 หยกหยก
นั่นก็นึกเรื่องที่จะเล่าตามภาพได้อีกเยอะเลย
กลับบ้าน เย็นล่ะมาดูคนรักบ้านเมืองในช่องไทยรัฐ
เค้ามาดีเบสกันพูดเรื่องเสียสละเพื่อประเทศ
เดี๋ยวนี้คนเสียสละเพื่อประเทศ โดยไม่คำนึงถึงประโยชน์ส่วนตัวเยอะมาก ๆ
ลำปางมีคนเสียสละอุทิศกายใจ เป็นตัวแทนดูแลชาติบ้างเมืองของผม
ใน 4 เขตลำปางมีถึง 117 คน มีเพื่อน ครู อาจารย์ของผมสมัครหลายท่าน
ตกเย็นเจ้าอาวาสนัดหมายไปทำ Big Cleaning Day วันศุกร์ที่ 1 (ที่จะถึง)
ย้อนนึกถึงวันพุธที่ 20 มีแผ่นดินไหวที่ลำปาง แต่ผมก็ไม่ได้เล่า
ตอนเค้าไหวกันหนัก ๆ
ผมติดแหงกอยู่ที่ท่า docker ไม่ได้ขยับตาออกจากจอหลายชั่วโมง
อะไรสั่นไหวก็ไม่รู้ได้ครับ เหมือนตัวถูกหวันอยู่ในกล่อง container
ปล. สรุปว่าเล่าเรื่อง docker ครับ
http://region3.prd.go.th/ct/news/viewnews.php?ID=190209134522

docker
docker

เล่าเรื่อง ท่าเรื่อ (Docker) ที่มีคอนเทนเนอร์บรรจุสินค้า (Container)
แต่ก็ไม่ได้ชวนออกทะเลไปไหนนะครับ
เรื่องมีอยู่ว่า เกือบสัปดาห์ ที่สร้าง image แล้ว push ขึ้น docker 2 ตัว
คือ php กับ mariadb โดยมี database และ script เป็นของ joomla
สลับกันทดสอบโดยใช้ docker toolbox บน Win 10 Home
ทำงานกับ VBox และ docker บน Win 10 Pro ทำกับ Hyper-V
เป็น Container ที่สร้างเสร็จ version 1
จึงยังมีหลายประเด็นที่ต้องปรับแบบ manual
ก่อนที่ server จะทำงานได้ตามเป้าหมาย
สุดท้ายก็ได้เห็นหน้าตาของ joomla ทำงานได้ปกติ
พร้อม extension 2 ตัว
คือ SP Easy Image Gallery และ SP Page Builder
ปัญหาคือผมไม่ได้ใช้งาน Volume ตามแนวคิดที่ Docker ให้ไว้
และไม่ใช้ image สำเร็จรูปที่เค้าเตรียมมาให้ อยากเชื่อ Container เอง
#เล่าสู่กันฟัง 62-043

โพสต์เป็นซี่รี่ใน fb ปิดปี 1 ไปที่ 70 โพสต์ วันนี้นับ 1 กันใหม่

13 fonts ราชการ
13 fonts ราชการ

เริ่มพุทธศักราชใหม่ 2562 ก็เริ่มเปลี่ยนแปลงนู่นนี่นั่น
[มองย้อน]
อดีตไม่ไกลนัก ปีพ.ศ. 2561
นั่งเขียนโพสต์สั้น ๆ แบบมี series นับได้ 70 โพสต์
เริ่มโพสต์แรก Northwind Database เมื่อ 19 ส.ค.61
ด้วย tag #เล่าสู่กันฟัง 61-001
โพสต์สุดท้ายของปี คือ วันที่ 31 ธ.ค.61
เป็นโพสต์ที่ 070 เรื่อง do กับ like
มีเพื่อนกดไลท์จำนวน 3 คน (ถือว่าใช้ได้)
https://web.facebook.com/thaiall/photos/a.10152906385302272/10157059279497272/
[และแล้ว]
ปัจจุบัน คือ วันนี้ 1 ม.ค.62 เปิดปีพ.ศ.ใหม่
นั่งเทียบ 13 ฟอนต์ราชการไทย
พบว่า ผลการเปรียบเทียบ คงทำให้ต้องค่อย ๆ ปรับเว็บเพจทั้งหมด
เป็น TH KodChaSal2 เพราะ TH ChaKraPetch ขนาดเล็กกว่านิดหน่อย
พร้อมเพิ่มขนาดเป็น 20px ให้หมด
แสดงผลการเทียบขนาดไว้ที่ /html5 กับ /web2
http://www.thaiall.com/html5
#เล่าสู่กันฟัง 62-001

 

android app : kickweb server

ทดสอบ ติดตั้ง android app : kickweb server
บริการ lighttpd + php + mysql + phpmyadmin
/mnt/sdcard/htdocs เป็น document_root
ตัวโทรศัพท์ปล่อย hotspot มี ip =192.168.43.1
ส่วนเครื่องคอมพิวเตอร์ติดต่อเข้าไป
ได้ ip=192.168.43.108
ทดสอบ http:// .. :8080/?phpinfo ก็ใช้ได้
หรือ phpmyadmin http:// .. :10000/
โดย user:root pass:blank
ทดสอบสร้าง db, tb, insert แล้ว drop db ก็ได้

Features
– Built-in PHPMyAdmin ( phpMyAdmin 4.1.10)
– PHP 5.5.9
– MySQL 5.1.62
– Lighttpd 1.4.34
– MSMTP 1.4.31
– Nginx 1.5.1

 

phpmyadmin on kickweb
phpmyadmin on kickweb

phpinfo on kickweb server
phpinfo on kickweb server

การดู IP address ของ smart phone ผ่าน app : terminal
$ netcfg
$ netstat

 

อ่าน text file หลายแฟ้ม ทั้ง utf-8 และ tis-620 ก็ต้องแปลงกัน

check utf-8 and convert
check utf-8 and convert

เดิมอ่านข้อมูล text file แบบ tis-620 แล้ววันหนึ่ง ก็มีแฟ้มข้อมูล (Data) เป็น utf-8 ที่ต้องใช้ script สำหรับอ่าน utf-8 แล้วก็ต้องกำหนด meta content-type ให้ charset เป็น utf-8

แต่หากต้องการอ่านแฟ้ม utf-8 มาแสดงใน tis-620 ก็ต้องมีการ convert ข้อมูลกันหน่อย เดิมทีนั้น จะอ่านข้อมูลจาก text file แบบ tis-620 ลงอาร์เรย์ แล้วใช้งาน ก็ต้องปรับให้รองรับแฟ้มทั้งแบบ tis-620 และ utf-8

code เดิม คือ

<meta http-equiv=”content-type”
content=”text/html;charset=tis-620″ />
<?php
$f=@file(“data.txt”);
echo $f[0];
?>

code ใหม่ คือ

<meta http-equiv=”content-type”
content=”text/html;charset=tis-620″ />
<?php
$f=@file(“data.txt”);
if (mb_check_encoding(file_get_contents(“data.txt”), ‘UTF-8’)) {
$f[0] = iconv(“utf-8″,”tis-620”,$f[0]);
}
echo $f[0];
?>

แฟ้มที่เป็น utf-8 คือ http://www.thaiall.com/checklist.php

การปล่อยให้ editor สร้าง backup file อาจมีปัญหาตามมา ต้องเลือกเอง อย่าให้ค่าปริยายเลือกให้

editplus backup
editplus backup

โปรแกรมสำหรับจัดการรหัสต้นฉบับ มีมากมาย
เช่น editplus, notepad++ , atom , sublime หรือ textpad
ที่ดีมักมีตัวเลือกสร้าง backup file หรือ .bak
สิ่งที่ต้องระวัง คือ การอัพโหลดทั้ง folder หรือทำงานอัตโนมัติ
อาจพาแฟ้ม .bak และแฟ้มอื่นที่ไม่เหมาะไม่ควร
พากับขึ้นอยู่ในเครื่องบริการอย่างสงบ
และเปิดให้ชาวโลก รวมถึง google.com ได้เข้าถึง
ดังนั้น ไม่ควร หรือห้ามอัพโหลดเหมาเข่ง
หรือ ยกเลิกการสร้าง .bak อัตโนมัติ

ติดตั้ง Lubuntu บน Virtualbox บน Win10

Lubuntu คือ ระบบปฏิบัติการที่ทำงานเร็ว ขนาดเล็ก ใช้ทรัพยากรน้อยในการติดตั้ง ใช้งานง่าย พัฒนาต่อยอดมาจาก Ubuntu.

virtualbox
virtualbox

Lubuntu is a fast and lightweight operating system with a clean and easy-to-use user interface. The core of the system is based on Linux and Ubuntu. Lubuntu uses the minimal desktop LXDE, and a selection of light applications. Because of this, Lubuntu has very low hardware requirements. Lubuntu was founded by Mario Behling and has been grown for many years by Julien Lavergne. Please join us and install Lubuntu on your computer.

Lubuntu : https://lubuntu.net/downloads/
เลือก lubuntu-17.10-desktop-amd64.iso ขนาด 925 MB
Blog : 4 ลีนุกซ์ดิสโทรสุดเจ๋งสำหรับฮาร์ดแวร์เก่า

lubuntu accessories
lubuntu accessories

Install Lubuntu in Virtualbox (Host key = Right Ctrl Button)

1. Create
Name: lubuntu1710, Type: linux, Version: Ubuntu (64bit)
2. Ram : 1024MB (Min 512MB)
3. Harddisk : Create Virtual Harddisk , 
.vdi = Virtualbox Disk Image , Dynamic
4. Image size : 10GB
C:\Users\ACER\VirtualBox VMs\lubuntu1710.vdi
5. click : IDE ทุติยภูมิหลัก จาก หน่วยเก็บข้อมูล
เลือกดิสก์อิมเมจ , lubuntu-17.10.1-desktop-amd64.iso
6. Start : lubuntu1710
7. ติดตั้ง lubuntu (Try Lubuntu without installing)
- English
- Install Lubuntu 
- English, Continue
- Uncheck anything for download, Continue
- Erase disk and install Lubuntu, Install Now
- Write the changes to disks?, Continue
Partition #1 of SCSI3 (0,0,0) (sda) as ext4 : formatted
- Where are you? : Bangkok, Continue
- Keyboard layout : English(US), Continue
- Your name : lubuntu
Computer's name : lubuntu-VirtualBox
Pica a username : lubuntu
Choose a password : lubuntu	
Confirm your password : lubuntu
and Continue
- Wait .... installing
- Restart Now, Click

การใช้งาน Lubuntu
1. มุมล่างซ้ายมีปุ่ม Start คล้าย Windows
Click, Internet, Firefox Web Browser

2. มีโปรแกรมให้ใช้งานมากมาย
Xfburn
Mpv Media Player
guvcview
Audacious
GNOME MPV
PulseAudio Volume Control
AbiWord
Gnumeric
Firefox Web Browser
Pidgin Internet Messenger
Sylpheed
Transmission
Document Viewer
mtPaint Graphic Editor
Simple Scan
GNOME Disks
PCManFM
Leafpad
Xpad
และ LXTerminal เพื่อเข้า Shell prompt

3. เปิด LXTerminal ใน System Tools
แล้วพิมพ์ $sudo ls
กรอก password ว่า lubuntu
เป็นการเริ่มต้นกับ Shell prompt

4. env | grep SHELL
พบ SHELL=/bin/bash

http://www.thaiall.com/os/virtualbox.htm