วันเสาร์ที่ 9 กันยายน พ.ศ. 2566

Bun 1.0

Post นี้เราได้มาลองศึกษาตัว Bun 1.0 ที่พึ่งปล่อยมาวันนี้ (8 กันยายน 2566)
ในตอนนี้ Bun จะยังไม่สามารถใช้งานแบบ Native บน Windows แต่เราสามารถใช้งานผ่าน WSL
และในอนาคตคาดว่าจะมีรองรับบน Windows

Bun คืออะไร


Bun เป็น JavaScript Runtime เหมือนกับ Node.js แต่มีความแตกต่างกันที่ Engine
โดย Bun สร้างขึ้นมาบน JavaScript Core (อยู่ใน Webkit จาก Safari)
และ Node.js ถูกสร้างมาบน V8 (รันอยู่บน Chrome)

Bun ถูกพัฒนาให้รองรับการเขียน JavaScript โดยมี 3 เป้าหมายหลัก
1. Speed - ทำงานได้เร็ว พัฒนาจาก JavaScript Core เป็น Engine ที่มีประสิทธิภาพที่ใช้กับ Safari
2. Elegant APIs. - มี APIs ที่เป็น Common โดยปรับแต่งเรื่องประสิทธิภาพแล้ว เช่น HTTP Server หรือ การเขียน File และมีอื่น ๆ อีก
3. Cohesive DX - มี Toolkit ที่ใช้สำหรับสร้าง JavaScript Apps เช่น Package Manager, Test Runner และ Bundler
Bun ถูกออกแบบมาให้สามารถใช้แทน Node.js ได้เลย และสามารถ Run TypeScript, TSX File โดยที่ไม่ต้องพึ่ง Dependency

วันจันทร์ที่ 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
# 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

วันอาทิตย์ที่ 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 แล้วคลิกดูรายละเอียด