เข้าไปที่เว็บ www.mixamo.com
วันเสาร์ที่ 28 พฤษภาคม พ.ศ. 2565
วันจันทร์ที่ 21 มีนาคม พ.ศ. 2565
(Shortcut) TAR File
# TAR Command Line
### 1 Create Archive File / Directory / Zip ###
# -c create
# -z gzip, gunzip, ungzip
# -f file
tar -cf archive.tar file1 file2
tar -cf archive.tar dir/
tar -czf archive.tar.gz dir/
### 2 Show Detail in Archive File ###
# -t list
# -v verbose
# -f file
tar -tf archive.tar
tar -tvf archive.tar
### 3 Extract Archive File ###
# -x extract
# -z gzip, gunzip, ungzip
# -v verbose
# -f file
tar -xvf archive.tar
tar -xzvf archive.tar.gz
วันศุกร์ที่ 18 มีนาคม พ.ศ. 2565
(Shortcut) Install MariaDB Server 10.3 on Ubuntu 20.04
# update package and install
sudo apt update
sudo apt install mariadb-server mariadb-client
sudo mysql_secure_installation
sudo mysql -u root -p
# system will ask 2 password
# 1 linux user password
# 2 mysql root password
วันพฤหัสบดีที่ 1 กรกฎาคม พ.ศ. 2564
(Shortcut) Uncomplicated Firewall on Ubuntu 20.04
ref https://www.cyberciti.biz/faq/unix-linux-check-if-port-is-in-use-command/
ref https://www.cyberciti.biz/faq/how-to-configure-firewall-with-ufw-on-ubuntu-20-04-lts/
sudo lsof -i:[port-number]
sudo lsof -i -P -n | grep LISTEN
sudo ufw status
sudo ufw status numbered
sudo ufw delete [number]
sudo ufw enable
sudo ufw disable
sudo ufw allow 80/tcp comment 'accept Apache'
sudo ufw allow 443/tcp comment 'accept HTTPS Connections'
sudo ufw allow from [ip]
วันพฤหัสบดีที่ 10 มิถุนายน พ.ศ. 2564
การติดตั้ง Postfix ใน Ubuntu 20.04 ปี 2021
อีกครั้งกับการที่ต้องมา Setup ตัว Postfix ซึ่งไม่ได้ทำบ่อยแล้วไม่มีความรู้เรื่องนี้เอาสะเลย ครั้งนี้จะต้องขึ้น Server Mail ให้ระบบอื่น ๆ เข้ามาเชื่อมต่อเพื่อส่งเมลออกไปยังที่อื่น ๆ ต่อไป แม้จะเคยทำมาแล้วแต่ก็ลืมไปหมด ครั้งนี้ได้โอกาสเลยเอามาเขียยลง Blog ไว้จะถ้ามีโอกาสได้ทำอีก ก็จะได้กลับมาหาอ่านไปกันเร็ว ๆ ได้ ในบทความนี้เราจะมาเริ่มแบบไม่รู้อะไรค่อย ๆ กันแก้ Error ต่าง ๆ ไปด้วย ไปเริ่มทำกันเลย
OS ที่ใช้จะเป็น Ubuntu 20.04 เพื่อให้ใช้ตัวนี้กันไปยาว ๆ ให้เราทำการติดตั้งให้เรียบร้อยตั้ง Date, Local, Network และทำการ Upgrade Package ให้เรียบร้อย
จากนั้นทำการติดตั้ง postfix อีเมล Server และ mailutils เพื่อใช้ทดสอบส่งอีเมลออกจาก Server
OS ที่ใช้จะเป็น Ubuntu 20.04 เพื่อให้ใช้ตัวนี้กันไปยาว ๆ ให้เราทำการติดตั้งให้เรียบร้อยตั้ง Date, Local, Network และทำการ Upgrade Package ให้เรียบร้อย
จากนั้นทำการติดตั้ง postfix อีเมล Server และ mailutils เพื่อใช้ทดสอบส่งอีเมลออกจาก Server
# Install postfix and mailutils
sudo apt install postfix mailutils
เมื่อติดตั้งเรียบร้อยแล้วให้ทำการ configuration ตัว postfix โดยใช้คำสั่ง dpkg-reconfigure postfix เพื่อช่วยให้เรา Config ง่ายขึ้น และผมจะใช้ค่า Config Default ตั้งตนไปก่อน เดียวมาทำความเข้าใจแต่ละส่วนที่หลัง ค่าอยู่หลัง : นั้นใช้ Default ระบบมาให้แต่แรกเดียวเราจะกลับมาแก้ที่ละอัน และตั้งค่าที่ configuration แล้วก็ให้ทำการ restart postfix อีก 1 รอบ
# Configure postfix
sudo dpkg-reconfigure postfix
# Config Value
# General type of mail configuration: Internet Site
# System mail name: enoti
# Root and postmaster mail recipient: sarankon
# Other destinations to accept mail for (blank for none): enoti, enoti, localhost.localdomain, , localhost
# Force synchronous updates on mail queue?: <No>
# Local networks: 127.0.0.0/8 [::ffff:127.0.0.0]/24 [::1]/128
# Mailbox size limit (bytes): 0
# Local address extension character: +
# Internet protocols to use: all
sudo systemctl restart postfix
ลองส่งอีเมลเลยว่าได้ไหม โดยใช้ mailutils ในการส่ง
# Test Send Mail
echo "Postfix Test" | mail -s "Subject Test" youremail@gmail.com
วันจันทร์ที่ 22 มีนาคม พ.ศ. 2564
Rsyslog ทำความรู้จักกับ Log และตั้งค่าให้ส่ง Log ไปเก็บยังเครื่อง Server
File Log ในระบบ Linux
เราจะต้องมีไฟล์ที่จะบันทึกการทำงานเพื่อใช้ในการตรวจสอบการทำงานและใช้เพื่อหาความผิดปกติที่เกิดขึ้นจากระบบRsyslog มาจากคำว่า "The rocket-fast system for log processing"
Rsyslog เป็น Open Source ในระบบปฏิบัติการ UNIX และ Unix-like ใช้สำหรับส่งข้อมูล Log ผ่านทาง network
อ้างอิงจาก: https://www.rsyslog.com/, https://en.wikipedia.org/wiki/Rsyslog
Syslog
ใน syslog จะประกอบด้วย 3 ส่วน Facility, Priority และ Action โดยจากเขียนในรูปแบบตามนี้Facility.Priority;Facility.Priority Action (; แทน และ)
Facility,Facility.Priority Action (, แทน หรือ)
วันเสาร์ที่ 20 มีนาคม พ.ศ. 2564
สรุปภาษา Dart เบื้องต้น สำหรับคนมีพื้นฐานการเขียนโปรแกรมแล้ว
method main() สำหรับการเริ่มต้นโปรแกรม และ method print() ในการแสดงผล
เริ่มต้นโครงสร้างต้องมี method main() ระบบจะเริ่มทำงานภายใน method เป็นอันดับแรกmethod print('ข้อความ') เป็นการสั่งให้แสดงผลออกมาทาง console
void main() {
print('Hello World!');
}
วันจันทร์ที่ 16 พฤศจิกายน พ.ศ. 2563
[Review] รีวิว 3BB GIGATV กล่อง Android TV ดู TV Online
กล่อง 3BB Android TV เราสามารถใช้ดู Live TV ได้ และเท่าที่ผมลองเลื่อน ๆ ดูนั้น เราสามารถดู Live TV ได้กว่า 60 ช่อง ยังมีผังรายการ Live TV ให้เราทราบว่าแต่ละช่องมีรายการอะไรบ้างเวลาไหน และถ้าช่องไหนมีรูปเครื่องหมายนาฬิการเวลา เราจะสามารถดูรายการย้อนหลังในช่องนั้น ๆ ได้ด้วยครับ
วันอาทิตย์ที่ 15 พฤศจิกายน พ.ศ. 2563
[Review] รีวิว 3BB GIGATV กล่อง Android TV จาก 3BB
รีวิวกล่อง 3BB TV Box เป็นกล่อง Android TV ที่เป็น Android Version 10 และมี Chromecast ในตัวมาแล้ว
Chromecast และ Android TV คืออะไรก่อน
ก็จะพูดถึงกันสั้น ๆ ตรงนี้, ช่วงก่อนหน้านี้ Google ได้ทำอุปกรณ์ที่ชื่อว่า Chromecast โดยเจ้าอุปกรณ์ตัวนี้ใช้ต่อเข้ากับ TV ผ่านช่องสัญญา HDMI โดยจะทำให้ TV ธรรมดาของเราสามารถรับคำสั่งมือถือของเราได้ เช่น แชร์ภาพหน้าจอมือถือ, สั่งให้เล่น Video ผ่าน Youtube หรือเล่นเกมได้ โดยการเล่น Youtube กับเจ้าตัว Chromecast นั้นมือถือเราไม่จำเป็นต้องเปิด App Youtube ทิ้งไว้ เพราะการทำงานของ Chromecast คือรับคำสั่งจากมือถือให้เล่น Video จากนั้นตัว Chromecast จะทำการเปิด Video โดยไม่ได้ใช้การส่งภาพจากมือถือของเรา ทำให้เราสามารถใช้งานโปรแกรมอื่น ๆ ในขนาดที่ใช้งาน Chromecast อยู่ส่วน Android TV มาหลังจาก Chromecast สักพักใหญ่ ซึ่งเจ้า Android TV เขาประกาศตัวไว้เป็น OS (Operating System) สำหรับ TV (Television) และมีเจ้า Chromecast อยู่ข้างในตัว Android TV อีกที โดยตัว Android TV นั้นก็เหมือนกับที่อยู่ในมือถือ Android ของเรา เราจะต้องทำการผูกบัญชี Google เข้ากับ Android TV และก็สามารถลงแอพต่าง ๆ ได้ใน Google Play ลงมายัง Android TV ได้อีกด้วย
***แต่ก็ยังไม่เยอะเท่าบนมือถือนะครับเท่าที่ลองทดสอบดู คิดว่าตัวแอพก็ต้องทำให้รองรับเฉพาะ Android TV ด้วย
โดยปกติแล้วไม่ชอบ TV ที่เป็น Smart หรือมี OS อะไรมาในตัวเพราะส่วนตัวคิดว่าถ้าระบบนั้นพัง TV ก็จะดูไม่ได้ไปด้วย และ TV ที่ไม่ใช่ Smart ส่วนใหญ่ก็จะราคาถูกกว่า Smart ด้วย ***เป็นความคิดเห็นส่วนตัวนะครับ ส่วนกล่องที่ได้มาเป็นของทาง 3BB ซึ่งมีเจ้าหน้าที่โทรติดต่อมาว่าต้องการปรับ Package โดยใช้กล่องหรือไหม เราเองยังไม่แน่ใจครับ แต่เพราะก็กำลังมองหาพวก Mi Box หรือ Chromecast มาใช้งานอยู่แล้วเลยตอบตกลงดู ก็เลยได้มาเขียนรีวืวตอนนี้ เพื่อจะเป็นประโยชน์กับใครที่กำลังอยากได้ข้อมูลว่ากล่องนี้มันเป็นอะไรยังไงกันแน่ครับ ไปดูกันเลย
วันจันทร์ที่ 2 พฤศจิกายน พ.ศ. 2563
[Windows] การใช้งาน WSL 2 (Windows Subsystem for Linux 2)
การใช้งาน Windows Subsystem for Linux 2 เราสามารถใช้งานได้ผ่าน Command Line
เมื่อเราต้องการดูรายการ Linux ที่ลงไว้แล้วสามารถใช้คำสั่ง wsl --list --verbose
เมื่อเราต้องการดูรายการ Linux ที่ลงไว้แล้วสามารถใช้คำสั่ง wsl --list --verbose
วันอาทิตย์ที่ 1 พฤศจิกายน พ.ศ. 2563
[Windows] ติดตั้ง WSL 2 (Windows Subsystem for Linux 2) และการใช้งาน WSL 2
การติดตั้ง WSL 2 (Windows Subsystem for Linux 2)
ขั้นตอนการติดตั้ง WSL 2
1. การ Update Windows เป็น 2004
2. เปิดใช้ Windows Subsystem for Linux Feature
3. Set เป็น Windows Subsystem for Linux 2
การดูว่า Windows ของเราเป็น 2004 หรือยังให้ไปที่ปุ่มคลิกที่ปุ่ม Start แล้วค้นหาคำว่า winver แล้วคลิกดูรายละเอียด
ขั้นตอนการติดตั้ง WSL 2
1. การ Update Windows เป็น 2004
2. เปิดใช้ Windows Subsystem for Linux Feature
3. Set เป็น Windows Subsystem for Linux 2
การดูว่า Windows ของเราเป็น 2004 หรือยังให้ไปที่ปุ่มคลิกที่ปุ่ม Start แล้วค้นหาคำว่า winver แล้วคลิกดูรายละเอียด
วันเสาร์ที่ 31 ตุลาคม พ.ศ. 2563
[React Native] Redux
Redux
- ใช้แชร์ State แบบ Global ให้ทุก Component เข้าถึงได้- Component ต้องเรียกใช้ Action ในการแก้ไขข้อมูลใน State Global โดยตรง
- ใช้ Logger ในการ Track ได้จะเห็น prev state, action, next state
npm install redux redux-logger redux-thunk react-redux
redux react-redux : ลง redux และใช้ react-reduxredux-logger : ใช้ track การเปลี่ยนแปลงข้อมูล
redux-thunk : เพื่อให้ใช้งาน asynchronous ได้
Flow
graph LR;
a([State])--defines-->b([UI]);
b([UI])--triggers-->c([Actions]);
c([Actions])--sent to-->d([Reducer]);
d([Reducer])--updates-->e([Store]);
e([Store])--contains-->a([State]);
สมัครสมาชิก:
บทความ (Atom)