Surreal DB ดาต้าเบสที่เป็นทุกอย่างให้แล้ว

หลังจากที่ได้เริ่ม Boot camp Data Science ก็หันมาสนใจในเทคโนโลยีของ ดาต้า มากขึ้น จนมาเจอกับ Surreal DB ทีเพิ่งเปิด version 1.0 beta เมื่อ july 2022 ที่ผ่านมา หลังจากได้ลองเล่นดู ก็เจอหลายๆ อย่างที่น่าสนใจ

Surreal DB is the ultimate cloud database for tomorrow’s applicationsDevelop easier. Build faster. Scale quicker.

Surreal DB

Surreal DB เขียนแบบ sql like คล้าย กับ mySQL หรือ progress แต่ทีทั้ง table document และ graph สามารถสร้าง ความสำพันธ์ ได้โดยไม่ใช้ join สามารถ ส่งออกมาได้ทั้ง Data table graph หรือ API และยังมีอื่นๆอีก เรียกได้ว่าเอาทุกอย่างมารวมกันไว้ให้แล้ว

Install Surreal DB

Mac

บน Mac สามารถลงผ่าน Home brew ได้ง่ายๆ เลย

brew install surrealdb/tap/surreal

Linux

ส่วน Linux ก็ใช้ curl

curl -sSf https://install.surrealdb.comCode language: JavaScript (javascript)

Windows

ส่วนบน windows ใช้ iwr หรือ chocolety ก็ได้ครับ

iwr https://windows.surrealdb.com -useb | iexCode language: JavaScript (javascript)
choco install surreal --pre

Start Server

เมื่อลง surreal แล้วก็ลองมารัน server บน local กันเลย

surreal start --log debug --user root --pass root memory

พอ server start แล้วก็มา connect ผ่าน terminal ได้เลย

surreal sql --conn http://localhost:8000 --user root --pass root --ns namespace --db databaseCode language: JavaScript (javascript)

เมื่อ connect เข้ามาแล้วก็ลุยกันได้เลย surreal ใช้ ภาษา SurrealQL ที่คล้ายๆ กับ sql แต่ง่ายไปกว่านั้นอีก มาลองดูตัวอย่างกัน

/* สร้าง table */

CREATE company:magnamm SET name = 'SurrealDB', cofounders = [person:Mag, person:Ammo];

/* เรียก table */

SELECT * FROM company:magnamm;

/* เรียก บาง column table */

SELECT cofounders.*.name FROM company:magnamm;

/* สร้าง table และส่งค่า อย่างเวลา */

CREATE temperature:17493 SET time = time::now(), celcius = 37.5;
Code language: PHP (php)

อันนี้แค่เริ่มต้น ยังมีอีกหลายๆ คำสั่ง ใครสนใจสามารถไปตามอ่านได้ที่ surrealDB ได้เลยหรือติดตาม ตอนต่อๆ ไปได้เลยครับ

crop cyber spy hacking system while typing on laptop

Windows Command Prompt

What Is the Command Prompt?

Command prompt หรือว่า Windows Command processor หรือที่จะรู้จักกันในชื่อ CMD เป็นการเขียนคำสั่งให้ Windows ทำงานที่เราต้องการ

ย้อนกลับไปในยุคของ PC สมัยก่อนที่จะมี GUI จะใช้ MS-DOS ในการสั่งให้คอมพิวเตอร์ทำงาน สำหรับใครที่ทัน Windows 3.1 เป็น GUI ยุคแรกๆ ของ Windows ที่จะเข้าใช้งานก็ต้องพิมคำสั่งผ่าน Command line ก่อนที่จะ GUI ได้

อีกคำที่ต้องรู้จะคือ Shell เป็นโปรแกรมที่ทำหน้าที่รับคำสั่งเพื่อให้คอมพิวเตอร์ได้ทำงานตามที่เราต้องการ ไม่ว่าจะเป็น การพิมพ์คำสั่ง หรือว่า GUI ก็เรียกได้ว่าเป็น shells เหมือนกัน

ถึงแม้ว่า Windows จะมี GUI ตั้งแต่ Windows 3.1 แต่ visual interface ของ windows ก็รันอยู่บน ระบบปฏิบัติการ DOS มาจนถึง Windows 95 และ Windows ME ก็ยังมี Ms dos ให้ใช้งาน และมีการเรียกใช้งานตลอดเวลา


เริ่มตั้งแต่ Windows XP ที่ Windows ไม่ได้รันบน MS-DOS แต่ก็ยังมี Command Prompt บน Windows ให้ผู้ใช้งานได้ใช้โดยเฉพาะการรัน batch file เพื่อให้คอมพิวเตอร์ทำงาน automating ได้อย่างง่ายดาย

ทุกวันนี้ Power User ก็ยังใช้งาน Command Prompt เพื่อช่วยในการทำงานหลายๆ อย่างแทนที่จะใช้ Mouse คลิกสิ่งต่างๆ บน GUI

Essential Run Commands for Windows

Common Windows Tools

ShortcutAction
explorerWindows Explorer
c:Open C: Drive
regeditRegistry Editor
services.mscWindows Services (local)
taskmgrTask Manager
msconfigSystem Configuration Utility
mstscRemote Desktop (Microsoft Terminal Services Client)
logoffLog Off Windows (without confirmation!)
shutdownShuts Down Windows (Save all your work first)
cmdCommand Prompt
notepadNotepad
oskOn Screen keyboard
mailto:Open Default Mail Application
Website addressOpen entered URL in default browser

Other Windows Tools & Utilities

ShortcutAction
calcCalculator
chkdskCheck Disk
charmapCharacter Map
cleanmgrClean Manager – Disk Cleanup Utility
clipbrdClipboard Viewer (not available after Windows XP)
cmdCommand Prompt
compCompare Files
colorcplColor Management
cttuneClearType Text tuner
dxdiagDirect X Troubleshooter
eudceditPrivate Characters Editor
fontsFonts
fsquirtBluetooth Transfer Wizard
ftpMS-DOS FTP
iexploreInternet Explorer
joy.cplGame Controllers
labelVolume Serial Number for C:
magnifyWindows Magnifier
microsoft-edge://Edge
migwizMigration Wizard – Files and Settings Transfer Tool
mipMath Input Panel
mrtMalicious Software Removal Tool
msiexecWindows Installer Details
msinfo32System Information
mspaintPaint
narratorNarrator
powershellPowershell
shrpubwCreate a shared folder Wizard
sigverifFile Signature Verification Tool
sndvolVolume Control
snippingtoolSnipping Tools
stikynotSticky Notes
utilmanNarrator Settings
verifierDriver Verifier Utility
wasContacts
wf.mscWindows Firewall with Advanced Security
wfsWindows Fax and Scan
wiaacmgrScanner
winverWindows Version (Check your Windows version)
wmplayerWindows Media Player
writeWordPad
xpsrchvwXPS Viewer
winwordWord
Word /safeWord Safe Mode

Control Panel Commands

ShortcutAction
appwiz.cplApplication Wizard (Program and Features)
controlControl Panel
control admintoolsAdministrative Tools
control colorPersonalization – Color and Appearance
control desktopDisplay Properties (Personalization)
control foldersFolders Properties
control keyboardKeyboard Properties
control mouseMouse Properties
control netconnectionsNetwork Properties
control printersPrinters Folders
control schedtasksScheduled Tasks
control updateWindows Update
control userpasswordsManager current User Account
control userpasswords2Manager all User Accounts
desk.cplDisplay – Screen Resolution
devmgmt.mscDevice Manager
firewall.cplWindows Firewall
inetcpl.cplInternet Properties (Internet Control Panel)
intl.cplRegional Settings (International)
mmsys.cplSound Properties (Multimedia System Settings)
ncpa.cplNetwork Properties
netplwizTo create User Account
powercfg.cplPower Configuration
sysdm.cplSystem Properties
timedate.cplDate and Time Properties
utilmanEase of Access Utility Manager
wscui.cplSecurity Center (Windows Security Center UI)

Windows Administrative Tools

ShortcutAction
compmgmt.mscComputer Management including System Tools, Storage, Services and Applications
defragDefrag Command
dcomcnfgComponent Services (Detailed Component Configuration)
devmgmt.mscDevice Management
diskmgmt.mscDisk Partition Manager
diskpartDiskpart Command
eventvwr.mscEvent Viewer
fsmgmt.mscShared Folders (File Sharing Management)
gpedit.mscGroup Policy Editor
lusrmgr.mscLocal User and Groups
perfmon.mscPerformance Monitor
rekeywizFile Encryption

System File Checker Utility

ShortcutAction
sfc /scannowSystem File Checker Utility (Scan Immediately)
sfc /scanonceSystem File Checker Utility (Scan Once At Next Boot)
sfc /scanbootSystem File Checker Utility (Scan On Every Boot)
sfc /revertSystem File Checker Utility (Return to Default Settings)
sfc /purgecacheSystem File Checker Utility (Purge File Cache)
sfc /cachesize=xSystem File Checker Utility (Set Cache Size to Size x)

Common Environment Variables

ShortcutAction
%AllUsersProfile%Program Data
%ProgramFiles%Program Files
%SystemDrive%System Drive
%SystemRoot%System Root
%Temp%Temporary Folder
%UserProfile%User Profile
%WinDir%Windows Directory

Regex Cheat Sheet

regex หรือ regular expression คือ การกำหนดรูปแบบหรือกลุ่มคำ เพื่อเอาไว้ใช้ค้นหาข้อความต่างๆตามที่เราต้องการ สามารถค้นหาได้ทั้งอักขระธรรมดา หรือค้นหาความข้อที่กำหนดไว้ หรือจะเป็นอักขระพิเศษก็สามารถค้นหาได้ รูปแบบหรือกลุ่มคำที่กำหนดไว้โดย regex อาจจะ match ได้แค่ 1 อัน
หรือ match ได้หลายๆอัน หรืออาจจะไม่ match เลยก็ได้
Regular Expressions มีอยู่เกือบทุกภาษา Programming แต่อาจจะแตกต่างกันออกไปเพียงนิดหน่อย

regex สามารถใช้เพื่อค้นหา, แก้ไข และจัดการข้อความได้
ถ้าใครยังนึกภาพไม่ออก ให้นึกถึงการใช้ Ctrl + F ที่เราใช้ในชีวิตประจำวันกันครับ เพราะนั่นคือการใช้หลักการ Regular Expressions อย่างหนึ่ง

Regular Expressions ใช้ตอนไหน ?

  • เวลาที่มีข้อมูลเยอะๆ แต่เราต้องการหาข้อมูลที่เฉพาะเจาะจง
  • ค้นหาคำที่มีความซับซ้อน เช่น ขึ้นต้น A ลงท้ายด้วย T หรือ หาเฉพาะตัวเลข เป็นต้น
  • คำที่ขึ้นต้นด้วยอะไรก็ได้ แต่ตรงกลางข้อความต้องมีเครื่องหมาย และลงท้ายตามที่กำหนด เช่น email เป็นต้น
  • ตรวจสอบรูปแบบของข้อความ เช่น รหัสนักศึกษา เลขบัตรประชาชน เป็นต้น

หัดเขียน Regular Expression : Regex Playground

  • regex101 : with code flavor and unit test 
  • regexr : with example text and tools 

Regex ที่ใช้งานบ่อยๆ : Commonly used Regex

Digits

Alphanumeric Characters

Email

Password Strength

  • Complex: Should have 1 lowercase letter, 1 uppercase letter, 1 number, 1 special character and be at least 8 characters long /(?=(.*[0-9]))(?=.*[\\!@#$%^&*()\\\\[\\]{}\\-_+=~`|:;"'<>,./?])(?=.*[a-z])(?=(.*[A-Z]))(?=(.*)).{8,}/
  • Moderate: Should have 1 lowercase letter, 1 uppercase letter, 1 number, and be at least 8 characters long /(?=(.*[0-9]))((?=.*[A-Za-z0-9])(?=.*[A-Z])(?=.*[a-z]))^.{8,}$/

Username

  • Alphanumeric string that may include _ and – having a length of 3 to 16 characters –/^[a-z0-9_-]{3,16}$/

URL

  • Include http(s) Protocol /https?:\\/\\/(www\\.)?[-a-zA-Z0-9@:%._\\+~#=]{2,256}\\.[a-z]{2,6}\\b([-a-zA-Z0-9@:%_\\+.~#()?&//=]*)/
  • Protocol Optional /(https?:\\/\\/)?(www\\.)?[-a-zA-Z0-9@:%._\\+~#=]{2,256}\\.[a-z]{2,6}\\b([-a-zA-Z0-9@:%_\\+.~#?&//=]*)/

Dates

  • Date Format YYYY-MM-dd using separator “
  • Date Format dd-MM-YYYY using separators “ or . or /
  • Date Format dd-mmm-YYYY using separators “ or . or /
/* Date Format YYYY-MM-dd */
/([12]\\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[12]\\d|3[01]))/
 
/* Date Format dd-MM-YYYY or 
               dd.MM.YYYY or
               dd/MM/YYYY
   with check for leap year */
/^(?:(?:31(\\/|-|\\.)(?:0?[13578]|1[02]))\\1|(?:(?:29|30)(\\/|-|\\.)(?:0?[1,3-9]|1[0-2])\\2))(?:(?:1[6-9]|[2-9]\\d)?\\d{2})$|^(?:29(\\/|-|\\.)0?2\\3(?:(?:(?:1[6-9]|[2-9]\\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00))))$|^(?:0?[1-9]|1\\d|2[0-8])(\\/|-|\\.)(?:(?:0?[1-9])|(?:1[0-2]))\\4(?:(?:1[6-9]|[2-9]\\d)?\\d{2})$/
 
/* Date Format dd-mmm-YYYY or
               dd/mmm/YYYY or
               dd.mmm.YYYY */
/^(?:(?:31(\\/|-|\\.)(?:0?[13578]|1[02]|(?:Jan|Mar|May|Jul|Aug|Oct|Dec)))\\1|(?:(?:29|30)(\\/|-|\\.)(?:0?[1,3-9]|1[0-2]|(?:Jan|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec))\\2))(?:(?:1[6-9]|[2-9]\\d)?\\d{2})$|^(?:29(\\/|-|\\.)(?:0?2|(?:Feb))\\3(?:(?:(?:1[6-9]|[2-9]\\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00))))$|^(?:0?[1-9]|1\\d|2[0-8])(\\/|-|\\.)(?:(?:0?[1-9]|(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep))|(?:1[0-2]|(?:Oct|Nov|Dec)))\\4(?:(?:1[6-9]|[2-9]\\d)?\\d{2})$/
Code language: JavaScript (javascript)

Time

Phone Numbers

/* International Phone Numbers */
/^(?:(?:\\(?(?:00|\\+)([1-4]\\d\\d|[1-9]\\d?)\\)?)?[\\-\\.\\ \\\\\\/]?)?((?:\\(?\\d{1,}\\)?[\\-\\.\\ \\\\\\/]?){0,})(?:[\\-\\.\\ \\\\\\/]?(?:#|ext\\.?|extension|x)[\\-\\.\\ \\\\\\/]?(\\d+))?$/
Code language: PHP (php)

Note: Use regex for validating phone numbers only if you don’t have the choice to use a library. There are several libraries that handle phone numbers more accurately and should be used instead.

Identity Documents

  • Social Security Number – Ref
/* can use either hypen(-) or space( ) character as separator */
/^((?!219-09-9999|078-05-1120)(?!666|000|9\\d{2})\\d{3}-(?!00)\\d{2}-(?!0{4})\\d{4})|((?!219 09 9999|078 05 1120)(?!666|000|9\\d{2})\\d{3} (?!00)\\d{2} (?!0{4})\\d{4})|((?!219099999|078051120)(?!666|000|9\\d{2})\\d{3}(?!00)\\d{2}(?!0{4})\\d{4})$/

Code language: JavaScript (javascript)
  • Passport – /^[A-PR-WY][1-9]\\d\\s?\\d{4}[1-9]$/

Payment Validation

regex for validating leading Credit cards like Visa, Mastercard and so on.

^(?:4[0-9]{12}(?:[0-9]{3})?          # Visa
 |  (?:5[1-5][0-9]{2}                # MasterCard
     | 222[1-9]|22[3-9][0-9]|2[3-6][0-9]{2}|27[01][0-9]|2720)[0-9]{12}
 |  3[47][0-9]{13}                   # American Express
 |  3(?:0[0-5]|[68][0-9])[0-9]{11}   # Diners Club
 |  6(?:011|5[0-9]{2})[0-9]{12}      # Discover
 |  (?:2131|1800|35\d{3})\d{11}      # JCB
)$Code language: PHP (php)