Author: Shinin Varongchayakul

  • สอน Web Scraping ด้วย Gazpacho ใน Python

    สอน Web Scraping ด้วย Gazpacho ใน Python


    🤨 Web Scraping คืออะไร?

    Web scraping คือ การดึงข้อมูลจากหน้าเว็บโดยอัตโนมัติผ่านเครื่องมือต่าง ๆ ซึ่งใช้ประโยชน์ได้หลายอย่าง เช่น:

    • เปรียบเทียบราคาสินค้า
    • ติดตามกระแสตอบรับ brand
    • รวบรวมข้อมูลสำหรับพัฒนา LLM

    💻 Web Scraping ใน Python: BeautifulSoup vs Gazpacho

    ใน Python, package ที่นิยมใช้สำหรับ web scraping คือ BeautifulSoup

    แต่ BeautifulSoup มีข้อจำกัด เนื่องจากไม่สามารถโหลดข้อมูลจากหน้าเว็บเองได้ ทำให้ต้องใช้ package อื่นอย่าง requests เข้ามาช่วย

    Gazpacho เป็น package ที่ออกแบบมาเพื่อทดแทน BeautifulSoup โดยเน้นความเร็วในการทำงาน และการทำงานครบ loop ได้ด้วยตัวเอง


    🍜 วิธีใช้ Gazpacho

    เราใช้ Gazpacho ดึงข้อมูลจากเว็บไซต์ได้ง่าย ๆ ใน 3 ขั้นตอน

    1. Get web page
    2. Create Soup object
    3. Extract content

    เราไปดูวิธีใช้ Gazpacho ผ่านตัวอย่างการดึงข้อมูลหนังสือ Sapiens: A Brief History of Humankind จาก Book to Scrape ซึ่งเป็นเว็บไซต์สำหรับฝึก web scraping กัน

    Books to Scrape is a website built specifically for web scraping practice.

    1️⃣ Step 1. Get Web Page

    ในขั้นแรก เราจะโหลดหน้าเว็บเข้ามาใน Python ก่อน:

    # Load the package
    import gazpacho as gz
    # Set the URL
    url = "<https://books.toscrape.com/catalogue/sapiens-a-brief-history-of-humankind_996/index.html>"
    # Load the web page
    page = gz.get(url)

    และตรวจดูข้อมูลที่โหลดมาได้:

    # Inspect the page
    print(page[:1000])

    ผลลัพธ์:

    <!DOCTYPE html>
    <!--[if lt IE 7]> <html lang="en-us" class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
    <!--[if IE 7]> <html lang="en-us" class="no-js lt-ie9 lt-ie8"> <![endif]-->
    <!--[if IE 8]> <html lang="en-us" class="no-js lt-ie9"> <![endif]-->
    <!--[if gt IE 8]><!--> <html lang="en-us" class="no-js"> <!--<![endif]-->
    <head>
    <title>
    Sapiens: A Brief History of Humankind | Books to Scrape - Sandbox
    </title>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
    <meta name="created" content="24th Jun 2016 09:29" />
    <meta name="description" content="
    From a renowned historian comes a groundbreaking narrative of humanity’s creation and evolution—a #1 international bestseller—that explores the ways in which biology and history have defined us and enhanced our understanding of what it means to be “human.”One hundred thousand years ago, at least six different species of humans inhabited Earth. Yet today there

    จะเห็นว่า ข้อมูลที่ได้มาจะอยู่ใน HTML tag


    2️⃣ Step 2. Create Soup Object

    ในขั้นที่ 2 เราจะสร้าง Soup object ซึ่งเป็น object ที่เราสามารถค้นหาข้อมูลได้โดยง่าย:

    # Create a Soup object
    soup = gz.Soup(page)

    3️⃣ Step 3. Extract Content

    ในขั้นสุดท้าย เราสามารถดึงข้อมูลที่ต้องการจาก Soup object ได้ด้วย:

    • .find(): ค้นหา HTML tag ที่ต้องการ
    • .text: ดึงข้อความที่อยู่ใน HTML tag
    • .attrs: ดึง attribute ของ HTML tag มาในรูปแบบ dictionary

    เช่น ดึงชื่อหนังสือ:

    # Extract the book title
    book_title = soup.find("h1").text
    # Print the book title
    print(book_title)

    ผลลัพธ์:

    Sapiens: A Brief History of Humankind

    ดึงราคา:

    # Extract the book price
    book_price = soup.find("p", {"class": "price_color"})[0].text
    # Print the book price
    print(book_price)

    ผลลัพธ์:

    £54.23

    ดึงรูปหนังสือ:

    # Extract the book image path
    book_image_path = soup.find("img")[0].attrs["src"]
    # Append to the base URL
    book_image_url = "<https://books.toscrape.com/>" + book_image_path.replace("../../", "")
    # Print the image URL
    print(book_image_url)

    ผลลัพธ์:

    <https://books.toscrape.com/media/cache/ce/5f/ce5f052c65cc963cf4422be096e915c9.jpg>

    ซึ่งเมื่อเปิดดู URL เราจะได้รูปหนังสือมาแบบนี้:

    A book cover image scraped from Books to Scrape.

    💪 สรุปการใช้ Gazpacho

    วิธีใช้ Gazpacho สำหรับ web scraping มีอยู่ 3 ขั้นตอน:

    ขั้นที่ 1. Get web page

    # Import the package
    import gazpacho as gz
    # Set the URL
    url = "<https://books.toscrape.com/catalogue/sapiens-a-brief-history-of-humankind_996/index.html>"
    # Load the web page
    page = gz.get(url)

    ขั้นที่ 2. Create Soup object:

    # Create a Soup object
    soup = gz.Soup(page)

    ขั้นที่ 3. Extract content:

    # Extract the book title
    book_title = soup.find("h1").text
    # Print the book title
    print(book_title)

    🫵 หลังจบบทความนี้

    หลังอ่านบทความนี้แล้ว อย่าลืมไปลองทำ web scraping กันนะครับ:


    📃 อ้างอิง

  • Claude Project คืออะไรและใช้งานยังไง: สรุปฟีเจอร์อัปเดตใหม่จาก Claude Code

    Claude Project คืออะไรและใช้งานยังไง: สรุปฟีเจอร์อัปเดตใหม่จาก Claude Code


    🤔 Claude Project คืออะไร?

    Claude Project เป็นห้องแชทกับ Claude Code เพื่อทำงานที่มีความซับซ้อน และประกอบด้วย 2 ส่วนหลัก:

    1. ห้องแชทหลัก: ใช้สั่งงาน เพื่อให้ Claude วางแผน แจกจ่ายงาน และประสานงานระหว่างห้องย่อย
    2. Thread หรือห้องแชทย่อย: ใช้ทำงานตามที่แชทหลักมอบหมาย
    Claude Code Project is a one long conversation where each task is assigned to a separate thread that runs on its own context window.
    รูปจาก Getting started with Claude Code Projects

    Note: ปัจจุบัน Claude Project ใช้งานได้กับบัญชี Pro และ Max เท่านั้น


    🤨 เมื่อไรควรใช้ Claude Project?

    Claude Project เหมาะกับการใช้งาน 3 กรณีนี้:

    กรณีที่ 1. เป้าหมายขนาดใหญ่:

    งานที่มีหลายขั้นตอน หรือไม่สามารถทำเสร็จได้ในครั้งเดียว เช่น การพัฒนาแอปพลิเคชันใหม่ที่มีหลายฟีเจอร์

    กรณีที่ 2. ทำงานกับหลาย repo พร้อมกัน:

    Claude Project สามารถเข้าถึง repo และสร้าง pull request (PR) ได้

    กรณีที่ 3. ทำหลายงานพร้อมกัน:

    Claude Project สามารถรันหลาย thread เพื่อทำงานหลายอย่างในเวลาเดียวกันได้


    💻 วิธีใช้ Claude Project

    .

    🏁 วิธีสร้าง Project

    ขั้นที่ 1. ใน Claude กด “Project”

    ขั้นที่ 2. กด “New project”

    ขั้นที่ 3. กรอกรายละเอียด ได้แก่:

    • Name: ชื่อ project
    • Goal: เป้าหมาย
    • Context: repo ที่จะให้ Claude เข้าถึงได้

    ขั้นที่ 4. กด “Create project”

    To create a Claude Project, click "New Project" > Add details like name, goal, and context > Click "create project"
    รูปจาก Getting started with Claude Code Projects

    .

    🗣️ วิธีสั่งงาน

    ขั้นที่ 1. สั่งงาน Claude ด้วยภาษาธรรมชาติ (natural language)

    ตัวอย่าง:

    สร้าง landing page ให้หน่อย

    ขั้นที่ 2. Claude จะประมวลผลคำสั่ง และสร้าง thread ขึ้นมาทำงานให้กับเรา

    • ติดตามการทำงานได้ โดยกดที่ thread ที่ต้องการ
    • กำกับการทำงานของ Claude ได้ โดยพิมพ์คำสั่งลงใน thread
    In a Claude Project, to guide a task in each thread, simply enter your prompt in the thread.
    รูปจาก Getting started with Claude Code Projects

    .

    🗂️ การจัดเก็บไฟล์

    Claude Project เก็บไฟล์ (ทั้งที่เราอัปโหลด และ Claude สร้างขึ้น) ไว้ในเมนูชื่อ “Library”

    ทุก thread ใน project สามารถเข้าถึงไฟล์ใน Library ได้

    In a Claude Project, all your files, uploaded and created by Claude, are stored in Library.
    รูปจาก Getting started with Claude Code Projects

    🗝️ เคล็ดลับการใช้งาน Claude Project

    .

    1️⃣ ข้อ 1. ใช้งานอย่างประหยัด Token

    ยิ่ง Claude Project สร้าง thread มากเท่าไร เราก็ยิ่งใช้ token และติดลิมิตการใช้งานเร็วขึ้นเท่านั้น

    เพื่อลดการใช้ token เราควรเลือก model ให้เหมาะกับการใช้งานดังนี้:

    1. เลือก model ขนาดเล็ก (เช่น Haiku) สำหรับแชทหลักที่ใช้ในการจ่ายงานเท่านั้น
    2. เลือก model ขนาดเล็ก–กลาง (เช่น Haiku และ Sonnet) สำหรับ thread ที่ทำงานง่าย ๆ
    3. เลือก model ขนาดใหญ่ (เช่น Opus) สำหรับ thread ที่ทำงานซับซ้อน

    การตั้งค่า model:

    เราเลือก model ใช้งานได้ 2 วิธี:

    วิธีที่ 1. Project settings:

    1. กดรูปฟันเฟือง
    2. ใน “General” ใต้เมนู “Models” เลือก model ที่ต้องการใช้งาน

    Model ที่เลือกจะเป็นค่าเริ่มต้น (default) ของทั้ง project

    In a Claude Project, you can go to settings to set the default models for each feature like coordinator and thread.
    รูปจาก Getting started with Claude Code Projects

    วิธีที่ 2. แชท:

    กดเลือก model ก่อนส่งคำสั่งให้ Claude ทั้งในแชทหลักและ thread

    In a Claude Project, you can choose which model to run before submitting each prompt.

    .

    2️⃣ ข้อ 2. ทำให้ Claude ตอบอย่างที่เราต้องการ

    เราควรใส่คำสั่งอย่างละเอียด เพื่อให้ Claude ทำงานตามที่เราต้องการ

    ตัวอย่าง:

    • ต้องการให้ Claude สร้าง thread ขึ้นมาทำงานกี่ thread
    • Claude ควรวางแผนก่อนเริ่มงานไหม
    • ควรจะอัปเดตงานถี่แค่ไหน

    .

    3️⃣ ข้อ 3. ป้องกันไม่ให้ Claude ลืมบริบท

    ห้องแชทที่คุยกันมานาน อาจทำให้ Claude ลืมข้อมูลในช่วงต้นของ project ได้ เมื่อการพูดคุยยาวเกิน context window ของ Claude

    เราช่วยให้ Claude ไม่ลืมบริบทการทำงานได้ โดยเพิ่มข้อมูลไว้ในความจำของ Claude

    วิธีสร้างความจำ:

    1. กดรูปฟันเฟือง
    2. กดเมนู “Memory”
    3. พิมพ์สิ่งที่ต้องการให้ Claude รู้ ลงในกล่องข้อความ (เช่น project นี้เกี่ยวกับอะไร)
    4. กดส่งข้อความ
    In a Claude Project, you can add memory by going to "Settings" and "Memory".
    รูปจาก Getting started with Claude Code Projects

    🫵 หลังจบบทความนี้

    หลังอ่านบทความนี้แล้ว มาลองใช้ Claude Project กันนะครับ


    📄 อ้างอิง

  • คำสั่งลัด ChatGPT: วิธีใช้และคำสั่งลัดยอดนิยมที่ทุกคนควรรู้

    คำสั่งลัด ChatGPT: วิธีใช้และคำสั่งลัดยอดนิยมที่ทุกคนควรรู้

    สัปดาห์ก่อน ผมมีโอกาสได้ร่วมสอนการใช้ AI ให้กับผู้สูงอายุ

    หนึ่งในหัวข้อที่ทีมงานเตรียมไว้และน่าสนใจ คือ คำสั่งลัดที่เริ่มต้นด้วย /

    ตัวอย่าง:

    • /eli5 — อธิบาย … เหมือนกับฉันเป็นเด็ก 5 ขวบ
    • /human — เขียน … ให้เหมือนกับมนุษย์เขียน
    • /3dbillboard — สร้างรูปแบบบิลบอร์ด 3 มิติ
    Example of using slash command (prompt shorthand) in ChatGPT for a quick image generation.
    ตัวอย่างการใช้คำสั่งลัด /3dbillboard

    แม้ว่าคำสั่งเหล่านี้ช่วยประหยัดเวลาในการสั่ง ChatGPT แต่ผมพบว่าคำสั่งเหล่านี้ไม่ได้ทำงานอย่างตรงไปตรงมาอย่างที่คิด

    ในบทความนี้ ผมจะมาสรุปวิธีใช้คำสั่งลัดอย่างมีประสิทธิภาพให้ทุกคนกัน

    ถ้าพร้อมแล้ว ไปเริ่มกันเลย



    🤔 คำสั่งลัด ChatGPT คืออะไร?

    คำสั่งลัด (slash command) เป็นคำสั่ง (prompt) แบบย่อ (prompt shorthand)

    ตัวอย่าง:

    คำสั่งแบบยาว:

    เขียนอีเมลลางาน สำหรับส่งให้หัวหน้า เขียนให้เหมือนคนเขียน

    คำสั่งลัด:

    /human เขียนอีเมลลางาน สำหรับส่งให้หัวหน้า


    😲 คำสั่งลัดและคำสั่งทางการของ ChatGPT

    คำสั่งลัดแตกต่างจากคำสั่งทางการ (official slash command) ของ ChatGPT อย่าง:

    • /init
    • /goal
    • /usage

    ซึ่งเป็นคำสั่งสำหรับ ChatGPT Desktop และ Codex CLI เท่านั้น

    Note: ดูชุดคำสั่งทางการของ ChatGPT: Official slash commands

    เนื่องจาก ChatGPT รองรับคำสั่งเหล่านี้โดยตรง ChatGPT จึงทำตามคำสั่งเหล่านี้ได้เหมือนเดิมทุกครั้ง

    ตัวอย่างคำสั่งทางการ:

    เมื่อพิมพ์ /usage, Codex CLI จะเปิดหน้าสถิติการใช้งานให้เราดูทุกครั้ง:

    Example of an official slash command in Codex CLI.
    ตัวอย่างการใช้คำสั่งทางการใน Codex CLI
    image.png

    แต่เราไม่สามารถใช้คำสั่งแบบเดียวกันใน ChatGPT บนเว็บหรือแอปมือถือได้:

    Example of an official slash command in ChatGPT web app. The command cannot be executed because the web app version does not currently support the official slash commands, unlike Codex CLI.
    ตัวอย่างการใช้คำสั่งทางการในแอป ChatGPT บนมือถือ

    🙂‍↕️ วิธีใช้คำสั่งลัดที่ถูกต้อง

    .

    😅 ข้อจำกัดของคำสั่งลัด

    เนื่องจากคำสั่งลัดไม่ใช่คำสั่งทางการที่ ChatGPT รองรับโดยตรง ผลลัพธ์ของคำสั่งลัดขึ้นอยู่กับการตีความคำสั่งของ ChatGPT ซึ่งมีโอกาสเราจะไม่ได้ผลลัพธ์อย่างที่คาดหวัง

    เราแก้ไขได้ 2 วิธี:

    1. ใช้คำสั่งแบบละเอียดแทน
    2. สอนให้ ChatGPT รู้คำสั่งลัด

    .

    1️⃣ ใช้คำสั่งแบบละเอียดแทน

    วิธีแรก คือ งดใช้คำสั่งลัด และใช้คำสั่งแบบละเอียดแทน

    ตัวอย่าง:

    แทนที่จะพิมพ์:

    /expert บอกหน่อยว่า AI คืออะไร

    แล้วหวังว่า ChatGPT จะสวมบทบาทเป็นผู้เชี่ยวชาญเพื่อตอบคำถามเรา ให้เราบอกความต้องการกับ ChatGPT แทน:

    คุณ คือ ผู้เชี่ยวชาญด้าน AI ซึ่งมีประสบการณ์ในสายนี้มากกว่า 10 ปี และสามารถอธิบายอะไรยาก ๆ ให้คนทั่วไปเข้าใจได้ ช่วยบอกหน่อยว่า AI คืออะไร

    จะเห็นว่าคำสั่งแบบละเอียดกำหนดแนวทางการตอบคำถามที่ชัดเจนกว่าคำสั่งลัด ทำให้มีโอกาสที่ผลลัพธ์ที่ได้จะตรงกับความต้องการของเรามากขึ้น

    เราควรใช้คำสั่งแบบละเอียดเมื่อต้องการผลลัพธ์ที่มีความแม่นยำ หรือเมื่อเรามีความต้องการที่ชัดเจนอยู่แล้ว

    .

    2️⃣ สอน ChatGPT ให้รู้คำสั่งลัด

    ถ้าเรายังอยากใช้คำสั่งลัด โดยที่ประสิทธิภาพยังเทียบเท่ากับคำสั่งแบบละเอียด เราสามารถใช้วิธีที่ 2 ได้

    นั่นคือ สอนให้ ChatGPT รู้จักคำสั่งลัด

    การสอนให้ ChatGPT รู้จักคำสั่งลัด จะต้องทำก่อนที่เราจะเรียกใช้คำสั่งลัด

    ตัวอย่าง:

    ก่อนจะใช้ /human ให้พิมพ์บอก ChatGPT ว่า เวลาเจอคำสั่งนี้ ให้ทำอะไร:

    เวลาเจอคำสั่ง “/human” ให้เขียนคำตอบแบบมนุษย์เขียน คือ (1) ห้ามใช้ “—“ (2) ให้ใส่รายละเอียดที่จับต้องได้ เช่น ถ้าบรรยายฉากเที่ยว ให้เขียนถึงลมที่พัดผ่านตัว กลิ่นอายของพื้นหญ้าหรือทะเล ความหนาวหรือความร้อนที่รู้สึกในตอนนั้น และ (3) ห้ามจัดฟอร์แมตเป็นข้อ ๆ แต่ให้เขียนเป็นย่อหน้าเท่านั้น

    จากนั้น ให้คำสั่งลัดตามที่ต้องการ:

    /human เขียนฉากสั้น ๆ ที่ตัวเอกยืนดูพระอาทิตย์ตกอยู่ริมชายหาดในฤดูร้อน

    จุดที่เราจะสอน ChatGPT:

    เราสอนคำสั่งลัดให้ ChatGPT ได้ 3 ระดับ ซึ่งจะส่งผลต่อการใช้งานที่ต่างกัน:

    ระดับขอบเขตการใช้งานการตั้งค่า
    แชทแชทนั้น ๆสอนก่อนเรียกใช้คำสั่งในแชทนั้น
    โปรเจกต์ทุกแชทในโปรเจกต์นั้น ๆไปที่โปรเจกต์แล้วกด Project settings > Instructions
    บัญชีทุกแชทในบัญชีของเราSettings > Personalisation > Custom instructions

    ตัวอย่างการสอนในระดับแชท:

    Teaching ChatGPT to recognise the slash commands in one chat.

    ตัวอย่างการสอนในระดับโปรเจกต์ (Project settings > Instructions):

    Teaching ChatGPT to recognise the slash commands in a project.

    ตัวอย่างการสอนในระดับบัญชี (Settings > Personalisation > Custom instructions):

    Teaching ChatGPT to recognise the slash commands across chats in your account.

    👍 รวมคำสั่งลัดยอดนิยม

    สำหรับคนที่ต้องการเริ่มใช้คำสั่งลัด ผมรวม 13 คำสั่งลัดที่จัดได้เป็น 5 กลุ่มมาให้ดังนี้:

    1. คำสั่งสำหรับอธิบาย (3 คำสั่ง)
    2. คำสั่งสำหรับเปลี่ยนมุมมองของ ChatGPT (2 คำสั่ง)
    3. คำสั่งสำหรับคิดวิเคราะห์ (4 คำสั่ง)
    4. คำสั่งสำหรับจัดรูปแบบคำตอบ (3 คำสั่ง)
    5. คำสั่งสำหรับระดมความคิด (1 คำสั่ง)

    .

    1️⃣ กลุ่มที่ 1. คำสั่งสำหรับอธิบาย

    👉 คำสั่ง 1. /eli5:

    ย่อมาจาก “Explain like I’m 5”

    สั่งให้ ChatGPT อธิบายให้เรา เหมือนกับเราเป็นเด็ก 5 ขวบ (เราเปลี่ยนตัวเลขได้ตามต้องการ)

    ตัวอย่าง:

    /eli5 AI คืออะไร?

    👉 คำสั่ง 2. /simple:

    สั่งให้ ChatGPT อธิบายให้เราเข้าใจง่ายที่สุด

    ตัวอย่าง:

    /simple AI คืออะไร?

    👉 คำสั่ง 3. /tldr:

    ย่อมาจาก “Too long; didn’t read”

    สั่งให้ ChatGPT อธิบายแบบเน้นใจความสำคัญ (เอาแต่เนื้อ ไม่เอาน้ำ)

    ใช้เวลาเราขี้เกียจอ่าน

    ตัวอย่าง:

    /tldr สถานการณ์น้ำท่วมในไทย

    .

    2️⃣ กลุ่มที่ 2. คำสั่งเปลี่ยนมุมมองของ ChatGPT

    👉 คำสั่ง 4. /human:

    สั่งให้ ChatGPT เขียนคำตอบเหมือนมนุษย์เขียน

    ตัวอย่าง:

    /human เขียนง้อแฟนให้หน่อย

    👉 คำสั่ง 5. /expert:

    สั่งให้ ChatGPT ตอบคำถามผ่านมุมมองของผู้เชี่ยวชาญ

    ตัวอย่าง:

    /expert ปัญหาโลกร้อนจริง ๆ เกิดจากอะไร

    .

    3️⃣ กลุ่มที่ 3. คำสั่งสำหรับคิดวิเคราะห์

    👉 คำสั่ง 6. /critic:

    สั่งให้ ChatGPT วิพากษ์วิจารณ์เรื่องที่เราต้องการอย่างรอบด้าน

    ตัวอย่าง:

    /critic

    👉 คำสั่ง 7. /pros-cons:

    สั่งให้ ChatGPT เขียนข้อดีข้อเสีย

    ตัวอย่าง:

    /pros-cons การใช้โซเชียลมีเดีย

    👉 คำสั่ง 8. /compare:

    สั่งให้ ChatGPT เปรียบเทียบสิ่งที่เราต้องการ

    ตัวอย่าง:

    /compare ทำงานในไทยกับทำงานในต่างประเทศ

    👉 คำสั่ง 9. /deviladvocate:

    สั่งให้ ChatGPT เถียงกับเรา เพื่อหามุมมองใหม่ ๆ

    ตัวอย่าง:

    /deviladvocate ChatGPT ดีที่สุด

    .

    4️⃣ กลุ่มที่ 4. คำสั่งสำหรับจัดรูปแบบคำตอบ

    👉 คำสั่ง 10. /bullets:

    สั่งให้ ChatGPT ส่งคำตอบกลับมาเป็นข้อ ๆ

    ตัวอย่าง:

    /bullets ที่เที่ยวในเชียงใหม่

    👉 คำสั่ง 11. /table:

    สั่งให้ ChatGPT ส่งคำตอบกลับมาเป็นตาราง

    ตัวอย่าง:

    /table ที่เที่ยวในเชียงใหม่

    👉 คำสั่ง 12. /step-by-step:

    สั่งให้ ChatGPT ส่งคำตอบมาเป็นขั้นตอน

    ตัวอย่าง:

    /step-by-step การทำไข่เจียวให้อร่อย

    .

    5️⃣ กลุ่มที่ 5. คำสั่งสำหรับระดมความคิด

    👉 คำสั่ง 13. /brainstorm:

    สั่งให้ ChatGPT ช่วยคิดไอเดีย

    ตัวอย่าง:

    /brainstorm เย็นนี้กินอะไรดี


    🫵 หลังจบบทความนี้

    หลังอ่านบทความนี้แล้ว มาลองใช้คำสั่งลัดใน ChatGPT กันนะครับ


    📄 อ้างอิง

  • เรื่องเล่าจากอังกฤษ: ทริป 2 ชีวิตคู่ขนาน, ตอน 2/5. Going Up North

    เรื่องเล่าจากอังกฤษ: ทริป 2 ชีวิตคู่ขนาน, ตอน 2/5. Going Up North

    ในปี 2018–2019 ผมไปเรียนต่อที่อังกฤษคนเดียว

    ในปี 2026 ผมกลับไปที่อังกฤษอีกครั้ง พร้อมกับพ่อแม่และน้อง

    และต่อไปนี้ คือ เรื่องราวชีวิตของผมใน 2 ช่วงชีวิตนี้ ที่เดินคู่ขนานกันไป

    เรื่องราวในปัจจุบันที่เราสร้างขึ้นใหม่

    และอดีตที่ย้อนกลับมาพร้อมกับสถานที่ที่เราเคยไปเยือนหรือคนที่เราเคยได้เจอ

    บทความนี้เป็นตอนที่ 2/5 ตอน Going Up North ซึ่งเล่าเรื่องราวการเดินทางจาก Windsor ไปถึง Glasgow ทั้งในอดีตและปัจจุบัน



    ⏮️ Previously on …

    อ่านบทความตอนที่แล้ว:

    อ่านตอนต่อไป:

    • UK Again, Ep 3 (coming soon)
    • UK Again, Ep 4 (coming soon)
    • UK Again, Ep 5 (coming soon)

    🚶 From Cold Sun Walk

    ครั้งหนึ่ง ผมเคยเดินไปตามถนนใน London ท่ามกลางลมหนาวที่พัดผ่านและแสงแดดอันอบอุ่นที่สาดส่องจากท้องฟ้าฤดูหนาว

    ผมตั้งชื่อเพลย์ลิสต์ของวันนั้นว่า Cold Sun Walk

    และนี่คือเพลงหนึ่งในเพลย์ลิสต์นั้น

    Note: ดูเพลงทั้งหมดในเพลย์ลิสต์


    🚙 Day 02. Windsor & Bath

    🗓️ Date: Sunday 31 May 2026

    .

    ☀️ (1) Early Start

    📆 2026
    📍 Lingfield, Surrey

    โรงแรมในตอนเช้าเงียบสงบกว่าเมื่อวานเย็นที่เรามาถึง พ่อบอกว่า ข้างหลังโรงแรมเป็นสนามแข่งม้า และเมื่อวานมีการแข่งขันกัน เลยมีคนเยอะ

    หลังเข้าห้องน้ำและกินของที่ซื้อมาจาก Tesco เมื่อวาน ซึ่งสำหรับผมเป็นแซนด์วิช นมอัลมอนด์ สตรอว์เบอร์รี และไก่ทอดจาก Domino ที่เหลืออยู่ เราก็เช็กเอาท์ออกจากโรงแรม

    .

    พ่อแวะที่ปั๊มแห่งหนึ่งไม่ไกลจากโรงแรม เพื่อเติมน้ำมัน

    พอเติมเสร็จแล้ว ยังไม่ทันตั้ง Google Maps พ่อก็ขับออกจากปั๊ม

    “จะรีบไปไหน?” แม่พูด “ไม่รอให้ตั้ง Maps ก่อน”

    “ผิดทาง” ธีร์พูดตอนที่เรากำลังวนอยู่ในวงเวียนที่ 2 หลังออกจากปั๊ม “กลับไปก่อน”

    พ่อวนกลับไปทางเดิม ในวงเวียนแรก พ่อจะเอารถเข้าจอดข้างทาง

    “ตรงไปก่อน” ธีร์พูด “จอดในวงเวียนมันอันตราย”

    ยังไม่ทันขาดคำ เสียงแตรดังมาจากรถที่ขับตามหลังมา ตอนที่รถคันนั้นวิ่งผ่านเราไป ชายสูงอายุที่นั่งอยู่ข้างในหันมาทางเราพร้อมกับหน้านิ่วคิ้วขมวด

    “บอกแล้วมันอันตราย” ธีร์พูด “พูดแล้วฟังบ้างสิ”

    พ่อไม่พูดอะไร ขับรถต่อไปตามทางใน Google Maps

    .

    ⛰️ (2) Box Hill

    📆 2026
    📍 Box Hill, Surrey

    พอหาที่จอดในลานจอดรถที่ Box Hill ได้แล้ว เราก็เดินไปที่ Visitor Centre ซึ่งมีคนอยู่หนาแน่น เพื่อจะเข้าห้องน้ำ

    เสร็จแล้ว เราเดินกลับไปที่ลานจอดรถ ซึ่งมีซุ้มประชาสัมพันธ์และป้ายบอกเส้นทางเดินชมธรรมชาติอยู่

    Box Hill map
    แผนที่ทางเดิน Box Hill

    เหมือนกับ Seven Sisters เมื่อวาน ผมอยากจะเดินเส้นที่ยาวที่สุดเพื่อจะได้ชมธรรมชาติอย่างเต็มที่ แต่ยิ่งอยู่นาน เราก็ยิ่งต้องจ่ายค่าที่จอดมากขึ้น และอีกอย่าง เรามีที่อื่นที่ต้องไปต่ออีก

    เราเลือกเส้นที่สั้นที่สุด ซึ่งเราข้ามถนนเส้นเล็ก ๆ กลับไปที่ Visitor Centre และเดินเลยขึ้นไปเพื่อจะไปที่จุดเริ่มต้นทางเดิน

    จากริมถนนลาดยาง เราเดินเลี้ยวเข้ามาบนทางเดินดินที่มีหญ้าขึ้น ไปไม่ไกลก็เห็น Box Hill Fort ซึ่งเป็นฐานบัญชาการเก่าจากสมัยศตวรรษที่ 19

    Box Hill Fort
    Box Hill Fort

    ถัดจากจุดนั้นไป เราเดินเข้ามาในป่าที่อากาศร่มรื่นและเย็นสดชื่น ที่ทางแยกหนึ่ง เราเลี้ยวผิดทางและเกือบจะหลงไปไกลถ้าใครสักคนไม่เรียกให้คนอื่นกลับมาอีกทาง

    เส้นทางนี้พาเราเดินผ่าน หลุมศพของ Major Peter Labielliere ซึ่งฝังกลับหัวตามคำขอของเจ้าตัว เลยจากจุดนั้น ป่าด้านขวามือเปิดออก เผยให้เห็นวิวของเนินเขาสีเขียวและตัวเมือง Dorking ที่อยู่ข้างล่าง

    Dorking as seen from Box Hill
    วิวเมือง Dorking จาก Box Hill

    เดินต่อมาไม่นานก็ถึงจุดชมวิวซึ่งเราขับผ่านมาตอนที่มาถึง Box Hill รวมทั้งหมด เราใช้เวลาเดินแค่ 10 กว่านาทีเท่านั้น

    Shi and his family at Box Hill
    ผม พ่อแม่ และธีร์ที่ Box Hill

    เราเดินกลับไปที่ Visitor Centre และสั่งไอศกรีม 1 ถ้วยมาแชร์กัน ก่อนจะขึ้นรถเพื่อไปที่ต่อไป

    Ice cream at Box Hill
    ไอศกรีมที่ Box Hill

    .

    🥙 (2) Lunch

    📆 2026
    📍 Old Windsor

    ยังไม่ถึง Windsor ก็เที่ยงกว่าแล้ว เพื่อเลี่ยงที่ที่คนพลุกพล่าน เราตัดสินใจหาร้านข้างทางก่อนถึง Windsor เพื่อกินข้าวกลางวันกัน

    ธีร์ค้นใน Google Maps แล้วก็พาเรามาที่ร้าน Harvester ใน Old Windsor ซึ่งตั้งอยู่ติดกับแม่น้ำ Thames ตอนเรามาถึงที่จอดรถเล็ก ๆ มีรถจอดอยู่แล้ว 4–5 คัน และยังมีที่ว่างให้จอดอีกเยอะ

    Harvester, Old Windsor
    ร้านอาหาร Harvester

    พอเราเดินเข้าไปในร้าน พนักงานก็ขอให้เรากรอกเลขทะเบียนรถลงในระบบ และถามว่าเราอยากจะนั่งข้างในหรือข้างนอก ผมอยากจะนั่งข้างใน แต่เราเลือกนั่งข้างนอกกัน เพราะวันนี้อากาศดี ท้องฟ้าแจ่มใส มีแดดออก และอากาศเย็นกำลังดี

    เราถือเมนูที่พนักงานยื่นให้มานั่งที่โต๊ะ เลือกอยู่นานกว่าจะได้สั่ง เราเลือกจานหลัก 2 จาน เป็น fish and chips 1 จาน และสเต็ก 1 จาน และเซตเล็ก 1 ชุด ซึ่งเลือกอาหารได้ 3 อย่าง ระหว่างรออาหาร เราเดินไปตักสลัดและเครื่องดื่มจากสลัดบาร์ข้างในร้าน

    จานอาหารที่มาถึงขนาดใหญ่กว่าที่ผมคิด และพอที่จะกินกัน 4 คนแบบเหลือ ๆ

    Food at Harvester, Old Windsor
    อาหารที่ Harvester
    Food at Harvester, Old Windsor
    อาหารที่ Harvester
    Food at Harvester, Old Windsor
    อาหารที่ Harvester

    ราคาอาหารทั้งหมดอยู่ที่ 58 ปอนด์ ซึ่งคุ้มกับครอบครัว 4 คน และอาหารที่อร่อยถูกปาก

    Shi and his family at Harvester, Old Windsor
    ผม พ่อแม่ และธีร์ที่ Harvester

    .

    🏰 (3) Windsor

    📆 2026
    📍 Windsor

    ใช้เวลาไม่นาน เราก็มาถึง Windsor และจอดรถใน Windsor Royal Shopping Centre

    Parking at Windsor Royal Shopping Centre
    ที่จอดรถที่ Windsor Royal Shopping Centre

    “คุณช่วยเลื่อนรถหน่อยได้ไหม? ผมเข้าไม่ได้” เจ้าของรถข้าง ๆ พูดตอนที่พ่อเพิ่งจะจอดรถเสร็จ

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

    จากที่จอดรถ เราเดินขึ้นบันไดไปที่ชั้น G และออกเดินมาทางอาคารที่ดูเหมือนสถานีรถไฟ เพื่อจะไปที่ Windsor Castle

    Windsor Royal Shopping Centre
    Windsor Royal Shopping Centre

    แม้จะนานมาแล้ว และบรรยากาศแตกต่างกันออกไป แต่ผมก็จำได้ว่าเคยมาที่นี่แล้ว

    Windsor Royal Shopping Centre
    Windsor Royal Shopping Centre

    .

    📆 2018
    📍 Windsor

    ผมรู้จักทัวร์นี้จากโบรชัวร์ที่วางแจกอยู่ใน Ifor Evans ซึ่งเป็นหอของผม ทัวร์นี้เป็นแบบเช้า-เย็นกลับ รถออกจาก King’s Cross และจะพาเราไป 3 ที่ คือ Windsor, Bath, และ Stonehenge

    ผมชวนก้านว้านซึ่งเป็นเพื่อนสมัย ป.ตรี ที่มาเรียนอังกฤษไปด้วยกัน ตอนที่เราขึ้นรถที่ King’s Cross ไกด์ซึ่งเป็นชายชาวอังกฤษที่เกษียณแล้วบอกเราว่า ให้จ่ายเงินทีหลังได้ ถ้าผมจำไม่ผิด ทัวร์รับเงินสดเท่านั้น แต่เรามีเงินติดตัวไม่พอ และต้องรอกดเงินเมื่อไปถึง Windsor

    Windsor, 2018
    Windsor (2018)

    ที่ Windsor ท้องฟ้ามืดครึ้มและมีฝนตกลงมาปรอย ๆ ตลอดเวลา ไกด์ปล่อยพวกเราลง ให้เที่ยวชมเมืองภายในเวลาที่กำหนด ผมจำได้ว่าก้านว้านชวนผมมากินข้าวที่ร้านหนึ่งใน Windsor Royal Shopping Centre ผมจำได้ว่าก้านว้านนัดเจอเพื่อนด้วย แต่ผมไม่แน่ใจว่าเป็นที่ Windsor หรือที่ Bath กันแน่

    หลังทานข้าว ผมก็พยายามหาตู้กดเงิน ซึ่งไม่ได้ง่ายอย่างที่คิด เราเดินฝ่าฝนไปจนถึงตู้หนึ่งที่อยู่ไม่ไกลจาก Windsor Castle นัก พอเสียบบัตรเข้าไป ตู้ไม่ยอมให้เรากดเงินออกมา ทั้งผมและก้านว้านใช้ธนาคาร Barclays ทั้งคู่ และลองแล้วไม่มีใครกดเงินได้เลย

    “พวกคุณอย่าลืมจ่ายเงินนะ” ไกด์ทักเมื่อเรากลับไปขึ้นรถ “ถ้าไม่จ่าย ผมน่าจะต้องทิ้งพวกคุณไว้กลางทาง”

    ผมเข้าใจว่าเป็นการพูดติดตลกของคนอังกฤษ แต่ตอนนั้น ผมยังไม่เข้าใจบริบทขนาดนั้น และเข้าใจว่าทัวร์จะทิ้งเราไว้ข้างทางจริง ๆ ถ้าเราไม่มีเงินมาจ่ายตอนไปถึง Bath

    .

    📆 2026
    📍 Windsor

    ก่อนมาถึง Windsor ก้านว้านเพิ่งจะแจ้งข่าวดีในแชทกลุ่มว่าจะแต่งงานปลายปีนี้

    ครั้งก่อน ทั้งฝนตกและรีบหาตู้กดเงิน ทำให้ผมไม่ได้เดินดู Windsor Castle ขนาดนั้น และไม่คิดว่าปราสาทจะใหญ่กว่าที่ผมจำได้

    Windsor Castle
    Windsor Castle (2026)
    Windsor Castle, 2018

    เราเดินถ่ายรูปปราสาทไปจนถึงประตูที่ต้องซื้อตั๋วถึงจะผ่านเข้าไปได้

    Windsor Castle
    Windsor Castle (2026)
    Windsor Castle
    ผม พ่อแม่ และธีร์ที่ Windsor Castle
    Windsor Castle
    Windsor Castle (2026)

    เราเดินย้อนกลับมา และเดินไปตาม Peascod Street ซึ่งมีผู้คนอยู่เยอะไม่แพ้กับที่ Windsor Castle

    Peascod Street, Windsor
    Peascod Street

    “ขอเข้าไปดูแป๊บหนึ่ง” ผมบอกคนอื่นแล้วเดินเข้าไปใน Waterstones คนเดียว

    Waterstones เป็นร้านหนังสือโปรดของผม เพราะมีสาขาอยู่หลายที่ หนังสือเล่มแรกที่ผมซื้อเมื่อมาถึงอังกฤษเมื่อ 8 ปีก่อน (Murder on the Orient Express ของ Agatha Christie) และหนังสือที่ผมซื้อไปให้ Lee Child นักเขียนที่ผมชอบเซ็น ก็มาจาก Waterstones ใน Camden Town ซึ่งตอนนี้ปิดทำการไปแล้ว

    Waterstones, Windsor
    Waterstones

    ผมเจอหนังสือ 2 เล่มที่ผมสนใจ คือ A Memory Called Empire ของ Arkady Martine ซึ่งผมรู้จักมานานแล้ว แต่ยังไม่มีโอกาสได้อ่าน และ I Hear A New World ของ Alan Moore

    A Memory Called Empire
    A Memory Called Empire
    I Hear a New World
    I Hear A New World

    ผมกลับออกมามือเปล่า เพราะไม่ได้รู้ว่าจะเก็บหนังสือยังไง เรายังต้องเที่ยวอีกหลายวัน และผมไม่ชอบให้หนังสือเป็นรอยแม้แต่นิดเดียว

    ผมกับพ่อแม่และน้องกลับไปที่ Windsor Royal Shopping Centre ธีร์กับพ่อเดินแยกไปดูหัวรถจักรไอน้ำที่โชว์อยู่ใกล้กับสถานีรถไฟ

    Windsor train
    หัวรถจักรไอน้ำในสถานี Windsor

    ผมตามแม่เข้าไปดูเสื้อผ้าใน Zara แล้วเราก็เดินไปตามพ่อกับธีร์เมื่อเห็นว่ายังไม่กลับมากันสักที

    “แล้วล่ะ?” ธีร์ถามเมื่อเจอกัน

    “เสร็จม๊าแล้ว” ผมพูด ชี้ไปที่ร้าน Miniso ที่ตั้งอยู่แถวนั้น

    “ไม่ได้ซื้ออะไร แค่ดูเฉย ๆ” แม่พูดเมื่อเดินออกมาจากร้าน

    เราเดินผ่านรูปปั้นกระทิงที่ทำจากเหล็ก เมื่อ 8 ปีก่อนผมอาจจะเคยเห็นรูปปั้นนี้และสังเกตชิ้นส่วนเหล็กที่ประกอบขึ้นมาเป็นกระทิงเหมือนกับที่ผมทำในตอนนี้ แต่ผมก็จำไม่ได้แน่ ๆ ว่าใช่ไหม

    Windsor metal bull
    รูปปั้นกระทิงเหล็กที่ Windsor Royal Shopping Centre

    .

    🛁 (4) Bath

    📆 2018
    📍 Bath

    น่าจะเป็นที่ Bath มากกว่าที่ก้านว้านนัดเจอกับเพื่อน เพราะผมจำได้ว่าตอนที่เรากลับไปที่รถ ไกด์ทักเราว่า “คุณได้เพื่อนใหม่ด้วย”

    “เป็นเพื่อนของเขาอีกที” ผมตอบ เขาหมายถึงก้านว้าน แล้วรีบขึ้นรถ เพราะนอกจากฝนจะยังตกไม่หยุดแล้ว ผมกับก้านว้านเป็นคนสุดท้ายที่กลับมาที่รถ

    Terrace Walk, Bath, England
    Terrace Walk, Bath (2018)

    .

    📆 2026
    📍 Bath
    Dad driving to Bath
    ขับรถเข้าสู่เมือง Bath

    เราจอดรถที่ Recreation Ground

    ตอนนั้นเป็นเวลา 5 โมงเย็นแล้ว แต่ท้องฟ้ายังสว่างเหมือนบ่าย 3 อยู่เลย

    จาก Recreation Ground มี 2 ทางที่จะพาเราไปยัง city centre ได้ นั่นคือ ผ่าน North Parade Bridge หรือ Pulteney Bridge

    เราเลือกเดินเลียบแม่น้ำ Avon ไปทาง Pulteney Bridge ซึ่งเป็นแลนด์มาร์กแห่งหนึ่งของ Bath

    Bath, England
    วิวจากริมฝั่ง River Avon
    Pulteney Bridge, Bath, England
    Pulteney Bridge

    เราหยุดถ่ายรูปไปตลอดทาง ระหว่างที่ธีร์กำลังเล็งกล้อง มีชายคนหนึ่งยื่นตัวเข้ามาเพื่อ photobomb อย่างขี้เล่น

    “ขอโทษครับ” ธีร์พูด “ไม่ตลกเลย”

    “ขอโทษที” ชายคนนั้นพูด แล้วเดินจากไป

    “คือยืนเล็งรออยู่” ธีร์อธิบายทีหลัง “แล้วก็พยายามเล็งหลบให้แล้ว ก็ยังเข้ามาอีก”

    Bath, England
    วิวจากริมฝั่ง River Avon
    Mom at River Avon, Bath, England
    แม่ริมฝั่ง River Avon
    Empire Hotel, Bath, England
    The Empire

    .

    เราใช้เวลากว่า 20 นาทีกว่าจะมาถึง Pulteney Bridge และเดินข้ามมาอีกฝั่งได้

    Pulteney Bridge, Bath, England
    บน Pulteney Bridge
    Bath, England
    Bath

    บนถนนที่มองลงไปเห็นแม่น้ำ มีผู้ใหญ่ที่มีรอยสักเต็มตัวและเด็กพิเศษส่งเสียงร้องแหบ ๆ เป็นช่วง ๆ นอกนั้นแล้ว ทุกอย่างดูเงียบสงบ

    River Avon, Bath, England
    Pulteney Bridge

    “ถ้าได้มาเรียนที่นี่น่าจะดี” ผมพูดกับแม่ เพราะ London ไม่ใช่ที่สำหรับคนที่ไม่ชอบความวุ่นวายของเมืองใหญ่อย่างผมเลย แต่ก็ช่วยไม่ได้เพราะมหาวิทยาลัยที่ผมตั้งใจไปเรียนอยู่ที่นั่น

    “ไปทางไหนต่อ?” แม่ถามหลังจากถ่ายรูปหน้า The Empire ซึ่งเป็นตึกสูงที่อยู่ตรงนั้นเสร็จแล้ว

    Empire Hotel, Bath, England
    The Empire

    “ไป The Circle ก่อน” ผมตอบ “แล้วค่อยกลับมาที่ Roman Bath”

    ผมตั้งใจจะเดินไปที่ไกลก่อน เพื่อที่เราจะได้มีเวลาถ่ายรูปพอ ถ้าเราไปที่ใกล้ก่อน เราอาจจะถ่ายรูปเพลินจนไม่มีเวลาจะไปที่ไกล และแม้พระอาทิตย์จะยังอยู่ แต่ก็คล้อยต่ำลงเรื่อย ๆ ทำให้เราต้องรีบทำเวลาถ้าอยากได้รูปถ่ายดี ๆ

    เราเดินไปตามทางที่ Google Maps แนะนำ ผ่านตัวเมือง Bath ที่เงียบสงบในเย็นวันอาทิตย์

    Bath, England
    Bath
    Bath, England
    Bath
    Bath, England
    Bath
    Milsom Street, Bath, England
    Bath

    ตอนมาถึง The Circle พระอาทิตย์ยังไม่ตกดินดี และภาพตึกที่เห็นยังเป็นภาพเดียวกับที่ผมเห็นเมื่อ 8 ปีก่อน ซึ่งผมไม่คิดว่าจะได้กลับมาเห็นอีกครั้ง

    The Circle, Bath, England
    The Circle (2026)
    The Circle, Bath, England, 2018
    The Circle (2018)
    The Circle, Bath, England
    The Circle
    The Circle, Bath, England
    The Circle
    The Circle, Bath, England
    The Circle
    Tee at the Circle, Bath, England
    ธีร์ที่ The Circle

    หลังถ่ายรูปใน The Circle เสร็จ เราก็เดินย้อนกลับไปที่ city centre

    ระหว่างทาง เราเดินผ่านร้านตัดผมที่เมื่อ 8 ปีก่อน เพื่อนของก้านว้านเคยชี้ให้ดู แต่ผมจำไม่ได้ว่าเพื่อนคนนั้นพูดว่าอะไรเกี่ยวกับร้านนี้

    A barbershop in Bath, England
    ร้านตัดผมใน Bath

    “ตรงนี้เหมือนกับ Edinburgh” ผมพูดเมื่อไปถึงทางไปสู่ Roman Baths และ Bath Abbey ซึ่งมีเสาแบบโรมันตั้งอยู่ “เดี๋ยวค่อยดู”

    Bath, England
    Bath
    Bath, England
    Bath Abbey
    Bath, England
    Bath Abbey

    .

    หลังจากถ่ายรูปที่ Roman Baths และ Bath Abbey แล้ว เราก็เดินไปทาง North Parade Bridge เพื่อจะกลับไปที่รถ

    Shi and his family, Bath, England
    ผม พ่อแม่ และธีร์ที่ Bath Abbey

    ระหว่างทาง เราเดินผ่าน Parade Gardens ซึ่งเป็นสวนสาธารณะริมน้ำที่มีคนนั่งและทำกิจกรรมอยู่เต็ม แม้ว่าจะเป็นเวลาหนึ่งทุ่มกว่าแล้ว

    Parade Gardens, Bath, England
    Parade Gardens

    และ Terrace Walk ซึ่งเป็นจุดจอดรถบัส ซึ่งผมกับก้านว้านเคยมาขึ้นรถทัวร์เพื่อไป Stonehenge ซึ่งเป็นจุดหมายสุดท้ายของทัวร์

    Terrace Walk, Bath, England
    Terrace Walk

    เราข้าม North Parade Bridge ซึ่งมองเห็น Pulteney Bridge ที่อยู่อีกฝั่งได้ชัดเจน กลับมาที่ Recreation Ground ซึ่งปิดแล้ว และรถของเราเป็นหนึ่งในไม่กี่คันที่ยังจอดอยู่

    “หา Tesco” พ่อพูดเมื่อทุกคนขึ้นมาบนรถแล้ว

    Pulteney Bridge as seen from North Parade Bridge, Bath, England
    วิว Pulteney Bridge จาก North Parade Bridge

    .

    🥘 (5) Tesco & Hotel

    📆 2026
    📍 Tesco somewhere

    Tesco ที่เรามาถึงเป็นร้านเล็ก ๆ แต่มีขนมและของกินครบครัน

    “ถ้ามีสมาชิกจะได้อีกราคา” พ่อพูด ชี้ไปที่ป้ายราคาซึ่งมี 2 ราคา ราคาหนึ่งสำหรับสมาชิก และอีกราคาสำหรับคนทั่วไป “ลองถามเขาดูว่าเราสมัครได้ไหม”

    ธีร์ลองถามพนักงานตอนที่เราไปจ่ายเงิน

    “เขาบอกว่า สมัครผ่านแอปได้” ธีร์บอก

    เราพยายามหาแอปของ Tesco แต่ก็ไม่เจอเวอร์ชันภาษาอังกฤษ และเมื่อพยายามสมัครก็ติดว่าต้องมีเบอร์โทรและที่อยู่ในอังกฤษ เราเลยล้มเลิกการสมัครไปและจ่ายเงินซื้อของที่อยู่ในตะกร้าในราคาเต็ม

    .

    📆 2026
    📍 Holiday Inn, Swindon

    พอมาถึงโรงแรมและจอดรถได้ พ่อกับธีร์ก็ลงไปเช็กอิน ส่วนผมกับแม่ช่วยกันขนกระเป๋าลงจากรถ

    คืนนี้ เราได้ 2 ห้องแยกกัน พออาบน้ำและเสียบชาร์จแบตเตอรีมือถือไว้แล้ว ผมก็หลับไป

    Holiday Inn, Swindon, England
    ห้องพักที่ Holiday Inn

    🚙 Day 03. Rural England

    🗓️ Date: Monday 01 June 2026

    .

    ☕️ (1) Breakfast

    📆 2026
    📍 Holiday Inn, Swindon

    อาหารเช้าแบบอังกฤษที่โรงแรม ทำให้ผมนึกถึงอาหารเช้าที่ Ifor Evans

    Ifor Evans มีอาหารเช้าและเย็นให้ทุกวันจันทร์ถึงศุกร์ อยู่ที่ว่าเราจะเลือกไปกินไหมเท่านั้น

    ในช่วงแรก ผมยังขยันตื่นก่อนเก้าโมงเพื่อลงไปต่อแถวรับอาหาร ซึ่งอาหารในแต่ละวันไม่ต่างกับอาหารเช้าตอนนี้ คือ มี baked bean, ไข่ดาว, เบคอน, และไส้กรอก

    Breakfast at Holiday Inn, Swindon, England (2026)
    อาหารเช้าที่ Holiday Inn (2026)
    Breakfast at Ifor Evans, London, England (2018)
    อาหารเช้าที่ Ifor Evans (2018)

    ในช่วงแรก ผมนั่งคนเดียว เพราะหลังจากงานเลี้ยงต้อนรับ ผมก็ไม่ได้คุยกับเพื่อนที่ผมเจอในงานอีก (ยกเว้น Baihan ซึ่งผมเจอในงานเลี้ยงต้อนรับคนที่สายจิตวิทยาและภาษา แต่ห้องของ Baihan ที่ Ifor Evans เป็นแบบไม่รวมมื้ออาหาร)

    ไม่นาน ผมก็เริ่มนั่งรวมกับคนอื่น ซึ่งท้าทายกว่าการนั่งคนเดียว เพราะต้องใช้ภาษาอังกฤษตอนที่สมองยังไม่ตื่น คำถามเช่น “How was your sleep?” ทำให้สมองผมทำงานหนักกว่าตอนไปเรียนซะอีก แต่เพราะอย่างนี้ ผมเลยกล้าพูดและรู้สึกว่าพูดอังกฤษได้คล่องขึ้นหลังกลับจากอังกฤษ

    สิ่งที่ต่างออกไปจากอาหารเช้าที่ Ifor Evans คือ ในโรงแรมมีข่าว BBC ให้ดู เคยมีคนบอกผมว่า ถ้าจะดู BBC จะต้องจ่าย subscription ซึ่งน่าจะเป็นสาเหตุหนึ่งที่ Ifor Evans ไม่มีทีวีในโรงอาหาร

    .

    🏠 (2) Bibury

    📆 2026
    📍 Bibury

    หลังอาหารเช้า เราออกจากโรงแรมและขับรถมาที่ Bibury ซึ่งเป็นหมู่บ้านเล็ก ๆ ที่บรรยากาศเหมือนรูปในโปสต์การ์ด เพราะประกอบด้วยบ้านหลังเล็ก ๆ ก่ออิฐสีน้ำตาลอ่อนที่มีน้ำธารไหลผ่าน มีทุ่งหญ้าและต้นไม้ขึ้นแซม เหมือนกับหมู่บ้านผุดขึ้นกลางธรรมชาติด้วยตัวเอง

    Bibury, England
    Bibury
    Bibury, England
    Bibury
    Bibury, England
    Bibury

    เราจอดรถไว้บนถนนข้างลำธาร ซึ่งดูเหมือนจะจัดไว้ให้กับนักท่องเที่ยวโดยเฉพาะ ที่จอดของเราเป็นที่สุดท้ายพอดี ถ้ามาช้ากว่านี้ เราน่าจะต้องไปจอดที่อื่น

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

    “ขอโทษนะครับ ผมเห็นคุณใช้กล้องตัวนี้ คุณใช้มานานหรือยัง?”

    ผมยืนฟังบทสนทนา แต่ตามไม่ทันเพราะไม่ใช่คนเล่นกล้อง เท่าที่ฟัง ผู้ชายคนนี้มาเที่ยวที่นี่ทุกปี เป็นเวลากว่า 10 ปีแล้ว ผมไม่แปลกใจ เพราะที่นี่สวยงามและเงียบสงบมาก

    “ผมขอตัวก่อน” ธีร์พูดหลังจากคุยกันมาพักใหญ่ “โชคดีนะครับ”

    “คิดว่าเขาเป็นคนที่ไหน?” ธีร์ถามหลังจากเดินห่างออกมา เพื่อไปหาพ่อแม่ที่ยืนถ่ายรูปบ้านข้างหน้า

    “ตอนแรกคิดว่าเป็นคนฮ่องกง” ผมตอบ เพราะเพื่อนที่ผมยังติดต่ออยู่ด้วยมาจากที่นั่น “แต่ก็ไม่แน่ใจ เห็นบอกราคากล้องเป็น Singaporean Dollar แต่ก็มีพูดถึง Pinang กับออสเตรเลีย”

    “นั่นดิ”

    “หรือเขาจะเป็นคนสิงคโปร์ที่ไปเที่ยวมาเลเซียกับออสเตรเลีย” ผมถาม พยายามเชื่อมโยงข้อมูลทั้งหมดที่มีเข้าด้วยกัน

    Bibury, England
    Bibury

    ตอนนี้ คนเริ่มเยอะขึ้น เพราะนักท่องเที่ยวเริ่มทยอยมาถึงกัน ในตอนแรก เราจะเดินเลียบลำธารกลับไปยังจุดจอดรถเหมือนกับคนอื่น ๆ แต่เราเลือกเดินขึ้นเนินไปตามทางลูกรังแทน

    Bibury, England
    Bibury

    ข้างบนมีบ้านแบบเดียวกับข้างล่าง แต่ขนาดใหญ่กว่าและดูเหมือนจะใช้งานอยู่ แตกต่างกับบ้านข้างล่างที่ไม่แน่ใจว่ายังมีคนอยู่หรือมีไว้ให้นักท่องเที่ยวดูเท่านั้น ข้างบนสุดเป็นวงเวียนที่มีบ้าน 4 หลังเรียงกันเป็นทางตัน ทุกบ้านติดป้าย “Private” กันไม่ให้นักท่องเที่ยวเข้าไปข้างในรั้ว มีบ้านหลังหนึ่งประกาศขายอยู่ ผมสงสัยว่าราคาขายเสนออยู่ที่เท่าไร และใครที่จะซื้อบ้านหลังนี้ไป

    Bibury, England
    Bibury
    A house for sale in Bibury, England
    บ้านที่ประกาศขายใน Bibury

    เราเดินย้อนกลับลงมา แล้วเดินเลียบลำธารกลับไปยังที่จอดรถ ตอนที่เราขึ้นรถ ฝนเริ่มลงเม็ดปรอย ๆ

    “จะเดินต่อไหม?” ธีร์ถาม

    “ข้างหน้ามีอะไร?” แม่ถามกลับ

    “เป็นร้านกาแฟ” ธีร์บอกตามที่คนฮ่องกง/สิงคโปร์/มาเลเซีย/ออสเตรเลียบอก

    “เราไม่ได้จะซื้ออะไรอยู่แล้ว” ผมพูด “ไปที่ต่อไปดีกว่า”

    A duck in Bibury, England
    เป็ดเล่นน้ำใน Bibury

    .

    🏡 (3) Bourton-on-the-Water

    📆 2026
    📍 Bourton-on-the-Water

    สำหรับผม Bourton-on-the-Water เป็นเหมือน Bibury ที่ขยายใหญ่ขึ้น และมีความเป็นเมืองมากขึ้น บ้านเรือนเป็นตึกก่ออิฐขนาดไม่เกิน 2 ชั้น และมีลำธารตัดผ่าน แต่จำนวนต้นไม้ใบหญ้าลดลง ถูกแทนที่ด้วยอาคารและที่จอดรถ และมีผู้คนอยู่พลุกพล่านมากกว่าใน Bibury

    ตอนแรก เราจะจอดรถที่ Coop ซึ่งอยู่ห่างจากจุดที่เราตั้งใจจะมาเที่ยวไม่ไกลมาก แต่เมื่อเข้าไปในร้านและไม่รู้จะซื้ออะไร เราก็ขับออกมาและได้ที่จอดรถในลานจอดที่ดูเหมือนจะจัดไว้รองรับนักท่องเที่ยวอยู่แล้ว

    Coop in Bourton-on-the-Water, England
    Co-Op ที่ Bourton-on-the-Water

    หลังจ่ายค่าจอดรถแล้ว เราก็เดินไปตามซอยเพื่อไปที่ลำธาร ซึ่งเป็นจุดท่องเที่ยวของเมือง น้ำในลำธารใสแจ๋ว มองเห็นพื้นลำธารได้ มีเป็ดว่ายอยู่เป็นระยะ ๆ และเด็กที่เป็นนักท่องเที่ยวหลายคนอดใจไม่ไหวเอามือจุ่มน้ำใส ๆ เล่นกันอย่างสนุกสนาน

    Bourton-on-the-Water, England
    Bourton-on-the-Water

    เราเดินกันไปจนถึงร้านขายของฝากแห่งหนึ่ง แม่เห็นของฝากที่ทำเป็นรูปตู้โทรศัพท์สีแดงที่เป็นเอกลักษณ์ของอังกฤษก็รีบซื้อไว้ก่อน เพราะราคาไม่แพงเกินไป ใกล้ ๆ จุดนั้นมีร้านอาหารที่มี fish and chips ขายอยู่ ผมอยากจะเข้าไปลอง แต่ก็ยังไม่ได้รู้สึกหิวมากขนาดนั้น เราเดินกลับมาที่รถกัน

    Bourton-on-the-Water, England
    Bourton-on-the-Water
    Bourton-on-the-Water, England
    Bourton-on-the-Water
    Bourton-on-the-Water, England
    Bourton-on-the-Water

    ในที่จอดรถมีห้องน้ำแบบจ่ายเงินอยู่ ข้างในเป็นห้องแคบ ๆ ที่มีโถส้วมและอ่างล้างมือขนาดเล็ก ระหว่างที่ผมฉี่อยู่ มีคนเปิดประตูเข้ามา

    “ขอโทษที”

    พอผมออกมาก็เจอชาวต่างชาติกลุ่มหนึ่งยืนรออยู่ข้างหน้า

    “ขอโทษที ผมเข้าไปแล้วไม่ได้ล็อกประตู” ผมพูด แม้ว่าจะไม่แน่ใจว่า มีที่ล็อกหรือเปล่า เพราะผมเข้าใจว่า ถ้าจ่ายเงินแล้วเข้าไปแล้ว คนข้างนอกจะเปิดเข้าไปไม่ได้อีก

    “จริง ๆ เราจ่ายครั้งเดียวก็ได้” แม่พูดตอนที่ผมไปถึงรถ

    “มันไม่ได้ต้องจ่ายรายคนหรอ?” ผมถาม

    “เขาก็ทำกัน” แม่หมายถึงกลุ่มชาวต่างชาติที่ผมเจอ ซึ่งเรากำลังขับผ่านไปในตอนนั้น และเห็นผลัดกันเข้าห้อง เมื่อคนที่เข้าเสร็จแล้วก็เปิดประตูรอให้คนถัดไปเข้าต่อ

    ผมไม่แน่ใจว่าหลักการคือยังไง แต่คิดว่าโดยทั่วไป เราน่าจะต้องจ่ายเงิน 1 ครั้งต่อ 1 คน

    .

    ✍️ (4) Stratford-upon-Avon

    📆 2026
    📍 Stow-on-the-Wold

    Stow-on-the-Wold เป็นจุดหมายต่อไป

    “เราจะลงไหม?” แม่ถามเมื่อมาถึงเมืองและกำลังมองหาที่จอดรถกัน

    “มันมีอะไรบ้าง?” ผมถาม

    “ก็เหมือน ๆ ที่ผ่านมา”

    Stow-on-the-Wold มีบรรยากาศไม่ต่างกับ Bibury และ Bourton-on-the-Water นัก ด้วยอาคารตึก ๆ ก่ออิฐสีน้ำตาลอ่อน จะขาดไปก็แค่ลำธารที่ตัดผ่านเมืองเท่านั้น

    “เฉย ๆ” ผมตอบ

    “ไปที่ต่อไปเลยก็ได้” ธีร์เสริม

    .

    📆 2026
    📍 Stratford-upon-Avon

    หลังจากอยู่ในเมืองเล็ก ๆ มาทั้งวัน Stratford-upon-Avon ก็ดูเป็นเมืองใหญ่เลยทีเดียว

    เราจอดรถที่ Recreation Ground ซึ่งอยู่อีกฝั่งแม่น้ำของจุดที่เรากำลังจะไปเที่ยว

    ตอนกำลังจ่ายค่าที่จอดรถ มีหญิงสูงอายุคนหนึ่งเดินมาต่อแถว และถามว่าเราต้องการความช่วยเหลือไหม

    “เรากำลังคิดว่าจะอยู่นานขนาดไหน” ธีร์ตอบ “ปกติที่ประเทศเราไม่ต้องจ่ายก่อน แต่จ่ายตอนออก”

    ผมจำไม่ได้แล้วว่าผู้หญิงคนนั้นตอบว่าอะไร

    เราจ่ายเงินเสร็จก็เอาตั๋วมาวางไว้หน้ารถ แล้วก็ออกเดินเลียบแม่น้ำ Avon และข้ามสะพานไปยังอีกฝั่ง

    Ferris wheel in Stratford-upon-Avon, England
    Recreation Ground ที่ Stratford-upon-Avon

    มาถึงฝั่งตรงข้าม เราหยุดเพื่อยืนดูผู้หญิง 2 คนเปิดประตูระบายน้ำ เพื่อนำเรือบ้านออกไปยังแม่น้ำที่ระดับน้ำต่างกับคลองที่เรือจอดอยู่

    พ้นจากสะพานมาเป็น Bancroft Garden ซึ่งมีผู้คนอยู่เยอะ หลายคนใส่ชุดนักเรียน ซึ่งผมเดาว่าโรงเรียนเพิ่งจะเลิกเรียนกัน

    “ป๊าไปไหนแล้ว?” ผมถาม เมื่อไม่เห็นพ่อแล้ว

    “ไม่รู้เขา” แม่ตอบ

    ผมจำไม่ได้ว่าธีร์เดินแยกไปอีกคนเมื่อไร แต่ผมเดินตามแม่ไปที่ห้องน้ำสาธารณะ ซึ่ง Google Maps บอกว่าอยู่ตรงข้ามกับสวน พอเราไปถึง ก็เจอว่าห้องน้ำปิดปรับปรุง

    “ปิดอีก” แม่พูด

    เพราะไม่รู้จะไปทางไหนต่อ เราเดินเลียบถนนไปตรงถึง McDonald’s ซึ่งผมชวนแม่เข้าไป เพราะคิดว่าน่าจะมีห้องน้ำให้เข้า

    ข้างในร้านใหญ่โตกว่าที่ผมคิด อาจจะเป็นเพราะประตูที่เราเข้ามาเป็นประตูด้านข้าง ไม่ใช่ทางเข้าหลัก ทำให้ข้างนอกดูเหมือนเป็นร้านเล็ก ๆ

    ข้างในร้านแบ่งพื้นที่นั่งออกเป็น 2 ส่วน โดยมีเคาน์เตอร์สั่งอาหารคั่นกลาง เลยจากเคาน์เตอร์ไป มีบันไดที่พาขึ้นไปชั้น 2 และห้องน้ำซึ่งอยู่ชั้นบนสุด

    “จะกินอะไรไหม?” ผมถามแม่เมื่อเข้าห้องน้ำกันเสร็จแล้ว

    เรากดสั่งอาหารจากเครื่องสั่งด้วยตัวเองและเลือกให้พนักงานมาเสิร์ฟที่โต๊ะ ธีร์กับพ่อตามมาสมทบที่ร้าน

    McDonald's in Stratford-upon-Avon, England
    เครื่องสั่งอาหารที่ McDonald’s
    McDonald's in Stratford-upon-Avon, England
    เบอร์เกอร์ที่ McDonald’s

    “ทานให้อร่อยครับ” พนักงานพูดตอนที่มาเสิร์ฟอาหารที่โต๊ะ

    .

    พอออกจาก McDonald’s เรามุ่งหน้าไปที่ Henley Street

    ระหว่างทางเราเดินผ่าน Barclays ซึ่งเป็นธนาคารที่ผมใช้ตอนเรียนอยู่ที่นี่ และทำให้ผมนึกถึงครั้งสุดท้ายที่ไปธนาคารเมื่อ 7 ปีก่อน

    .

    📆 2019
    📍 Camden Town, London

    ตอนนั้น ผมไปเพื่อปิดบัญชีธนาคารก่อนที่จะกลับเมืองไทย

    “คุณอยากจะเก็บบัญชีไว้ไหม” พนักงานที่รับเรื่องถาม “ถึงคุณจะอยู่ต่างประเทศก็ยังใช้ได้”

    ความคิดนั้นดูเข้าท่า ถ้าเก็บบัญชีไว้ ผมก็จะได้ดอกเบี้ยเงินเก็บเรื่อย ๆ แต่ผมเป็นห่วงเรื่องโดนแฮ็ก บัตรก้านว้านเคยถูกดูดข้อมูลและชาร์จเงิน 1 ปอนด์ทุก ๆ นาที ก้านว้านต้องโทรไปที่ธนาคารเพื่อยกเลิกบัตรและรายการจ่ายที่ผิดปกติ ถ้าผมเก็บบัญชีไว้ ผมจะต้องคอยเข้ามาดูว่ามีการเดินบัญชีผิดปกติหรือเปล่า

    ที่สำคัญ คือ ผมไม่รู้ว่าจะกลับมาอังกฤษอีกไหม และกลับมาเพื่ออะไร เพราะตอนนั้นผมเรียนจบแล้ว แต่ยังไม่รู้ว่าจะทำอะไรต่อในอนาคต

    “ไม่เป็นไรครับ” ผมตอบ “ผมคิดว่าผมน่าจะไม่ได้กลับมาอีก”

    .

    📆 2026
    📍 Stratford-upon-Avon

    “ถ้ายังเก็บบัญชีไว้ ก็จะใช้บัตรที่นี่ได้” ผมบอกธีร์ตอนที่เดินผ่าน Barclays และเข้าสู่ Henley Street

    Barclays in Stratford-upon-Avon, England
    Barclays

    อาคารสองข้างทางที่นี่แตกต่างจากตึกอื่น ๆ ที่ผมเคยเห็น เพราะเป็นสไตล์ Tudor ซึ่งทำให้ผมนึกถึงบ้านแบบสวิตเซอร์แลนด์

    Tudor styled house in Stratford-upon-Avon, England
    อาคารสไตล์ Tudor

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

    The statue of William Shakespeare in Stratford-upon-Avon, England
    รูปปั้น William Shakespeare
    Shi and his family at Shakespeare's Birthplace, Stratford-upon-Avon, England
    ผม พ่อแม่ และธีร์ที่บ้านเกิดของ William Shakespeare

    ตัวบ้านถูกกันออกจากถนนด้วยรั้วเหล็ก และเราไม่ได้เข้าไปข้างใน แต่เดินย้อนไปที่ร้านหนังสือแทน ซึ่งดูเหมือนจะมีทางเชื่อมไปยังบ้านของ Shakespeare อีกที

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

    “ไปที่ไหนต่อ?” ผมถามแม่ที่เป็นคนจัดแผนเที่ยว

    “หมดแล้ว” แม่พูด “เว้นว่าจะไปดู Shakespeare’s New Place”

    .

    เรายังพอมีเวลาเหลือก่อนที่จะต้องกลับไปที่จอดรถ เราออกจาก Henley Street ตรงไปทาง Chapel Street ซึ่งมีอาคารแบบ Tudor เช่นกัน

    Tudor styled building in Stratford-upon-Avon, England
    อาคารสไตล์ Tudor
    Tudor styled buildings in Stratford-upon-Avon, England
    อาคารสไตล์ Tudor

    ตอนที่เราไปถึง Shakespeare’s New Place ดูเหมือนจะปิดให้บริการแล้ว เพราะประตูหน้าปิดอยู่ แต่ยังมีคนอยู่ข้างใน เราได้แต่มองจากข้างนอกเข้าไป และดูเหมือนเราจะไม่ได้พลาดอะไรมากที่ไม่ได้เข้าไป

    Entrance to Shakespeare's New Place in Stratford-upon-Avon, England
    บ้านใหม่ของ William Shakespeare

    พอไม่มีอะไรแล้ว เราก็เดินย้อนไปทาง Bancroft Garden เพื่อจะกลับไปที่รถที่จอดอยู่ใน Recreation Ground

    Stratford-upon-Avon, England
    พวกเราเดินกลับไปที่รถ

    .

    ⚽️ (5) Manchester

    📆 2026
    📍 Tesco somewhere

    ตอนขึ้นรถ ฝนก็เริ่มตกและตกเรื่อยมาเกือบตลอดทางจนถึง Manchester

    เราแวะที่ Tesco แห่งหนึ่ง เพื่อจะซื้อของกินสำหรับเย็นนี้และเช้าวันพรุ่งนี้

    Tesco, Manchester, England
    Tesco ใน Manchester

    Tesco ที่นี่ใหญ่กว่าสาขาที่ผ่าน ๆ มาและมีของกินให้เลือกเยอะกว่ามาก

    ธีร์ขอการ์ดสมาชิก Tesco จากเพื่อนที่ทำงานอยู่ที่อังกฤษมาได้ ทำให้วันนี้ เราได้ส่วนลดไป 18 ปอนด์ หรือเท่ากับออกไปกินข้างนอกคนเดียวได้ 1–2 มื้อ

    “บอกเพื่อนไปแล้วว่าให้รอรับพอยต์ได้เลย” ธีร์พูดตอนเรากลับขึ้นมาบนรถ “ส่งรูปของกินให้เพื่อนดู เพื่อนบอกให้เพลา ๆ กับ dairy บ้าง”

    พ่อผมเป็นคนชอบกินนมกับชีสมาก ยิ่งเจอของราคาถูกก็ยิ่งห้ามใจยากเข้าไปใหญ่

    Grocery shopping at a Tesco in Manchester, England
    ซื้อของกินใน Tesco

    .

    📆 2026
    📍 Holiday Inn, Manchester

    คืนนี้ เราพักที่ Holiday Inn เหมือนเมื่อวาน แค่เปลี่ยนสาขามาที่ Manchester เท่านั้น

    เราได้ห้องแยกกัน 2 ห้อง ซึ่งมีห้องน้ำสำหรับคนพิการทั้งคู่ ทำให้ห้องน้ำใหญ่กว่าปกติ

    Holiday Inn, Manchester, England
    Holiday Inn ใน Manchester
    Holiday Inn, Manchester, England
    ห้องพักที่ Holiday Inn
    Holiday Inn, Manchester, England
    ห้องพักที่ Holiday Inn

    พ่อกับแม่มากินข้าวด้วยกันที่ห้องผมกับธีร์ ผมกับแม่ตื่นเต้นกับสตรอว์เบอร์รีลูกใหญ่ที่รสหวานและเปรี้ยวกำลังดี

    Simple dinner in Manchester, England
    อาหารเย็นจาก Tesco
    UK strawberry
    อาหารเย็นจาก Tesco

    ตอนเข้านอน ฝนข้างนอกยังไม่หยุดตก เหมือนกับครั้งก่อนที่ผมมาที่นี่เมื่อ 8 ปีก่อน

    .

    📆 2018
    📍 Manchester

    ครั้งก่อน ผมมา Manchester กับก้านว้านและพี่แอม เพื่อนชาวลาวที่เรียนห้องเดียวกัน เกือบตลอดเวลาที่เราอยู่ที่นี่ ฝนตกลงมาอย่างต่อเนื่องเช่นกัน

    แม้จะไม่ใช่แฟนบอล แต่ครั้งก่อน ผมก็ไปเที่ยวสนามฟุตบอล Old Trafford และที่นี่เป็นครั้งแรกที่ผมได้ดูหนังในโรงตั้งแต่มาถึงอังกฤษ เราเลือกดูหนังรอบดึก ขึ้นรถไฟฝ่าฝนเพื่อไปดู Spider-Man: Into the Spider-Verse กัน

    Shi at Old Trafford statdium, Manchester, England (2018)
    สนามฟุตบอล Old Trafford (2018)

    ผมคิดว่าจุดเปลี่ยนของชีวิตผมในอังกฤษเกิดขึ้นหลังกลับจาก Manchester

    เรานั่งรถไฟกลับกัน ผมจำได้ว่าพกแล็ปท็อปไปด้วย ตั้งใจว่าระหว่างทาง จะเขียนรายงานเรื่อง emotional intelligence สำหรับวิชา Consulting Psychology ซึ่งคิดเป็น 100% ของเกรด แต่สุดท้ายก็ไม่ได้เขียนสักคำเพราะคิดไม่ออกว่าจะเขียนอะไร

    ในตู้โดยสารเดียวกับเรา มีหญิงวัยกลางคนคู่หนึ่งที่นั่งคุยกันเสียงดังมาตลอดทาง และเหมือนจะนั่งเลยป้ายที่ตั้งใจไว้ ทั้งคู่ต้องตัดสินใจว่าจะไปถึงสุดปลายทาง ซึ่งคือ King’s Cross ใน London หรือลงป้ายหน้าแล้วหาทางนั่งรถย้อนกลับไป

    Train from Manchester to London (2018)
    รถไฟจาก Manchester ไป London (2018)

    ผมจำไม่ได้ว่า เมื่อมาถึง London แล้ว ผมกลับไปที่ Ifor Evans ยังไง แต่เดาว่าคงเป็นรถไฟใต้ดิน เพราะเป็นการเดินทางที่ไม่ต้องกลัวว่าจะลงผิดป้ายเหมือนกับรถบัสสองชั้น

    ที่ Ifor Evans ผมเดินขึ้นตึก Denys Holland มาพร้อมกระเป๋าเป้กันน้ำที่ผมใช้ตลอดเวลาที่อยู่อังกฤษ ไม่ว่าจะเรียนหรือเที่ยว และเจอกับ Sam Yong ที่เดินออกมาจากห้องตัวเอง ซึ่งอยู่ชั้น 1 ติดกับบันไดที่จะขึ้นไปชั้น 2 ที่ผมอยู่

    “Ah, Shi, where have you been?” Sam Yong ถาม “I missed you, man. Everyone’s gone.”

    ผมกับ Sam Yong เป็นหนึ่งในไม่กี่คนที่ไม่กลับบ้านในช่วงวันหยุดยาว ตอนนั้นเป็นช่วงปลายปี วันคริสต์มาสใกล้เข้ามาทุกที และคนส่วนใหญ่บินกลับประเทศกันไปหมด

    ถึงตอนนั้น ผมยังไม่สนิทกับ Sam Yong มาก หลังจากเจอกันในงานเลี้ยงต้อนรับ เราก็ไม่ได้คุยกันอีก เพราะ Sam Yong โฟกัสกับการเรียน ผมจะเห็น Sam Yong นั่งกับเพื่อนชาวจีนในตอนเช้าเป็นครั้งคราวเท่านั้น

    ผมจำไม่ได้ว่า Sam Yong พูดอะไรอีก แต่ Sam Yong ชวนผมไปกินข้าวเช้าด้วยกัน (ผมจำไม่ได้ว่าได้ตื่นไปกินไหม) ตั้งแต่วันนั้น ผมก็เริ่มสนิทกับ Sam Yong มากขึ้น และเพราะ Sam Yong เป็นคนกว้างขวางและรู้จักคนไปทั่ว ไม่ว่าจะกลุ่มชาวอินเดียและศรีลังกาที่อยู่ชั้นใต้ดิน เพื่อนชาวจีนที่อยู่ชั้น 1 และคนเกาหลีที่อยู่ชั้น 3 หรือเพื่อนจากประเทศอื่น ๆ ที่อยู่ตึก Ifor Evans ก็รู้จักดีทั้งชื่อและสาขาที่แต่ละคนเรียนอยู่ ทำให้ผมได้ทำความรู้จักกับเพื่อนคนอื่น ๆ ไปด้วย และทำให้ช่วงเวลาในอังกฤษกลายเป็นหนึ่งในปีที่ดีสุดในชีวิตของผม ซึ่งผมยังจำได้ถึงทุกวันนี้


    🚙 Day 04. Entering Scotland

    🗓️ Date: Tuesday 02 June 2026

    .

    🌳 (1) Keswick

    📆 2026
    📍 Tebay Services, Penrith

    Manchester เป็นแค่ทางผ่าน หลังออกจากโรงแรมท่ามกลางสายฝนที่ยังคงโปรยปรายลงมา เรามุ่งหน้าขึ้นเหนือต่อไป

    Dad driving in the UK
    ขับรถขึ้นเหนือ

    เรามาจอดพักสั้น ๆ ที่พักกลางทางแห่งหนึ่ง บรรยากาศโดยรอบที่เป็นพื้นที่สีเขียวเปิดโล่งที่มีหมอกปกคลุม อากาศหนาวเพราะมีฝนตก แต่ก็ไม่หนาวจนเกินไป ท้องฟ้าที่มีแต่เมฆสีเทาอ่อนปกคลุม ทำให้ผมนึกถึงครั้งก่อนที่มาเที่ยวสกอตแลนด์ ซึ่งเป็นหนึ่งในทริปที่ผมชอบที่สุดตอนเรียนที่อังกฤษ

    Tebay Services, Penrith, England
    Tebay Services
    Tebay Services, Penrith, England
    วิวข้างทางที่ Tebay Services

    .

    📆 2026
    📍 Ashness Bridge, Keswick

    เราขับขึ้นเหนือต่อมาจนถึง Ashness Bridge ซึ่งมีความกว้างเกือบพอดีกับรถเช่าของเรา

    “ช่วยดูหน่อย” พ่อพูด ค่อย ๆ พารถขึ้นบนสะพานหินที่น่าจะออกแบบไว้ให้พอกับรถม้าในสมัยก่อน ไม่ใช่รถครอบครัวขนาดใหญ่ของสมัยนี้

    “ซ้ายเหลือ” ธีร์พูด

    หน้าต่างห้องโดยสารด้านหลังเปิดออกไม่ได้ แต่จากมุมที่ผมนั่งอยู่ ระยะห่างระหว่างรถและสะพานน่าจะเหลือแค่ไม่กี่นิ้วเท่านั้น

    Ashness Bridge, Keswick, England
    Ashness Bridge

    ถัดจากสะพานมาไม่ไกล ก็มีที่จอดรถที่มีรถจอดอยู่ 2–3 คัน ไม่มีวี่แววของเจ้าของรถสักคัน

    พอจอดรถเสร็จ เราเดินไปที่ตู้จ่ายเงิน นอกจากบัตรสมาชิกแล้ว ตู้ก็ไม่รับอย่างอื่นนอกจากเงินสดแบบหยอดเหรียญเท่านั้น

    Ashness Bridge, Keswick, England
    ที่จอดรถที่ Ashness Bridge

    “เอายังไง?” พ่อถาม

    ถึงตอนนี้ เรายังไม่ได้ใช้เงินสดกันเลย ทำให้ไม่มีเหรียญติดตัวกันสักคน

    “เราจะอยู่ที่นี่นานไหม?” ผมถาม

    “มันก็มีสะพานที่ผ่านมา” แม่ตอบ

    เราเดินออกไปบนถนน นอกจากนักปั่นจักรยานที่ขี่ผ่านไป ก็ไม่มีใครอื่น ป่าและภูเขารอบด้านดูเงียบสงบ

    Ashness Bridge, Keswick, England
    ถนนจาก Ashness Bridge

    เราสลับกันเดินไปดูสะพาน ผมกับธีร์ไปก่อน เราเดินย้อนไปที่สะพาน ถ่ายรูปสะพานจากทั้ง 2 ฝั่งก่อนจะเดินกลับมา

    Ashness Bridge, Keswick, England
    Ashness Bridge

    “ระวังลื่นนะ” ผมบอกแม่ตอนกลับมา เพราะแม้ฝนจะหยุดแล้ว แต่หินและพื้นดินยังเปียกชุ่มอยู่

    .

    📆 2026
    📍 Surprise View, Keswick

    เราขึ้นรถและขับต่อไปที่จุดชมวิวที่มองออกไปเห็นทะเลสาบ Derwentwater ที่มีป่าเขาที่ล้อมรอบเอาไว้

    ที่นี่ ตู้จ่ายเงินรับแต่บัตรสมาชิกหรือเงินสดเช่นกัน เรารีบถ่ายรูป ชมวิว และกลับมาขึ้นรถ ตอนนั้น ฝนลงเม็ดอีกครั้ง

    Derwentwater as seen from Surprise View, Keswick, England
    วิว Derwentwater จาก Surprise View
    Derwentwater as seen from Surprise View, Keswick, England
    วิว Derwentwater จาก Surprise View
    Shi and his family at Surprise View, Keswick, England
    ผม พ่อแม่ และธีร์ที่ Surprise View

    .

    🍤 (2) Fish n Chips

    📆 2026
    📍 Keswick

    เราขับย้อนมาทาง Ashness Bridge และลงจากเขาเพื่อเข้ามาในเมืองและจอดรถในที่จอดกลางเมือง ครั้งนี้ เราจ่ายเงินด้วยบัตรเครดิตได้

    อากาศในเมืองอุ่นกว่าบนเขา และทำให้ผมรู้สึกร้อนขึ้นมาเล็กน้อย จากที่จอดรถ เราเดินไปที่ร้าน Old Keswickian ซึ่งแม่บอกว่าเป็นร้าน fish and chips ที่จะต้องมาลองให้ได้

    ร้านเป็นตึก 2 คูหา ฝั่งซ้ายปิดเงียบสนิท และมีป้ายบอกให้ใช้ประตูอีกฝั่ง ส่วนฝั่งขวาที่ประตูเปิดอยู่ก็มีป้ายระวังพื้นลื่นวางกั้นไว้

    Old Keswickian is a fish and chips shop in Keswick, England
    ร้าน Old Keswickian

    “ขอโทษนะครับ” พ่อถามพนักงานที่อยู่ข้างใน “ร้านเปิดไหมครับ?”

    “อ๋อ เดินขึ้นไปข้างบนได้เลย” พนักงานตอบ เดินออกมาจากหลังเคาน์เตอร์เพื่อเอาป้ายที่ขวางประตูออก

    “ขอบคุณครับ”

    เราเดินขึ้นไปข้างบน ซึ่งมีพนักงานหญิงยืนรอต้อนรับอยู่หลังเคาน์เตอร์

    “สี่ที่ครับ” ธีร์พูด

    “ทางนี้เลย” พนักงานชี้ไปที่โต๊ะที่อยู่ติดกับเคาน์เตอร์

    ชั้น 2 ของร้านแบ่งเป็น 2 ฝั่ง ฝั่งหนึ่งปิดให้บริการ ส่วนอีกฝั่งเป็นส่วนที่เปิดให้เราเข้ามานั่งได้

    Old Keswickian, Keswick, England
    ข้างในร้าน Old Keswickian

    พนักงานนำเมนูมาให้ที่โต๊ะ เป็นกระดาษเคลือบพิมพ์ 2 หน้า อาหารจานหลักประกอบด้วย fish and chips, สเต็ก, ไส้กรอก, และเบอร์เกอร์

    Menu at Old Keswickian, Keswick, England
    เมนูร้าน Old Keswickian
    Menu at Old Keswickian, Keswick, England
    ร้าน Old Keswickian

    เราสั่ง fish and chips มา 2 ที่ (เป็นปลาทอด 1 ที่ และนึ่ง 1 ที่) พร้อมกับพายเนื้อ 1 ที่ และซุป 1 ที่

    อาหารรอไม่นานก็ทยอยมาเสิร์ฟทีละจาน แต่ละจาน (ยกเว้นซุป) มาพร้อม เฟรนช์ฟรายกองโตที่ทำเอาจุกทีเดียว

    Fish and chips at Old Keswickian, Keswick, England
    อาหารที่ร้าน Old Keswickian
    Shi and his family at Old Keswickian, Keswick, England
    ผม พ่อแม่ และน้องที่ร้าน Old Keswickian

    “ดีกว่าที่ Dover เยอะ” ธีร์พูด หมายถึง fish and chips ของวันแรกที่เรามาถึงอังกฤษ ซึ่งธีร์ต้องเติมน้ำส้มสายชูเข้าไปเพื่อให้มีรสชาติกินได้

    .

    🛘 (3) Catbells

    ตอนที่เรากลับออกมานอกร้าน ท้องฟ้าเปิดโล่งและมีแดดออกเหมือนฝนไม่ได้ตกมาก่อน

    Keswick, England
    พ่อแม่และธีร์เดินไปตามถนนใน Keswick
    Keswick, England
    อากาศแจ่มใสในเมือง Keswick

    .

    📆 2026
    📍 Catbells, Keswick

    เราขับไปที่ Catbells ซึ่งเป็นเขาสูง 451 เมตร เราขับวนหาที่จอดรถอยู่สักพัก แต่ไม่เห็นที่ที่จะจอดได้ ระหว่างทางมีรถจอดอยู่หลายคัน ซึ่งมีใบสั่งติดอยู่หน้ากระจก เพราะเป็นจุดห้ามจอด

    เราขับมาจนถึงที่จอดที่ไม่ไกลจากทางขึ้น Catbells มากนัก พ่อจอดรถขนานและลงเดินไปตามถนนเลนเดียว ระหว่างที่พ่อไม่อยู่มีชาวอังกฤษ 2 คนที่ดูเหมือนเพิ่งจะเดินเขาเสร็จเดินสวนทางมา

    “คุณกำลังจะจอดรถหรือเปล่า?” หนึ่งในนั้นถาม “ผมกำลังจะออก ขอเวลาผมแป๊บหนึ่ง”

    ตอนนั้น มีรถอีกคันเพิ่งขับเข้ามา และมีชาวอังกฤษกลุ่มใหญ่เดินลงมาจากเขา กลุ่มนี้เดินไปบอกคนในรถให้รอเช่นกัน

    พอรถของคนที่เดินเขาเสร็จแล้วออกไปแล้ว พ่อก็เอารถเข้าซองที่วางอยู่ แล้วเราก็ออกเดินไปที่ทางขึ้น Catbells

    .

    แม้แดดจะออก แต่อากาศก็ยังเย็นสบาย เหมาะกับเดินเขามาก

    Catbells, Keswick, England
    Catbells

    ที่ทางขึ้น พ่อกับแม่เดินนำขึ้นไปก่อน ผมกับธีร์ยืนถ่ายรูปอยู่ข้างล่าง

    ตอนที่ผมกำลังถ่ายรูปทางขึ้นอยู่ ก็มีชายสูงวัย ซึ่งผมประมาณว่าน่าจะอายุไม่ต่ำกว่า 60 เดินมาพอดี

    “ระวัง” ธีร์พูด

    “ขอโทษครับ” ผมพูดแล้วเปิดทางให้ชายชรา

    “ตรงนี้เป็นทางเดิน ไม่ใช่ไว้ถ่ายรูป” ชายชราพูด

    “ผมเข้าใจ” ผมตอบ

    “ทางมีไว้เดิน ก็อย่าถ่ายรูปอย่างเดียวแล้วโพสต์ลงโซเชียลแล้วบอกว่ามาถึงทั้งที่ยังไม่ได้นะ”

    “อ๋อ ไม่อย่างแน่นอนครับ” ผมพูดพร้อมกับหัวเราะ

    “ตอนแรกนึกว่าโดนดุแล้ว” ธีร์พูดหลังจากที่ชายชราเดินนำขึ้นเขาไปแล้ว

    “คิดเหมือนกัน” ผมตอบ ยังไงก็ไม่คุ้นกับการพูดติดตลกของคนอังกฤษอยู่ดี

    Catbells, Keswick, England
    ทางขึ้น Catbells

    .

    ทางเดินค่อย ๆ ไต่ระดับขึ้นไปเรื่อย ๆ

    Catbells, Keswick, England
    ทางเดินสู่ยอด Catbells

    ยิ่งสูงก็ยิ่งเห็นวิวรอบข้างที่น่าตื่นตาตื่นใจยิ่งขึ้น

    Catbells, Keswick, England
    วิวระหว่างทางสู่ Catbells
    Catbells, Keswick, England
    วิวระหว่างทางสู่ Catbells

    ระหว่างทางเราหยุดถ่ายรูปเป็นระยะ ๆ จนมีกลุ่มชาวเอเชีย 3 คนที่เดินตามหลังไล่มาทัน

    “ถ่ายรูปให้ไหมครับ?” ธีร์ถามทั้ง 3 คน

    “ดีเลย” หนึ่งในนั้นตอบ

    “อยากให้ถ่ายรูปกลุ่มให้บ้างไหม?” หนึ่งในนั้นถามหลังจากเราถ่ายรูปให้แล้ว

    ผมยื่นมือถือให้เพื่อให้ถ่ายรูปหมู่ให้เรา 4 คน

    Shi and his family at Catbells, Keswick, England
    ผม พ่อแม่ และธีร์ที่ Catbells

    .

    ทั้งเราและกลุ่มชาวเอเชียสลับกันเดินนำ เพราะต่างคนต่างหยุดถ่ายรูปกันเป็นระยะ ๆ ใครถ่ายรูปเสร็จก่อนก็นำไปก่อน ใครถ่ายช้าก็ถูกแซงไป

    Catbells, Keswick, England
    ทางเดินสู่ยอด Catbells
    Catbells, Keswick, England
    ธีร์ระหว่างทางสู่ยอด Catbells
    Catbells, Keswick, England
    ธีร์ พ่อ และแม่ (โดนพ่อบังอยู่) ระหว่างทางขึ้นยอด Catbells
    Catbells, Keswick, England
    วิวระหว่างทางสู่ยอด Catbells
    Catbells, Keswick, England
    พ่อแม่ระหว่างทางสู่ยอด Catbells
    Catbells, Keswick, England
    แม่กับธีร์

    ทางเดินที่เป็นทางลูกรังทอดยาวมาจนถึงจุดที่เนินเขาลาดชันขึ้น และทางขึ้นเต็มไปด้วยหิน เราต้องหาทางปีนขึ้นไปเอง เพราะไม่มีทางที่เตรียมไว้ให้เฉพาะ

    Catbells, Keswick, England
    ทางขึ้นยอด Catbells

    ระหว่างทาง ผมกับธีร์ผลัดกันดูแม่ซึ่งใส่กระโปรงมาในวันนี้ และพ่อที่ช่วยถือไฟเซลฟีให้กับแม่

    ถึงจุดหนึ่ง มีชายชาวอังกฤษปีนสวนลงมาและหยุดพักในจุดเดียวกับเรา

    “ฉันน่าจะแก่เกินแล้ว” เขาพูด

    “ไม่หรอก” ธีร์ตอบ

    พอชายคนนั้นออกเดินอีกครั้ง ก็ลื่นหินก้อนเล็ก ๆ ที่อยู่ใต้เท้า และทำให้ไม้ปีนเขาที่เสียบไว้กับกระเป๋าหล่นลงมา

    “คุณทำตก” ผมพูด

    “น่าจะเป็นสัญญาณว่าต้องใช้แล้วละ” เขาพูด แล้วก็หยิบไม้มาถือไว้ในมือเพื่อใช้ช่วยยันตัวเวลาลงเขา

    “ทำไมเขาไม่ปรับให้ไม้ยาวขึ้นนะ?” ผมสงสัย “จะลงง่ายกว่านี้”

    .

    เราใช้เวลาสักพักกว่าจะขึ้นถึงยอด

    Catbells, Keswick, England
    ยอด Catbells
    Catbells, Keswick, England
    ทางเดินต่อไป (ทางขวาคือกลุ่มชาวเอเชียที่เดินมาพร้อมกับเรา)

    ตอนแรกผมนึกว่าที่นี่เป็นปลายทางสุดท้ายแล้ว แต่พอมองเลยไป ยังเห็นว่ามีทางเดินต่อไปอีก

    ผมอยากจะเดินต่อ แต่พ่อเห็นเมฆฝนลอยอยู่บนฟ้า ก็อยากจะกลับก่อนที่ฝนจะมาถึง เราเลยหยุดกันแค่นี้

    Shi and his family at Catbells, Keswick, England
    ผม พ่อแม่ และน้องบนยอด Catbells
    Shi at Catbells, Keswick, England
    ผมเอง 555

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

    Mom holding onto something at Catbells, Keswick, England
    แม่เกาะแท่นหินไว้ไม่ให้ล้มเพราะแรงลม

    ผมไม่รู้เลยว่า ลมข้างบนแรงผิดปกติแค่ไหนจนกระทั่งลงมาข้างล่างแล้วเสียงลมที่ดังอยู่ตลอดเวลาเงียบลงในทันที

    “ข้างบนมันเป็นลม drag เหมือนลมหมุน” ธีร์บอก ทำให้ผมนึกภาพว่าลมข้างบนเป็นลมหมุนเหมือนน้ำในเครื่องปั่นผลไม้

    .

    เหมือนกับตอนขาขึ้น เราต้องหาทางปีนลงข้างล่างเอง และครั้งนี้ท้าทายกว่า เพราะมีแรงโน้มถ่วงที่จะทำให้เราล้มหรือลื่นได้ทุกเมื่อ

    Catbells, Keswick, England
    พ่อแม่เดินลงจากยอด Catbells

    ระหว่างทาง เราแยกกันเป็น 2 กลุ่ม ผมไปทางหนึ่งกับแม่ และธีร์ไปอีกทางกับพ่อ

    Dad and Tee walking together on Catbells, Keswick, England
    พ่อกับธีร์ระหว่างทางลงจาก Catbells
    Catbells, Keswick, England
    ผมกับแม่ระหว่างทางลงจาก Catbells
    Catbells, Keswick, England
    ทางขึ้น-ลงจากยอด Catbells

    เรามาเจอกันที่ทางเลี้ยวที่มีรั้วไม้กั้นและมีชาวอังกฤษ 2 คนยืนพักอยู่แล้ว

    “เจอกันอีกแล้ว” หนึ่งในนั้นพูด

    “ใช่แล้ว” พ่อตอบ ผมจำไม่ได้ว่าเราเจอกันเมื่อไร อาจจะเป็นระหว่างที่พ่อกับแม่แยกกันเดิน ทำให้ผมไม่ได้เจอกับผู้หญิงคนนี้

    “พวกคุณมาจากไหนกัน?” ผู้หญิงคนนั้นถามต่อ

    “เมืองไทย” พ่อตอบ

    “โอ้ ตอนแรกฉันนึกว่าเป็นคนญี่ปุ่น” พูดแล้วก็หัวเราะ

    “แล้วพวกคุณมาด้วยกัน” ผู้หญิงคนนั้นพูด “ส่วน 2 คนนี้ก็คือลูกชาย” หันมาทางผมกับธีร์

    “ใช่แล้ว”

    “งั้นคุณก็แต่งงานกันแล้ว?”

    ทุกคนหัวเราะ แต่เหมือนผู้หญิงคนนั้นจะไม่เข้าใจเลยหันไปหาธีร์ที่ยืนอยู่ใกล้ที่สุด

    “อันนี้คือใช่หรือไม่ใช่?”

    “ใช่ครับ” ธีร์ตอบ

    “แล้วมาเที่ยวกันกี่วัน? เที่ยวที่ไหนมาแล้วบ้าง? แล้วจะไปเที่ยวที่ไหนกันต่อ?”

    เราบอกว่า มาเที่ยว 10 วัน ขับรถกันมาตั้งแต่ Dover, Bath, และ Manchester แล้วก็ที่นี่ เราจะขับขึ้นเหนือเพื่อไป Isle of Skye ในสกอตแลนด์กัน

    “ไปไกลมาก” ผู้หญิงคนนั้นพูด “ขอให้เที่ยวให้สนุกนะ”

    .

    Catbells, Keswick, England
    Catbells
    Catbells, Keswick, England
    Catbells
    Catbells, Keswick, England
    Catbells
    Shi and his family at Catbells, Keswick, England
    ผมและครอบครัว

    กลับมาถึงรถ เราก็ขับออกมา ระหว่างทางก็เจอกับผู้หญิงคนที่ยืนคุยกับเรากำลังเดินไปตามถนน

    “อยากให้ไปส่งไหม?” ธีร์เปิดกระจกถาม

    “โอ้” ผู้หญิงคนนั้นอุทาน “ไม่เป็นไร รถฉันอยู่ข้างหน้านี่เอง”

    “โอเค โชคดีนะครับ”

    Catbells, Keswick, England
    Catbells

    .

    🥢 (4) Glasgow

    📆 2026
    📍 Tesco somewhere

    ขึ้นรถมาได้ไม่นาน ผมก็หลับไป ตื่นมาอีกที เราก็อยู่ที่ Tesco แล้ว

    ภายนอกที่นี่ดูไม่ใหญ่เท่ากับที่ Manchester แต่ข้างในก็กว้างและมีของกินให้เลือกเยอะพอควร

    แม่บอกให้ซื้อของไว้สำหรับมื้อเช้า 2 วัน เพราะไม่รู้ว่าในวันต่อไป เราจะหาซื้ออะไรได้บ้าง เราเลือกซื้อของแบบวันก่อน คือ meal deal ที่เลือก sandwich หรืออาหารหลักอื่น เช่น มักกะโรนี ได้ 1 อย่าง พร้อมกับเครื่องดื่มและขนมหรือผลไม้ 1 อย่าง ซึ่งทำให้เรามีของกินไว้เลือกสลับกินได้ทีหลัง

    .

    📆 2026
    📍 Braehead Shopping Centre, Renfrew

    หลังจาก Tesco เราไปที่ห้าง Braehead เพื่อหามื้อเย็นกินกัน ระหว่างทาง ผมเห็นป้ายที่บอกให้รู้ว่า เราอยู่ใน Glasgow แล้ว ซึ่งหมายความว่า เราอยู่ในสกอตแลนด์แล้ว

    Braehead Shopping Centre, Renfrew (near Glasgow), Scotland
    Braehead Shopping Centre

    ผมยังอยากกินอาหารฝรั่งอย่างพิซซ่าอยู่ แต่พ่อกับแม่อยากจะกินอาหารจีน เราเลยไปที่ร้าน Chopstick ที่เลือกเส้นหรือข้าวพร้อมกับข้าวได้ ธีร์ช่วยสั่งข้าวมา 1 ที่และเมนูเส้นมาอีก 1 ที่สำหรับเรา 4 คน

    “ถ้าตอบ ‘No’ เฉย ๆ ดู rude ไปไหม?” ธีร์ถามตอนที่เรามานั่งที่โต๊ะ “ตอนเขาถามว่า เอาอะไรเพิ่มไหม แล้วตอบ ‘No’ เขาดู stunted ไป”

    ผมนึกย้อนถึงตอนสั่งอาหาร พอธีร์ตอบว่าไม่คำเดียว พนักงานไม่ได้ถึงกับนิ่งไป แต่ก็ไม่ได้ตอบกลับมาทันเช่นกัน พนักงานตอบกลับมาว่า “That’s alright.”

    “คิดว่าไม่” ผมตอบ เพราะพนักงานดูเหมือนจะไม่ได้ติดใจอะไร “แต่ถ้าอยากให้ไม่ห้วนไป อาจจะพูดเพิ่ม เช่น ไม่เอาเพราะกินไม่ไหวแล้ว”

    มื้อนี้คนกินหลักเป็นพ่อกับแม่ แม้จะเย็นแล้ว แต่ผมยังไม่รู้สึกหิว และหลังจากไปเนปาลมา ผมยังเบื่อเส้นกับข้าวอยู่เลย

    .

    📆 2026
    📍 Golden Jubilee Conference Hotel, Clydebank

    ตอนมาถึงโรงแรม ผมนึกว่าเรามาผิดที่ เพราะป้ายด้านหน้าเขียนว่าเป็นโรงพยาบาล เพราะโรงแรมตั้งอยู่ในรั้วเดียวกับ Golden Jubilee National Hospital

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

    Golden Jubilee Conference Hotel, Clydebank (near Glasgow), Scotland
    ห้องพักที่ Golden Jubilee Conference Hotel
    Golden Jubilee Conference Hotel, Clydebank (near Glasgow), Scotland
    ห้องพักที่ Golden Jubilee Conference Hotel
    Shi and Tee at Golden Jubilee Conference Hotel, Clydebank (near Glasgow), Scotland
    ผมและธีร์

    .

    แม้จะ 3 ทุ่มกว่าแล้ว แต่ท้องฟ้าก็ยังสว่างเหมือนกับ 5 โมงเย็นอยู่ ธีร์กับแม่ชวนทุกคนลงไปเดินชมวิวข้างล่าง เพราะโรงแรมอยู่ติดกับแม่น้ำ

    อากาศข้างนอกหนาวและมีลมแรง เรามองเห็นวิวแม่น้ำได้ไม่เต็มที่ เพราะมีรั้วกั้นอยู่

    Clydebank (near Glasgow), Scotland
    วิวจากริมน้ำ ห้องพักที่ Golden Jubilee Conference Hotel

    เราเดินวนรอบโรงแรม จากประตูทางออกด้านหลังวนกลับมาที่ล็อบบี จากนั้นก็แยกย้ายกันขึ้นห้องไป

    Golden Jubilee Conference Hotel, Clydebank (near Glasgow), Scotland
    Golden Jubilee Conference Hotel

    🚶 From Cold Sun Walk

    ครั้งหนึ่ง ผมเคยเดินไปตามถนนใน London ท่ามกลางลมหนาวที่พัดผ่านและแสงแดดอันอบอุ่นที่สาดส่องจากท้องฟ้าฤดูหนาว

    ผมตั้งชื่อเพลย์ลิสต์ของวันนั้นว่า Cold Sun Walk

    และนี่คือเพลงหนึ่งในเพลย์ลิสต์นั้น

    Note: ดูเพลงทั้งหมดในเพลย์ลิสต์


    ⏭️ Next Episodes

    อ่านตอนต่อไป:

    • UK Again, Ep 3 (coming soon)
    • UK Again, Ep 4 (coming soon)
    • UK Again, Ep 5 (coming soon)

    อ่านบทความตอนที่แล้ว:

  • 3 ขั้นตอนในการทำ Web Scraping ด้วย BeautifulSoup ใน Python

    3 ขั้นตอนในการทำ Web Scraping ด้วย BeautifulSoup ใน Python

    Web scraping เป็นการดึงข้อมูลจากเว็บไซต์ด้วย code หรือระบบอัตโนมัติ

    เราสามารถใช้ประโยชน์จาก web scraping ได้หลากหลาย เช่น:

    • เปรียบเทียบราคา
    • วิเคราะห์ brand
    • เพิ่มข้อมูลให้กับ AI

    ในบทความนี้ ผมจะพาทุกคนไปดูวิธีทำ web scraping ด้วย BeautifulSoup ใน Python ซึ่งเป็น package ยอดนิยมสำหรับเริ่มต้นทำ web scraping กัน

    ถ้าพร้อมแล้ว ไปเริ่มกันเลย



    🪜 ภาพรวม

    การทำ web scraping ด้วย BeautifulSoup มีอยู่ 3 ขั้นตอน:

    1. Get the web page
    2. Create a Soup object
    3. Extract the content

    เราไปดูรายละเอียดแต่ละขั้น ผ่านตัวอย่างการดึงข้อมูลจาก Book to Scrape ซึ่งเป็นเว็บไซต์สำหรับฝึก web scraping โดยเฉพาะกัน


    1️⃣ Step 1. Get the Web Page

    ในขั้นแรก เราจะโหลดหน้าเว็บที่ต้องการ

    ในตัวอย่าง เราจะโหลดหน้าเว็บหนังสือ Sapiens: A Brief History of Humankind กัน:

    BeautifulSoup ไม่มี function สำหรับโหลดหน้าเว็บในตัว ดังนั้น เราจะต้องใช้ package อื่นอย่าง requests เข้ามาช่วย:

    # Load the package
    import requests
    # Set the URL
    url = "<https://books.toscrape.com/catalogue/sapiens-a-brief-history-of-humankind_996/index.html>"
    # Get the response
    response = requests.get(url)
    # Encode the response
    response.encoding = "utf-8"

    Note: เรากำหนด response.encoding = "utf-8” เพื่อให้อ่านอักขระพิเศษ (เช่น £) ได้

    เพื่อเช็กว่าเราโหลดหน้าเว็บสำเร็จไหม เราสามารถดูจาก status code ได้:

    # Print the status code
    print(response.status_code)

    ผลลัพธ์:

    200

    ในตัวอย่าง status code 200 หมายถึง โหลดหน้าเว็บสำเร็จ


    2️⃣ Step 2. Create a Soup Object

    ในขั้นที่ 2 เราจะเปลี่ยนหน้าเว็บที่โหลดได้ให้เป็น Soup object ที่เราจะสามารถดึงข้อมูลได้ง่าย:

    # Import the package
    import bs4
    # Create Soup
    soup = bs4.BeautifulSoup(response.text, "html.parser")

    เราสามารถดูตัวอย่าง Soup object ได้แบบนี้:

    # Print the first 1,000 characters
    print(soup.prettify()[:1000])

    ผลลัพธ์:

    <!DOCTYPE html>
    <!--[if lt IE 7]> <html lang="en-us" class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
    <!--[if IE 7]> <html lang="en-us" class="no-js lt-ie9 lt-ie8"> <![endif]-->
    <!--[if IE 8]> <html lang="en-us" class="no-js lt-ie9"> <![endif]-->
    <!--[if gt IE 8]><!-->
    <html class="no-js" lang="en-us">
    <!--<![endif]-->
    <head>
    <title>
    Sapiens: A Brief History of Humankind | Books to Scrape - Sandbox
    </title>
    <meta content="text/html; charset=utf-8" http-equiv="content-type"/>
    <meta content="24th Jun 2016 09:29" name="created"/>
    <meta content="
    From a renowned historian comes a groundbreaking narrative of humanity’s creation and evolution—a #1 international bestseller—that explores the ways in which biology and history have defined us and enhanced our understanding of what it means to be “human.”One hundred thousand years ago, at least six different species of humans inhabited Earth. Yet today there is only one—h From a renowned historian comes a g

    สังเกตว่า Soup ประกอบด้วยเนื้อหาและ HTML tag ของหน้าเว็บ


    3️⃣ Step 3. Extract the Content

    ในขั้นสุดท้าย เมื่อได้ Soup object แล้ว เราสามารถดึงข้อมูลที่ต้องการได้ง่าย ๆ ด้วย method อย่าง:

    • .find() สำหรับค้นหา HTML tag ที่ต้องการ
    • .get_text() สำหรับดึงเนื้อหาที่เป็น text
    • .get() สำหรับดึง attribute จาก HTML tag

    ตัวอย่างเช่น ดึงชื่อ:

    # Get the book title
    title = soup.find("h1").get_text()
    # Print the title
    print(title)

    ผลลัพธ์:

    Sapiens: A Brief History of Humankind

    ดึงราคา:

    # Get the price
    price = soup.find("p", class_="price_color").get_text()
    # Print the price
    print(price)

    ผลลัพธ์:

    £54.23

    หรือดึงรูปภาพหนังสือ:

    # Get the img tag
    image_relative_url = soup.find("img").get("src")
    # Set base URL
    base_url = "<https://books.toscrape.com/>"
    # Concatenate the image URL
    image_full_url = base_url + image_relative_url.replace("../", "")
    # Print the image
    print(image_full_url)

    ผลลัพธ์:

    <https://books.toscrape.com/media/cache/ce/5f/ce5f052c65cc963cf4422be096e915c9.jpg>

    เมื่อเปิด URL แล้ว เราจะได้ภาพหนังสือแบบนี้:


    💪 บทสรุป

    วิธีใช้ BeautifulSoup สำหรับ web scraping มีอยู่ 3 ขั้นตอน:

    ขั้นที่ 1. Get the web page:

    # Import the package
    import requests
    # Set the URL
    url = "<https://books.toscrape.com/catalogue/sapiens-a-brief-history-of-humankind_996/index.html>"
    # Get the response
    response = requests.get(url)

    ขั้นที่ 2. Create a Soup object:

    # Import the package
    import bs4
    # Create Soup
    soup = bs4.BeautifulSoup(response.text, "html.parser")

    ขั้นที่ 3. Extract the content:

    # Get the book title
    title = soup.find("h1").get_text()
    # Print the title
    print(title)

    🫵 หลังจบบทความนี้

    หลังอ่านบทความนี้แล้ว อย่าลืมไปลองทำ web scraping กันนะครับ:


    📃 อ้างอิง

  • SQL Subquery คืออะไร? เทคนิคและตัวอย่างการใช้งาน

    SQL Subquery คืออะไร? เทคนิคและตัวอย่างการใช้งาน


    🤨 Subquery คืออะไร?

    Query ใน SQL (Structured Query Language) คือ คำสั่งที่ส่งไปยังฐานข้อมูล (database) เพื่อเรียกดูหรือวิเคราะห์ข้อมูล

    ตัวอย่าง query:

    SELECT ...
    FROM ...

    Subquery คือ query ที่ซ้อนอยู่ใน query อื่น

    ตัวอย่าง subquery:

    SELECT ...
    FROM (SELECT ... FROM ...)
    • SELECT ... FROM คือ query หลัก
    • (SELECT ... FROM ...) คือ subquery

    ถ้าเราเห็น SELECT ในวงเล็บเมื่อไร แสดงว่า เรากำลังใช้ subquery อยู่

    Note:

    • Query หลัก มักเรียกว่า outer query
    • Subquery บางทีเรียกว่า inner query หรือ nested query

    🤔 Subquery ใช้ทำอะไร?

    Subquery ใช้วิเคราะห์ข้อมูล (data transformation) ให้กับ query หลัก ซึ่งทำให้:

    • วิเคราะห์ข้อมูลได้ยืดหยุ่นมากขึ้น (dynamic aggregation)
    • กรองข้อมูลได้ยืดหยุ่นมากขึ้น (dynamic filtering)
    • เชื่อม tables ได้ง่ายขึ้น

    เพราะแทนที่เราจะต้องหาค่าต่าง ๆ ก่อนใส่ลงใน query เราสามารถคำนวณค่าเหล่านี้ใน query ได้โดยตรง


    🧑‍💻 ตัวอย่างการใช้ Subquery

    Subquery ใช้ได้หลายที่ เช่น:

    1. SELECT
    2. WHERE
    3. JOIN

    ไปดูตัวอย่างการใช้งาน subquery กับ chinook database ซึ่งมีข้อมูลของร้านมีเดีย (media) ออนไลน์ (เช่น ข้อมูลลูกค้า ข้อมูลเพลง) กัน

    .

    💻 การใช้ Subquery กับ SELECT

    เราจะใช้ subquery กับ SELECT เพื่อวิเคราะห์ข้อมูลให้กับแต่ละ row ใน table

    ตัวอย่าง:

    หาค่าเฉลี่ย (average) ของ invoice:

    -- Subquery in SELECT
    SELECT
    InvoiceId,
    Total,
    (
    SELECT AVG(Total)
    FROM Invoice -- Subquery
    ) AS Mean
    FROM Invoice;

    ผลลัพธ์:

    SQL subquery in SELECT example

    .

    💻 การใช้ Subquery กับ WHERE

    เราจะใช้ subquery กับ WHERE เพื่อช่วยกรองข้อมูล

    ตัวอย่าง:

    หา invoice ที่มียอดสูงกว่าค่าเฉลี่ย:

    -- Subquery in WHERE
    SELECT
    InvoiceId,
    Total
    FROM Invoice
    WHERE Total > (
    SELECT AVG(Total)
    FROM Invoice -- Subquery
    );

    ผลลัพธ์:

    SQL subquery in WHERE example

    .

    💻 การใช้ Subquery กับ JOIN

    เราจะใช้ subquery กับ JOIN เพื่อสร้าง table ชั่วคราวขึ้นมาเชื่อมกับ table อื่น

    ตัวอย่าง:

    หาว่า ลูกค้าแต่ละคนใช้จ่ายเท่าไร:

    -- Subquery in JOIN
    SELECT
    c.FirstName,
    c.LastName,
    s.TotalSpent
    FROM Customer AS c
    JOIN (
    SELECT
    CustomerId,
    SUM(Total) AS TotalSpent
    FROM Invoice
    GROUP BY CustomerId -- Subquery
    ) AS s
    ON c.CustomerId = s.CustomerId;

    ผลลัพธ์:

    SQL subquery in JOIN example

    🚀 แนะนำ Subquery ขั้นสูง

    Subquery ขั้นสูงที่ควรรู้จัก มี 2 ประเภท ได้แก่:

    1. Correlated subquery
    2. Nested subquery

    .

    💿 Correlated Subquery

    Correlated subquery คือ subquery ที่อ้างอิงถึง column จาก query หลัก

    หมายความว่า การวิเคราะห์ของ correlated subquery ขึ้นอยู่กับ query หลัก

    ตัวอย่าง:

    หาเพลงที่มีความยาวมากกว่าค่าเฉลี่ยของเพลงประเภทเดียวกัน:

    -- Correlated subquery
    SELECT
    t.Name,
    t.Milliseconds,
    t.GenreId
    FROM Track AS t
    WHERE t.Milliseconds > (
    SELECT AVG(t2.Milliseconds)
    FROM Track AS t2
    WHERE t2.GenreId = t.GenreId -- Refer to column in the main query
    );

    สังเกตว่า subquery อ้างอิง t.GenreId จาก query หลัก

    ผลลัพธ์:

    SQL correlated subquery example

    .

    🪹 Nested Subquery

    Nested subquery คือ subquery ที่อยู่ในอีก subquery หนึ่ง

    Nested subquery มักใช้เพื่อแบ่งการวิเคราะห์ข้อมูลออกเป็นขั้นย่อย ๆ

    ตัวอย่าง:

    หาเพลงที่ยาวกว่าความยาวเฉลี่ยของเพลงร็อก:

    -- Nested subquery
    SELECT
    Name,
    Milliseconds
    FROM Track
    WHERE Milliseconds > ( -- Subquery
    SELECT AVG(Milliseconds)
    FROM Track
    WHERE GenreId = ( -- Nested subquery
    SELECT GenreId
    FROM Genre
    WHERE Name = 'Rock'
    )
    );

    ผลลัพธ์:

    SQL nested subquery example

    💡 เทคนิคการเขียน Subquery ให้อ่านง่าย: WITH

    การใช้ subquery อาจทำให้ query ของเราอ่านยากได้

    ตัวอย่าง:

    หาลูกค้าที่ใช้จ่ายสูงกว่าค่าเฉลี่ย:

    SELECT
    CustomerId,
    SUM(Total) AS total_spent
    FROM Invoice
    GROUP BY CustomerId
    HAVING SUM(Total) > (
    SELECT AVG(customer_total)
    FROM (
    SELECT
    CustomerId,
    SUM(Total) AS customer_total
    FROM Invoice
    GROUP BY CustomerId
    ) AS customer_spending
    );

    เพื่อแก้ปัญหานี้ เราสามารถใช้ WITH มาช่วยได้

    WITH เป็นคำสั่งสำหรับสร้างผลลัพธ์ชั่วคราว (Common Table Expression; CTE) ซึ่งเราใช้อ้างอิงใน query ได้

    WITH ทำให้เราใช้ subquery ได้โดยไม่ต้องใส่ subquery ลงใน query หลัก

    ตัวอย่าง:

    -- Use WITH to create CTEs
    WITH customer_spending AS (
    SELECT
    CustomerId,
    SUM(Total) AS total_spent
    FROM Invoice
    GROUP BY CustomerId
    ),
    average_spending AS (
    SELECT AVG(total_spent) AS avg_spent
    FROM customer_spending
    )
    -- SELECT with CTEs
    SELECT
    CustomerId,
    total_spent
    FROM customer_spending -- CTE
    WHERE total_spent > (
    SELECT avg_spent
    FROM average_spending -- CTE
    );

    จะเห็นว่า WITH ทำให้ query ของเราอ่านง่ายขึ้นมาก


    💪 บทสรุป

    • Subquery เป็น query ที่ซ้อนอยู่ใน query อื่น
    • ใช้วิเคราะห์ข้อมูลเพื่อส่งไปใช้ใน query หลัก
    • ใช้ร่วมกับคำสั่งอื่นได้ เช่น SELECT, WHERE, JOIN
    • Correlated subquery คือ subquery ที่อ้างอิง column ใน query หลัก
    • Nested subquery คือ subquery ที่อยู่ใน subquery อื่น
    • ใช้ WITH เพื่อทำให้ query ที่มี subquery อ่านง่ายขึ้น

    🫵 หลังจบบทความนี้

    หลังจบบทความนี้แล้ว มาลองใช้ subquery กันนะครับ

    • ดู code และ database ในบทความนี้บน GitHub
    • ฝึกใช้ SQL และ subquery ฟรีได้ที่ sqliteonline.com

    📄 อ้างอิง

  • Regular Expression คืออะไร? วิธีเขียน RegEx พร้อมตัวอย่าง

    Regular Expression คืออะไร? วิธีเขียน RegEx พร้อมตัวอย่าง


    🤔 Regular Expression คืออะไร?

    Regular Expression หรือ RegEx เป็นการกำหนดรูปแบบข้อความ ด้วยชุดอักขระ (sequence of characters)

    ตัวอย่าง:

    • ค้นหาคำที่ขึ้นต้นด้วย “H”: ^H
    • ค้นหาอีเมลที่ลงท้ายด้วย “.co.th”: \.co\.th$
    • ค้นหาข้อความที่มีตัวเลข: \d+

    ✏️ วิธีเขียน Regular Expression

    RegEx แบ่งได้เป็น 5 กลุ่มที่ใช้งานบ่อย ได้แก่:

    1. Anchors
    2. Character matching
    3. Character shorthand
    4. Quantifiers
    5. Boundaries and grouping

    ไปดูรายละเอียด RegEx ในแต่ละกลุ่มกัน

    .

    1️⃣ กลุ่ม 1. Anchors

    ใช้กำหนดตำแหน่งคำ/ข้อความที่ต้องการ:

    RegExใช้สำหรับตัวอย่าง
    ^ขึ้นต้นด้วย …^H หาคำที่ขึ้นต้นด้วย “H”
    $ลงท้ายด้วย …y$ หาคำที่ลงท้ายด้วย “y”

    .

    2️⃣ กลุ่ม 2. Character Matching

    ใช้กำหนดอักขระของคำ/ข้อความที่ต้องการ:

    RegExใช้สำหรับตัวอย่าง
    .แทนอักขระใด ๆ 1 ตัว (ยกเว้นการขึ้นบรรทัดใหม่)s.t จะได้คำ เช่น sat, sEt, s3t, s-t
    []จับคู่ตัวอักษรใน [][ABC] หาคำที่มี A, B, หรือ C
    [A-Z]จับคู่ A–Z พิมพ์ใหญ่A, F, Q
    [a-z]จับคู่ a–z พิมพ์เล็กa, f, q
    [A-Z
    a-z]
    จับคู่ A–Z พิมพ์เล็กหรือใหญ่ก็ได้a, F, q
    [0-9]จับคู่ตัวเลข 0–90, 4, 9
    \เปลี่ยนความหมายของอักขระ (escape character)\. หมายถึง “.” จริง ๆ

    .

    3️⃣ กลุ่ม 3. Character Shorthand

    สัญลักษณ์แทนอักขระที่ใช้บ่อย:

    RegExใช้สำหรับตัวอย่าง
    \dจับคู่ตัวเลข 0–90, 5, 9
    \wจับคู่ตัวอักษร ตัวเลข หรือ “_”a, A, 3, _
    \sจับคู่ whitespace (เช่น ช่องไฟ, ย่อหน้า, การขึ้นบรรทัดใหม่)Hello\sWorld จะได้คำ เช่น “Hello World”

    .

    4️⃣ กลุ่ม 4. Quantifiers

    ใช้กำหนดจำนวนของรูปแบบที่ต้องการ:

    RegExใช้สำหรับตัวอย่าง
    ?แทนจำนวน 0–1 ครั้งA? จะได้คำ เช่น คำว่าง หรือ A
    *แทนจำนวน ≥0 ครั้งA* จะได้คำ เช่น คำว่าง, A, AA, AAA
    +แทนจำนวน ≥1 ครั้งA+ จะได้คำ เช่น A, AA, AAA
    {n}แทนจำนวน nA{5} หาคำที่มี “A” 5 ตัว
    {n,m}แทนช่วงจำนวน ระหว่าง n และ mA{3,5} หาคำที่มี “A” 3–5 ตัว

    .

    5️⃣ กลุ่ม 5. Boundaries & Grouping

    RegEx กำหนดขอบเขต/กลุ่มของรูปแบบที่ต้องการ:

    RegExใช้สำหรับตัวอย่าง
    \bกำหนดขอบเขตของคำ (word boundary)\bcat\b หาคำว่า “cat” เดี่ยว ๆ
    ()กำหนดกลุ่ม RegEx(abc)+ หาคำที่มี “abc” ตั้งแต่ 1 ครั้งขึ้นไป

    🧑‍💻 ตัวอย่างการใช้ Regular Expression

    ตัวอย่างที่ 1:

    ค้นหาอีเมลที่ลงท้ายด้วย “.co.th”:

    RegEx:

    ^[\w.-]+@[\w.-]+\.co\.th$

    ✅ อีเมลที่ตรง:

    ❌ อีเมลที่ไม่ตรง:

    .

    ตัวอย่างที่ 2:

    ค้นหาเบอร์โทรศัพท์ที่ขึ้นต้นด้วย “08” หรือ “09”:

    RegEx:

    ^0[89]\d{8}$

    ✅ เบอร์ที่ตรง:

    • 0812345678
    • 0898765432
    • 0912345678

    ❌ เบอร์ที่ไม่ตรง:

    • 0612345678
    • 0712345678
    • 0212345678

    .

    ตัวอย่างที่ 3:

    ค้นหาสินค้าที่มีรหัสขึ้นต้นด้วย “ACME”:

    RegEx:

    ^ACME-\d{4}$

    ✅ รหัสที่ตรง:

    • ACME-1234
    • ACME-5678
    • ACME-9012

    ❌ รหัสที่ไม่ตรง:

    • XYZ-1234
    • ACME-123
    • ACME-12345

    🫵 หลังจบบทความนี้

    หลังอ่านบทความนี้แล้ว มาลองฝึกใช้ RegEx กันนะครับ


    📄 อ้างอิง

  • เรื่องเล่าจากอังกฤษ: ทริป 2 ชีวิตคู่ขนาน, ตอน 1/5. Day One

    เรื่องเล่าจากอังกฤษ: ทริป 2 ชีวิตคู่ขนาน, ตอน 1/5. Day One

    ในปี 2018–2019 ผมไปเรียนต่อที่อังกฤษคนเดียว

    ในปี 2026 ผมกลับไปที่อังกฤษอีกครั้ง พร้อมกับพ่อแม่และน้อง

    ต่อไปนี้ คือ เรื่องราวใน 2 ช่วงชีวิตที่เดินคู่ขนานกันไป

    เรื่องราวในปัจจุบันที่สร้างขึ้นใหม่

    และเรื่องราวในอดีตที่ย้อนกลับมาพร้อมกับสถานที่ที่เคยไปเยือน และคนที่เรารู้จัก

    บทความนี้เป็นตอนที่ 1/5 ตอน Day One ซึ่งเล่าเรื่องราวการเดินทางสู่ London การเดินทางไป Dover และ Seven Sisters ทั้งในอดีตและปัจจุบัน



    ⏭️ Time Jump

    อ่านตอนต่อไป:


    🚶 From Cold Sun Walk

    ครั้งหนึ่ง ผมเคยเดินไปตามถนนใน London ท่ามกลางลมหนาวที่พัดผ่านและแสงแดดอันอบอุ่นที่สาดส่องจากท้องฟ้าฤดูหนาว

    ผมตั้งชื่อเพลย์ลิสต์ของวันนั้นว่า Cold Sun Walk

    และนี่คือเพลงหนึ่งในเพลย์ลิสต์นั้น

    Note: ดูเพลงทั้งหมดในเพลย์ลิสต์


    🌎 Day 01. Part I, Arrival

    🗓️ Date: Saturday 30 May 2026

    .

    ✈️ (1) Above the Cloud

    📆 2026
    📍 Somewhere over Europe

    ตอนธีร์ น้องของผม ลุกไปเข้าห้องน้ำ ผมลุกตามไปด้วย เพื่อจะได้รบกวนผู้โดยสารที่นั่งติดทางเดินแค่ครั้งเดียว แทนที่จะเป็น 2 ครั้ง

    แสงสว่างจากข้างนอกส่องลอดหน้าต่างเล็ก ๆ ของประตูทางออกเข้ามาบนทางเดินแคบ ๆ ที่เรายืนเข้าห้องน้ำท้ายเครื่อง

    น่าจะเป็นช่วงเช้า คนเลยเยอะ ผมคิด เพราะมีคนต่อแถวอยู่ก่อนเราแล้ว 2–3 คน

    พอไม่มีผ้าห่ม อากาศในเครื่องก็รู้สึกหนาวขึ้นมา แถวค่อย ๆ เคลื่อนไปอย่างช้า ๆ มีผู้โดยสารเข้ามาต่อหลังเราเรื่อย ๆ

    “เมื่อกี้มีเครื่องบินผ่านมาด้วย” ธีร์พูดเมื่อถึงตาเราไปยืนอยู่หน้าห้องน้ำ ซึ่งอยู่ติดกับประตูทางออก

    “ไหน ๆ” ผมถาม มองออกไปเห็นแต่เมฆสีขาวและฟ้าสีคราม

    “มันบินผ่านไปแล้ว”

    พอถึงผู้หญิงคนก่อนหน้าใช้ห้องน้ำเสร็จ ธีร์ก็เข้าไปใช้ต่อ

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

    ชีวิตจะดูน่าตื่นเต้นเกินไป

    พอธีร์ออกจากห้องน้ำ ผมรีบเข้าไปต่อ ก่อนปิดประตูห้องน้ำ ผมเห็นแถวยาวไปที่ทางเดินอีกฝั่งแล้ว

    .

    📆 2018
    📍 Muscat International Airport, Oman
    Muscat International Airport (2018)

    ตอนที่ลงจากเครื่อง ผมหวังว่าจะมีใครไปทางเดียวกับผมบ้าง

    แต่ดูเหมือนจะไม่มีเลย

    ระหว่างหาทางไปเกตสำหรับเที่ยวบินไป London ผมเริ่มไม่แน่ใจว่าตัดสินใจถูกไหมที่มาเรียนต่อ แม้จะเป็นมหาวิทยาลัยที่คาดหวังไว้ แต่แล้วยังไง? เรียนจบแล้วจะช่วยอะไรผมได้บ้าง? และที่สำคัญ ผมจะเรียนจบไหม?

    ผมอาจจะคิดผิดที่มาเรียนต่อ แทนที่จะทำงานต่อ บางทีถ้าผมทำงานสะสมประสบการณ์ไปเรื่อย ๆ ชีวิตผมอาจจะดีขึ้นสักวัน

    การมาเรียนต่อก็เหมือนการหยุดเวลา ปล่อยให้คนอื่นแซงหน้าเราไป แม้จะมีปริญญาจากมหาวิทยาลัยดี ๆ ก็ใช่ว่าจะมีใครสนใจ

    “ถ้าเป็นพี่ พี่ก็จะไม่สนใจว่าแกจบ ป.โท มา” พี่ที่ทำงานเก่าเคยพูดไว้ “พี่จะดูประสบการณ์ว่าทำงานได้หรือเปล่า”

    ซึ่งผมเห็นด้วย ไม่ใช่ทุกอย่างที่เรียนมาจะเป็นประโยชน์ในการทำงาน ยิ่งคิดก็ยิ่งหดหู่ เพราะผมชอบสาขาที่เรียน แต่สิ่งที่เรียนไม่มีใครเห็นค่าเลย

    ผมน่าจะคิดผิดที่มาเรียนต่อ

    ผมมองไม่เห็นอนาคตตัวเองเลย

    จากกรุงเทพฯ เครื่องใช้เวลา 6–7 ชั่วโมงกว่าจะมาถึง Oman และจาก Oman ไป London ก็ใช้เวลาอีก 7–8 ชั่วโมง

    ผมเหมือนแค่ยืดเวลาออกไป ไม่อยากให้อนาคตอันมืดมนที่จะต้องมาถึงในที่สุดมาถึง

    .

    📆 2026
    📍 Somewhere over Europe

    อาหารเช้ามาเสิร์ฟพร้อมอาหารเย็นที่ผมขอให้พนักงานช่วยเก็บเอาไว้ เพราะตอนนั้นดึกเกินสำหรับมื้อค่ำ และอยากพักแผลบนปากที่เพิ่งได้มาตอนอยู่ที่สนามบิน (ดูเรื่องราวในภาคผนวกท้ายบทความ)

    พนักงานเก็บถาดอาหารไปได้ไม่นาน กัปตันก็ประกาศว่าเราจะถึงสนามบินในไม่ช้า

    นอกหน้าต่าง เครื่องค่อย ๆ ลดระดับลงจนมองเห็นทะเลข้างล่างซึ่งมีฟาร์มกังหันลมตั้งอยู่

    เมื่อ 7 ปีที่แล้ว ผมฝันถึงกังหันลมในน้ำ และหลังจากนั้น ผมก็ได้เห็นของจริงระหว่างไปเที่ยว Seven Sisters กับเพื่อน ผมยังสงสัยว่าอะไรทำให้ผมฝันถึงสิ่งที่ผมไม่เคยรู้ว่ามีอยู่มาก่อนได้

    ฟาร์มกังหันลม

    .

    เครื่องบินค่อย ๆ บินเข้าสู่เกาะอังกฤษ ทะเลถูกแทนที่ด้วยผาสีขาวที่เป็นเอกลักษณ์ของเกาะอังกฤษ และจากนั้นก็เป็นพื้นที่สีเขียวเปิดโล่ง ซึ่งมีแต้มสีน้ำตาลของเมืองและหมู่บ้านอยู่เป็นจุด ๆ

    “ตรงนั้น คือ The Shard ที่อยู่ในเรื่อง Spider-Man” ผมบอกธีร์กับแม่ที่นั่งอยู่แถวหลัง

    “ตรงนั้น น่าจะเป็นตึกที่ทำให้รถละลาย” ผมพูด “เลยขึ้นไปจะเป็น London Eye กับ Big Ben”

    ไม่คิดเลยว่าจะได้กลับมาที่นี่อีก ผมคิดระหว่างที่มองดู London ในแสงแดดยามเช้า

    London

    .

    📆 2018
    📍 London

    เครื่องบินเหนือ London ที่มีเมฆฝนปกคลุม ผมมองเห็นแม่น้ำ Thames และตัวสีน้ำตาลเทา แต่ไม่เห็น Big Ben ที่เป็นแลนด์มาร์กของ London

    .

    🛃 (2) Airport

    📆 2026
    📍 Heathrow Airport, London

    อาคารผู้โดยสารดูว่างเปล่า แต่อบอุ่นด้วยแสงอาทิตย์ที่สาดเข้ามาผ่านหน้าต่างกระจกบานใหญ่ของอาคาร

    Heathrow Airport

    ที่ด่านตรวจคนเข้าเมือง เราต่อแถวสำหรับคนที่ไม่ได้ถือพาสปอร์ตอังกฤษ ผมนึกถึงขากลับจากโปรตุเกส ที่ Younghoon เพื่อนชาวเกาหลีเดินผ่านด่านได้เร็วกว่าผม เพราะใช้เครื่องอัตโนมัติได้

    พอถึงคิว เราก็เข้าไปยื่นพาสปอร์ตพร้อมกัน 4 คนให้กับเจ้าหน้าที่

    “เดินทางมาทำอะไรครับ?” เจ้าหน้าที่ถาม

    “มาเที่ยว”

    “กี่วัน?”

    “10 วัน” ธีร์หรือพ่อตอบ ผมเก็บมือถือที่กำลังจะหยิบขึ้นมาเช็กวันใส่กระเป๋าเหมือนเดิม

    เราสแกนลายนิ้วมือกันทีละคนจนครบ แล้วเจ้าหน้าที่ก็คืนพาสปอร์ตให้

    “ขอให้โชคดีครับ” เจ้าหน้าที่พูดพร้อมกับยิ้มต้อนรับ

    “ขอบคุณครับ”

    .

    เราตรงมาที่โซนรับกระเป๋า ผมจำไม่ได้ว่าสนามบินเปลี่ยนไปไหม เพราะผมจำไม่ได้ด้วยซ้ำว่าครั้งที่แล้วเคยมาที่นี่

    เรายกกระเป๋าลงจากสายพานจนครบ ก็เอากระเป๋าคาดตัวใบเล็กออกมาและใส่เงินกับบัตรเครดิตที่ไม่ใช้ลงไป แม้จะไม่ได้กลับมานาน 7 ปี แต่ผมก็ยังจำได้ว่า London มีโจรล้วงกระเป๋าเยอะแค่ไหน

    เราช่วยกันลากกระเป๋าออกจากอาคาร ลงบันไดเลื่อนและเดินไปตามอุโมงค์เพื่อไปที่สถานีรถไฟใต้ดิน

    ผมจำสภาพของทางเดินที่เก่าและดูสกปรกเมื่อเปรียบกับอาคารผู้โดยสารได้ เมื่อ 8 ปีก่อน ผมเคยเดินผ่านที่นี่และแวะที่ร้านสะดวกซื้อซึ่งตั้งอยู่ที่ไหนสักแห่ง ถ้าไม่ถูกปิดไปแล้ว ผมจำไม่ได้ว่าผมเข้าไปที่ร้านเพื่อซื้อบัตร Oyster หรือเติมเงินในบัตร Oyster ที่ผมรับช่วงต่อจากพี่มุก รุ่นพี่ที่มาเรียนที่อังกฤษก่อนผม

    “ไปทางไหนต่อ?” แม่ถาม

    พ่อเดินเข้าไปถามพนักงานที่ยืนอยู่ตรงทางเข้าที่จะพาไปสู่ชานชาลา

    “วันนี้รถไฟหยุดเดิน เราต้องเดินย้อนกลับไป”

    เราเดินย้อนกลับไปตามทางเดิม ระหว่างทางยังมีผู้โดยสารที่เดินไปทางสถานีอยู่เรื่อย ๆ

    “แล้วแทนที่มีคนยืนดักตั้งแต่ต้นทาง” พ่อพูด

    .

    เมื่อกลับขึ้นมาบนดิน เราเดินไปต่อแถวที่เกาะกลางถนนใต้อาคาร ซึ่งมีคนยืนต่ออยู่แล้วเป็นจำนวนมาก

    “ไปถามเขาให้หน่อย” พ่อบอก

    แม้เราจะอยู่ในแถวแล้ว แต่เพราะไม่มีป้ายหรือประกาศจากพนักงาน เราไม่แน่ใจว่าแถวนี้เป็นแถวขึ้นรถบัสทดแทนหรือเปล่า

    ธีร์ผละจากแถวเพื่อไปถามพนักงานที่ยืนอยู่ที่ทางม้าลายซึ่งเชื่อมเกาะกลางถนนกับอาคารผู้โดยสาร ดูการชี้นิ้วของพนักงานแล้ว ผมคิดว่าเราจะต้องไปอีกจุดหนึ่ง

    “ตรงนี้แหละถูกแล้ว” ธีร์บอก

    “แล้วเขาชี้ไปทางนั้นทำไม?” ผมถาม

    “ตอนแรก เขาเข้าใจว่าเรายังไม่ได้อยู่ในแถว เขาเลยจะให้ไปรอเรียกที่อีกฝั่ง”

    ผมพอเข้าใจแล้ว ตอนที่เรามาถึง เกาะกลางถนนยังพอมีที่ให้ยืน แต่พอคนเริ่มมากขึ้น หางแถวจะยาวลงไปบนถนนได้ พนักงานเลยเข้ามาจัดระเบียบ ค่อย ๆ ปล่อยให้คนข้ามมาเมื่อแถวสั้นลง

    แถวค่อย ๆ เคลื่อนไปข้างหน้า อ้อมเสาที่ค้ำยันอาคาร มาถึงจุดที่รถบัสจอดรอรับผู้โดยสาร ซึ่งมีพนักงานคอยขนกระเป๋าขึ้นรถ และพนักงานที่คอยดูคิวคนขึ้นรถ

    พอมาถึงคิวเรา พนักงานก็ยกกระเป๋าของเราใส่ใต้ท้องรถ ทำได้ 2 ใบก็บอกให้เราส่วนหนึ่งขึ้นรถ ส่วนที่เหลือให้รอคันต่อไป

    “เรามาด้วยกัน” พ่อพูด

    พนักงานยกกระเป๋าเราลงจากรถ

    “มีใครจะไปบ้าง? ขอสองคน” พนักงานประกาศเสียงดัง คนที่ต่อหลังเดินผ่านเราไป

    “สามคนนี้น่าเกลียดมาก” ธีร์พูด หมายถึงชาวต่างชาติ 3 คนที่ยืนอยู่หน้าเรา ทั้งที่ก่อนหน้านี้เรายืนอยู่หัวแถว

    “อ้าว มาจากไหน?” ผมถาม

    “ตอนแรกเขามาถามพนักงาน แล้วก็เข้ามายืนเลย” ธีร์บอก “พนักงานข้างหน้า” หมายถึงพนักงานที่จัดคนขึ้นรถ “ส่งสัญญาณเรียกผู้หญิง” หมายถึงพนักงานอีกคนที่ยืนอยู่ข้างแถวข้างหลังเรา “แต่เขาไม่ยอมมาจัดการ”

    รถบัสคันถัดไปที่จอดรออยู่แล้ว เข้ามาแทนที่คันที่เพิ่งออกไป พนักงานขนกระเป๋าเราใส่ใต้ท้องรถอีกครั้งและบอกให้พวกเราขึ้นรถไป

    รถบัสทดแทน

    พ่อกับแม่เลือกนั่งแถวหน้าสุด ส่วนผมกับธีร์นั่งแถวหลังประตูฉุกเฉินเพราะมีที่ให้ยืดขาเยอะกว่า

    ไม่นาน ผู้โดยสารก็เต็มคันและรถก็ออกตัว การจราจรติดขัดทำให้รถเคลื่อนตัวได้ช้า

    “ขอนอนก่อน” ธีร์พูดเมื่อพ้นสนามบินมาได้ไม่นาน “ถึงแล้วปลุกด้วย”

    พอรถหลุดจากจุดที่การจราจรติดขัดและวิ่งคงความเร็วได้สะดวก ผมก็พักสายตาบ้าง เพราะตอนอยู่บนเครื่อง ผมได้นอนแค่ 4–5 ชั่วโมงเท่านั้น

    .

    🏢 (3) London

    📆 2018
    📍 On a tube to London

    แม้จะมีที่นั่งว่าง แต่ผมเลือกยืนตามความเคยชิน มือหนึ่งจับราวเหล็กเหนือหัว อีกมือถือโทรศัพท์ที่เปิด Google Maps ไว้ เพราะผมไม่อยากลงผิดสถานี

    ข้างนอกหน้าต่าง บ้านเรือนก่ออิฐทรงอังกฤษแล่นผ่านผ่านหน้าต่างที่เปื้อนน้ำฝน ท้องฟ้าข้างบนมืดมัวด้วยเมฆฝน สะท้อนความรู้สึกข้างในของผมเป็นอย่างดี

    .

    📆 2026
    📍 London

    ตอนที่รถมาถึงที่จุดหมาย ผมรู้สึกเหมือนเพิ่งหลับตาเมื่อกี้นี้เอง

    เราลงจากรถและรับกระเป๋าที่พนักงานขนออกมาวางไว้บนทางเท้า พอได้ครบทั้ง 5 ใบแล้ว เราก็ออกเดินไปที่ Hammersmith ซึ่งเป็นสถานีรถไฟใต้ดินที่ใกล้ที่สุด

    อากาศวันนี้แจ่มใส ท้องฟ้าปลอดโปร่ง พยากรณ์บอกว่า London จะเจออากาศร้อนสูงถึง 35 องศา แต่ตอนนี้ อากาศกำลังดี ไม่หนาวและไม่ร้อนจนเกินไป

    บรรยากาศส่วนนี้ของเมืองดูคุ้น ๆ แต่ผมไม่แน่ใจว่าเคยมาที่นี่แล้วไหม

    Hammersmith

    ทางเข้าสถานีอยู่ภายในมอลล์แห่งหนึ่ง ก่อนแตะบัตรเข้า เราหยิบแผนที่แจกฟรีมา 1 แผ่นสำหรับดูทางที่เราจะต้องไป เราไม่อยากจะใช้มือถือระหว่างเดินทาง เพราะกลัวจะถูกขโมย

    ชานชาลาของ Hammersmith เป็นแบบเปิดโล่ง ผมคุ้น ๆ ภาพชานชาลาแบบนี้ แต่ก็ยังบอกไม่ได้ว่าเคยมาที่นี่ไหม หรือเป็นสถานีอื่นที่คล้าย ๆ กัน

    สถานี Hammersmith

    เรานั่งรถไฟสาย Piccadilly เพื่อมุ่งหน้าขึ้นเหนือ ระหว่างทาง ผมก็นึกถึง Sam Yong เพื่อนชาวสิงคโปร์ที่ชอบถามว่าคนไทยออกเสียง Piccadilly line ว่ายังไง

    “พิกคาดิลลี่ลายน์” Sam Yong มักทวนอย่างขำ ๆ เมื่อได้คำตอบจากผม เพราะการออกเสียงของคนไทยแปลกหูสำหรับ Sam Yong

    เราลงที่สถานี Caledonian ซึ่งเป็นสถานีใต้ดินแบบเก่า พอออกจากสถานี เราก็ต้องยอมเปิดโทรศัพท์เพื่อดู Google Maps เพราะไม่รู้ว่าต้องไปทางไหนต่อ ทางเดินและถนนที่นี่มีคนอยู่บางตา น่าจะเป็นเพราะเป็นเขตที่อยู่อาศัย ไม่ใช่เขตธุรกิจ

    สถานี Caledonian Road

    “ทางนี้” พ่อพูดหลังจากดู Google Maps

    “UCL” พ่อพูดหลังจากเดินผ่านมาได้ไม่กี่ตึก

    ที่ตึกด้านขวามือ มีป้ายเขียนว่า UCL New Hall ซึ่งผมจำได้ว่าเป็นหนึ่งในหอพักของ UCL (University College London) เหมือนกับ Ifor Evans ที่ผมเคยพักเมื่อ 7 ปีก่อน

    ผมไม่แน่ใจว่าเคยมาที่นี่ไหม อาจจะเคย หรือไม่เคยก็ได้

    .

    📆 2018
    📍 Camden Town, London

    อากาศข้างในสถานี Camden Town ค่อนข้างร้อน หลังจากลงรถมาและไม่เห็นลิฟต์สักตัว ผมก็จำใจยกกระเป๋าหนัก 30 กิโลกรัมขึ้นบันไดวนแคบ ๆ เพื่อจะออกจากสถานี พอมาถึงชั้นบนก็มีเหงื่อออกที่หลังแล้ว

    เสียงล้อกระเป๋าดังกึกกักขณะที่ผมลากกระเป๋าไปตามทางเดินและถนนที่ขรุขระ พอมาถึงเป้าหมายที่ปักไว้ใน Google Maps ผมก็ไม่รู้จะต้องทำยังไงต่อ

    ผมจำไม่ได้ว่า เข้าไปใน reception ซึ่งเป็นตึกห้องเดี่ยวเล็ก ๆ ที่ตั้งอยู่ตรงกลาง Ifor Evans ได้ยังไง แต่หลังจากกรอกเอกสารและรับกุญแจห้องมาแล้ว ก็มีผู้หญิงคนหนึ่งพาผมเดินไปที่อาคารซึ่งอยู่ข้าง ๆ

    “ให้ช่วยไหมคะ?” เธอถามเมื่อมาถึงหน้าตึกซึ่งเป็นบันไดยกสูงขึ้น

    “ไม่เป็นไร ขอบคุณครับ”

    ผมยกกระเป๋าใบหนักขึ้นตึกมา ระหว่างทางสังเกตเห็นป้ายที่ติดอยู่เหนือประตู

    “Denys Holland คือชื่อตึกหรอ?” ผมถาม

    “ใช่ค่ะ”

    แล้วเราไม่ได้สมัครมาอยู่ที่ Ifor Evans หรอ? ผมคิดในใจแต่ไม่ได้ถามออกมา ถ้ามีอะไรผิดพลาด พนักงานที่ reception คงจะติดต่อมาทีหลังเอง

    ผมมารู้ทีหลังว่า Ifor Evans เป็นชื่อหอพัก ซึ่งน่าจะตั้งตามชื่อตึกที่ใหญ่ที่สุด ภายในรั้วเดียวกันยังมีตึกอื่นอย่าง Max Rayne และ Denys Holland ที่ผมได้มาอยู่ Ifor Evans เป็นตึกสำหรับนักศึกษา ป.ตรี ส่วน Max Rayne และ Denys Holland มีไว้สำหรับนักศึกษา ป.โท และ ป.เอก

    “ห้องอยู่ชั้น 2 คะ” ผู้หญิงที่นำทางบอกเมื่อเราเข้ามาในอาคารแล้ว

    “โอเคครับ” แล้วผมก็ยกกระเป๋าขึ้นบันไดอีกครั้ง

    ห้องผมอยู่เกือบกึ่งกลางอาคาร ใกล้กับประตูกั้นไฟที่แบ่งตึกออกเป็น 2 ส่วน

    “โชคดีนะคะ” ผู้หญิงนำทางพูด หลังไขประตูเข้ามาในห้องแล้ว

    “ขอบคุณครับ”

    ประตูห้องที่หนาและหนักปิดลงเอง

    ห้องมีทรงยาว พื้นทั้งหมดปูด้วยพรม ยกเว้นส่วนที่อยู่ใต้อ่างล้างมือติดกับประตู ตรงข้ามอ่างล้างมือมีตู้เสื้อผ้าไม้เก่า ๆ ที่ประตูส่งเสียงทุกครั้งที่เปิดออก ข้างในมีไม้แขวนเสื้ออยู่ 2–3 อัน ซึ่งน่าจะเป็นของคนที่เคยอยู่ห้องนี้มาก่อน

    ลึกเข้าไปทางขวามือเป็นเตียงเดี่ยวพร้อมฟูกที่นอน ข้างซ้ายเป็นชั้นวางของเตี้ย ๆ ถัดไปเป็นโต๊ะทำงานที่มีชั้นวางของอยู่เหนือหัว และที่ปลายสุดห้อง ตรงข้ามกับประตูห้อง เป็นที่ทำความร้อนและหน้าต่างที่มองลงไปเห็น reception ที่ผมเคยออกมา

    วิวจากห้องที่ Ifor Evans (2018)

    บรรยากาศในห้องเงียบสงบ ทำให้ผมรู้สึกโดดเดี่ยวมากกว่าเดิม

    ผมจะต้องอยู่ในประเทศนี้ที่ผมไม่รู้จักใครเลย ไปอีก 1 ปี

    .

    🚙 (4) Rental

    📆 2026
    📍 SIXT, Caledonian Road, London

    บริษัทรถเช่า SIXT อยู่ถัดไปจาก New Hall ไปแค่ 3 ช่วงตึก

    ข้างในมีพนักงานคอยต้อนรับอยู่หลังเคาน์เตอร์แค่คนเดียว

    “ขอเช็กรถก่อน” พนักงานบอกพ่อกับธีร์ที่เดินไปที่เคาน์เตอร์ ส่วนผมกับแม่นั่งเฝ้ากระเป๋าอยู่มุมหนึ่ง “เพราะจริง ๆ คุณจะต้องมารับรถตอน 9 โมง”

    “ใช่” พ่อตอบ “แต่สถานีรถไฟปิด เราเลยต้องนั่งรถบัสมาแทน”

    เพราะข้างในไม่มีใครนอกจากเรา ผมเดินไปที่เคาน์เตอร์เพื่อช่วยพ่อกับธีร์ฟังรายละเอียดรถเช่า

    “ผมมีข้อเสนอ 2 ตัวเลือก” พนักงานพูดหลังจากเช็กในระบบ “option แรก คือ คันนี้” เปิดรูปรถคันหนึ่งให้ดูบนจอเล็ก ๆ สำหรับลูกค้า “ซึ่งเป็นรถที่พวกคุณจองไว้ กับ option 2 คันนี้” เปิดรูปรถอีกคัน “เป็นรุ่นใหม่กว่า แต่ต้องจ่ายเพิ่ม”

    “จ่ายเพิ่มเท่าไร?” พ่อถาม

    “24 ปอนด์ต่อวัน” พนักงานตอบ คิดเป็นเงินไทยราว ๆ 1,056 บาทต่อวัน “แต่ถ้าขับทางไกลอย่างสกอตแลนด์ คันนี้จะเหมาะกว่าครับ”

    “เขาพยายาม upsell เรา” ธีร์บอกเป็นภาษาไทย

    “Upsell เขาก็ฟังออก” ผมบอก

    “ไม่เป็นไรหรอก”

    หลังจากตัดสินใจกันอยู่นาน พ่อก็เลือกรถคันแรกที่เราจองไว้

    “ได้ครับ” พนักงานตอบ หันกลับไปที่หน้าจอคอมพิวเตอร์ของตัวเอง “ผมจะอัปเกรดให้เป็นอีกคัน ฟรีครับ”

    “ขอบคุณครับ” เราตอบ

    “อันนี้เป็นใบรับรถ” พนักงานยื่นกระดาษใบหนึ่งให้เราหลังจากเซ็นเอกสารกันแล้ว “ออกไป เดินตรงไป 2 บล็อกแล้วเลี้ยวขวา จะเจออู่รถของเราอยู่ ยื่นใบนี้ให้พนักงานตรงนี้ รถรอพร้อมอยู่แล้วครับ”

    .

    เราลากกระเป๋าไปตามทางเดินเตี้ย ๆ พอถึงสี่แยกที่ 2 เราก็เลี้ยวขวาตามที่และเห็นอู่รถอยู่ทางซ้ายมือ

    เราเข้าไปในอู่ที่มีรถจอดอยู่หลาย 10 คัน ธีร์ยื่นใบรับรถให้พนักงาน แล้วก็เดินกลับมาหาผมกับพ่อแม่ที่ยืนรออยู่ใกล้ ๆ รถคันที่คิดว่าเป็นของเรา

    “เขาบอกให้เลื่อนรถเอง” ธีร์พูด

    รถจอดชิดผนังด้านในสุดของอู่ ธีร์ปีนขึ้นไปบนที่นั่งคนขับแล้วเลื่อนรถออกมา พอให้เปิดประตูท้ายรถเพื่อจะขนกระเป๋าขึ้นได้

    พอขนกระเป๋าเสร็จแล้ว ผมก็ขึ้นไปนั่งบนรถ ห้องโดยสารใหญ่พอจะนั่งได้ 7 คน แม้เราจะมีกันแค่ 4 คน พ่อเลือกรถใหญ่ไว้เพื่อจะขนของโดยเฉพาะ

    ธีร์สลับมานั่งข้างคนขับ ส่วนพ่อขึ้นนั่งหลังพวงมาลัย ตอนจอง พ่อลงชื่อคนขับไว้คนเดียว ถ้าจะต้องมีคนขับเพิ่ม เราจะต้องจ่ายเงินเพิ่มเป็นรายวัน พ่อไม่ได้ใส่ชื่อผม เพราะผมขับรถไม่คล่อง ส่วนธีร์ยังอายุไม่ถึง 30 ทำให้ต้องจ่ายค่าเช่ามากขึ้นถ้าจะเป็นคนขับ

    “ออกไปเลี้ยวขวา” ธีร์พูดหลังจากเปิด Google Maps

    .

    เราขับผ่านย่านที่อยู่อาศัยของ London พ่อบอกว่าอยากเข้าห้องน้ำ เราเลยแวะเข้าไปที่ปั๊มแห่งหนึ่ง แต่ไม่ได้จอดเพราะมองไม่เห็นห้องน้ำที่จะเข้าได้เลย

    ภาพเมืองที่วิ่งผ่านหน้าต่างทำให้ผมนึกถึงประสบการณ์ในอดีต

    ผมนึกถึงตอนที่นั่งจิบชาในวันฝนตกกับ Wa เพื่อนชาวพม่าของพี่มุกที่เก็บของที่พี่มุกส่งต่อให้ผม

    นึกถึงตอนที่เหล่าอี๊นัดเจอที่ร้านอาหารไทยแห่งหนึ่ง ไม่ไกลจากถนนที่เรากำลังขับผ่าน ตอนที่เหล่าอี๊พาเด็ก ๆ มาทัศนศึกษา

    นึกถึงตอนที่เดินหา community centre ซึ่งเป็นที่นัดเรียน capoeira ของ capoeira club

    นึกถึงตอนที่ผมชวนเพื่อนจาก Ifor Evans และเพื่อนคนไทยไปดู Avengers: Endgame ด้วยกัน

    นึกถึงช่วงหน้าหนาวที่ผมเดินไปเรียนได้โดยไม่ต้องกลัวเหนื่อย

    ทุกอย่างดูเหมือนเพิ่งจะเกิดขึ้นไม่นาน แต่ก็ 7 ปีมาแล้ว


    🕊️ Day 01. Part II, The Past

    🗓️ Date: Saturday 30 May 2026

    .

    🌊 (1) Dover

    📆 2026
    📍 Road to Dover

    เราวิ่งตามถนนระหว่างเมือง เมื่อพ้นจาก London วิวสองข้างทางก็เปลี่ยนจากตึกและอาคารเป็นเนินหญ้าเปิดโล่งที่บางครั้งจะมองเห็นท้องฟ้าได้ไกลจนสุดขอบฟ้า

    ผมไม่ค่อยได้เห็นวิวแบบนี้บ่อยนัก เพราะทุกครั้งที่ผมออกนอก London ผมมักจะบินหรือใช้รถไฟ จะมีแค่ครั้งเดียวที่ผมได้ใช้ถนนระหว่างเมือง คือ ตอนที่ไป one-day trip กับก้านว่าน เพื่อนคนไทยที่เรียนโปรแกรมเดียวกัน

    ผมเคยคุยกับแอล เพื่อนคนไทยที่มาเรียนปีถัดจากผม ว่าท้องฟ้าที่นี่ดูเหมือนอยู่ไกล

    “มันต้องอยู่ใกล้หรือเปล่า?” แอลถามกลับ

    ผมยังหาคำตอบให้ตัวเองไม่ได้ว่าใกล้หรือไกล แต่ท้องฟ้าที่นี่แตกต่างจากท้องฟ้าที่ไทย และน่าดึงดูดอย่างบอกไม่ถูก โดยเฉพาะในวันที่อากาศแจ่มใสอย่างวันนี้

    แม้จะนอนบนเครื่องไม่พอ แต่ระหว่างทางไป Dover ผมก็หลับไม่ลง เพราะยัง jetlag อยู่

    ใช้เวลา 2 ชั่วโมงกว่า ๆ เราก็มาถึง Dover

    .

    📆 2019
    📍 Dover

    แม้จะตั้งใจไว้แล้วว่าจะไม่เที่ยวเยอะจนเกินไป เพราะระหว่างเรียน ผมไม่ได้ทำงานหาเงินใช้เองเหมือนตอนที่เรียนอยู่ออสเตรเลีย แต่ผมก็อดเสียดายโอกาสที่จะเที่ยวในอังกฤษบ้าง

    Dover เป็น 1 ใน 2 ที่สุดท้ายที่ผมตัดสินใจจะไปเที่ยวก่อนกลับไทย (อีกที่ คือ Seven Sisters)

    ผมตั้งใจว่าจะไปให้ได้ แม้จะต้องไปคนเดียว เพราะถ้าไม่ไปครั้งนี้ ผมก็จะไม่มีโอกาสอีกแล้ว

    ก่อนวันเดินทาง ช่วงมื้อเย็นที่ Ifor Evans เหมือนจะเป็น Sam Yong ที่ยกเรื่องนี้ขึ้นมาให้ทุกคนรู้ว่า ผมจะไปเที่ยว Dover ผมถามต่อว่ามีใครอยากไปด้วยบ้าง ก็มี Xinyu เพื่อนชาวจีนที่บอกว่าจะไปด้วย

    ตอนเช้า เรานั่งรถไฟมาที่ Dover และเดินตรงไปที่ White Cliffs ซึ่งเป็นจุดหมายของเรา อากาศวันนั้นแจ่มใส แม้จะช่วงหน้าร้อน แต่ลมทะเลทำให้อากาศเย็นแม้จะมีแสงแดดตลอดเวลา

    Dover เป็นจุดที่อยู่ใกล้ฝรั่งเศสที่สุด ระหว่างเดินบน White Cliffs เรามองเห็นแผ่นดินฝรั่งเศสที่สุดขอบทะเลได้ราง ๆ และเครือข่ายมือถือที่ผมใช้อยู่ส่งข้อความต้อนรับสู่ฝรั่งเศสเพราะมือถือจับสัญญาณจากฝั่งนั้นได้

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

    White Cliffs of Dover (2019)

    หลังจากกลับขึ้นไปบน White Cliffs เราเดินผ่านเนินทุ่งหญ้าที่โบกสบัดในสายลมไปเรื่อย ๆ จนถึงประภาคารแห่งหนึ่ง ผมอยากจะไปต่อ แต่ยิ่งเดินไกลออกไปก็จะยิ่งใช้เวลากลับเข้า Dover มากขึ้นเท่านั้น

    White Cliffs of Dover (2019)
    White Cliffs of Dover (2019)

    ตอนกลับมาถึง Dover ผมก็เริ่มหิว แต่เราตรงไปที่สถานีรถไฟเพื่อกลับ London ผมจำได้ว่าผมนั่งอ่าน The City and the Stars ของ Arthur C. Clarke ตอนอยู่บนรถไฟ และเหมือนเย็นนั้น เราจะทันกลับไปกินมื้อเย็นที่ Ifor Evans

    .

    📆 2026
    📍 Dover

    ก่อนออกจาก London ทุกคนก็หิวแล้ว เพราะเรากินข้าวกันครั้งสุดท้ายก่อนเครื่องลงจอดที่สนามบิน Heathrow

    แม่ให้ผมช่วยหาร้านอาหาร และผมเจอร้าน fish and chips ร้านหนึ่งที่น่าสนใจ

    เราหาที่จอดใกล้ ๆ กับร้าน ซึ่งอยู่ติดกับโบสถ์แห่งหนึ่ง และสวนสนุกชั่วคราว พอจอดรถแล้ว เราก็ลงไปดูวิธีจ่ายเงินที่ตู้อัตโนมัติ

    เพราะผมไม่เคยขับรถในอังกฤษ ผมเลยเพิ่งรู้ว่าที่นี่ใช้ระบบ pay and display คือ จอดแล้วจ่ายเลย ซึ่งหมายความว่า เราจะต้องกะเวลาที่เราจะจอดรถให้ดี เพราะถ้าจ่ายน้อยไป เราจะต้องกลับมาจ่ายเพิ่มก่อนเวลาหมด และถ้าจ่ายมากเกินไปก็จะเสียเงินเปล่า

    “เราจะอยู่กันนานเท่าไร?”

    “อยากให้ช่วยไหมครับ?” ชายคนหนึ่งถาม เดินตรงมาหาเราที่ตู้จ่ายเงิน “พูดอังกฤษได้ไหม?”

    “ไม่เป็นไรครับ” ธีร์ซึ่งพูดอังกฤษคล่องที่สุดในกลุ่มตอบ “เรากำลังดูว่าจะจ่ายเท่าไรดี”

    “อ๋อ ผมนึกว่าใช้เครื่องกันไม่เป็น”

    “ไม่เลย” ธีร์พูด “ขอบคุณครับ”

    เราใส่ทะเบียนรถเข้าไป เลือกจ่ายด้วยบัตรเครดิต แล้วก็รับตั๋วไปวางไว้ที่หน้ารถ เราจอดได้อีก 1 ชั่วโมงครึ่ง

    “ห้องน้ำ” ผมชี้ไปที่อาคารก่ออิฐเล็ก ๆ ที่ตั้งอยู่ในบริเวณที่จอดรถ

    พอเข้าห้องน้ำกันเสร็จ เราก็เดินไปที่ร้าน fish and chips ซึ่งตั้งอยู่บนถนนที่มองเห็น Dover Castle ที่ตั้งอยู่บนเนินเขาได้อย่างชัดเจน ไม่น่าแปลกใจที่ร้านตั้งชื่อว่า Castle Takeaway

    Dover Castle
    Dover (2026)

    Castle Takeaway เน้นสั่งกลับบ้าน ในร้านเลยที่นั่งแค่ 3 ที่ หน้าร้าน 2 ที่ และในร้าน 1 ที่

    ในร้าน ป้ายเมนูไม่มีคำว่า fish and chips แต่เป็นชื่อปลาและเมนูอื่น ๆ แทน โชคดีที่ธีร์เคยไป New Zealand มา เลยพอจะช่วยสั่งได้ แต่ถึงอย่างนั้นก็ยังงงกันทั้งคนสั่งและคนรับออเดอร์

    “ขอ cod กับ chips ที่หนึ่ง“ ธีร์พูด ”แล้วก็ชีสเบอร์เกอร์ที่หนึ่ง“

    “โอเค” พนักงานตอบ “รับอะไรเพิ่มอีกไหม?”

    “แล้วม๊าจะเอาอะไร?” ธีร์ถามเป็นภาษาไทย

    “เอาเบอร์เกอร์เนื้อแล้วกัน“

    “แล้วก็ขอเบอร์เกอร์เนื้อเพิ่ม“

    “งั้นเบอร์เกอร์เนื้อ 2 นะครับ”

    “ไม่ครับ ชีส 1, เนื้อ 1”

    “โอเค”

    “แล้วป๊าจะอิ่มหรอ?” ผมถาม เพราะนึกถึงชีสเบอร์เกอร์ แบบ McDonald’s ที่ไทย

    “ขอเพิ่มเนื้อในชีสเบอร์เกอร์ได้ไหม?” ธีร์ถามพนักงาน

    “ชีสเบอร์เกอร์มีเนื้ออยู่แล้ว”

    “อ๋อ” ผมพูด “มิน่าเลยบอกว่ามีเบอร์เกอร์เนื้อ 2 ที่”

    “อยากได้ซอสอะไรด้วยไหม?” พนักงานถาม

    “ซอสมายองเนสจะได้ไม่เลี้ยน” ธีร์แนะนำเป็นภาษาไทย

    “ได้” ผมตอบ

    “ม๊าขอซอสมะเขือเทศ“

    “มายองเนสกับมะเขือเทศ” ธีร์พูดกับพนักงานเป็นภาษาอังกฤษ

    “โอเค“ พนักงานพูด ”รับเครื่องดื่มอะไรไหม?“

    “โค้กธรรมดา” ผมตอบ

    “มีอะไรบ้าง” แม่ถามเป็นภาษาไทย

    “แบบที่เห็นเลย” ผมบอก ชี้ไปที่ตู้ฝากระจกหลังพนักงาน

    “ขอรูทเบียร์ครับ”

    กว่าจะสั่งอาหารเสร็จก็หมดไปเกือบ 10 นาทีได้

    โต๊ะข้างนอกมีคนนั่งอยู่ เราเลยนั่งข้างในที่มีเก้าอี้พอแค่ 2 คน พอที่ข้างนอกว่าง เราก็รีบลุกออกไป

    ใช้เวลาสักพักกว่าจะได้อาหาร ถึงจะราคาไม่แพงมากสำหรับอังกฤษ แต่ปริมาณอาหารก็ใช้ได้ทีเดียว

    “ไม่ไหว” ธีร์พูด แล้วเอาปลาไปใส่น้ำส้มสายชูเพิ่ม เพราะรสชาติจืดสนิท

    “ในเบอร์เกอร์มีซอสอยู่นะ” แม่พูดเมื่อเปิดเบอร์เกอร์ออกดู แสดงว่าจริง ๆ เราไม่ต้องสั่งซอสมายองเนสกับมะเขือเทศให้เสียเงินเพิ่มก็ได้

    ผมกับธีร์ใส่ซอสมะเขือเทศกินกับเฟรนช์ฟรายส์แทน

    “เราจะย้ายรถไปจอดใกล้ ๆ ไหม?“ แม่ถาม เพราะเราตั้งใจว่าจะไป White Cliffs เหมือนกับที่ผมเคยไปกับ Xinyu กัน

    ผมเช็ก Google Maps ใกล้จุดที่เริ่มเดินมีที่จอดรถอยู่ที่หนึ่ง แต่ก็ไม่ได้ห่างจากจุดที่เราอยู่ในตอนนี้ขนาดนั้น เพราะ Dover เป็นเมืองเล็ก ๆ

    ถึงอย่างนั้น แม้จะย้ายรถไปแล้ว เราก็ยังต้องใช้เวลาเดินถึงครึ่งชั่วโมงกว่าจะไป White Cliffs

    “ทำไมไกลจัง?” แม่ถาม

    ผมก็จำไม่ได้ว่า ผมกับ Xinyu เดินกันไกลขนาดนั้น แต่ตอนนั้นก็ไม่มีใครจับเวลา เพราะเรามีเวลาทั้งวัน

    “เรามีที่อื่นต้องไปอีก” แม่พูด

    “ถ้าจะไม่ไปก็ได้” ผมพูด แล้วเปิดรูป White Cliffs กับ Seven Sisters ที่เคยถ่ายไว้ให้ดู

    White Cliffs of Dover
    White Cliffs of Dover (2019)
    Seven Sisters
    Seven Sisters (2019)

    “อันไหนคือ White Cliffs อันไหนคือ Seven Sisters?” พ่อถาม

    “มันเหมือนกัน” ผมตอบ “จะไม่เดินที่นี่แล้วรีบไปที่ Seven Sisters ก็ได้”

    ผมคิดว่า เหตุผลหนึ่งที่ไม่มีใครมา Dover กับผมนอกจาก Xinyu แต่เกือบจะทุกคนเลือกไป Seven Sisters ด้วย น่าจะเป็นเพราะ Seven Sisters น่าไปกว่า

    .

    “ลืมถ่ายรูปเลย” ผมพูดตอนที่อาหารหมดแล้ว

    “ทุกคนหิวกันหมด” แม่พูด

    เราเก็บจานกระดาษ กระป๋อง และซองซอสไปแยกทิ้งตามถังขยะในร้าน ผมแยกไม่ออกว่า จานกระดาษที่มีเศษอาหารติดอยู่จะต้องใส่ในถังกระดาษหรือเศษอาหาร

    “อันนี้แหละ” ผมพูด ทิ้งไปในถังเศษอาหารหลังจากเปิดดูแล้วว่ามีคนทิ้งแบบเดียวกันก่อนหน้านี้

    “ทำไมไม่ใส่ถังกระดาษ?” ธีร์ถาม

    “มันมีเศษอาหาร”

    “นิดเดียวเอง แทบจะไม่มี” แม่พูด

    “ใกล้หมดเวลาแล้ว” พ่อพูดตอนที่เราเดินออกจากร้าน

    “เร็วจัง” ผมพูด

    “เดินไปก่อน เดี๋ยวตามไป” ธีร์พูดเมื่อใกล้ถึงที่จอดรถ เพราะอยากจะไปถ่ายรูปโบสถ์ที่อยู่ข้าง ๆ กัน

    Church in Dover
    โบถส์ใน Dover

    “ขอไปเดินในงานหน่อย” แม่พูด หมายถึงสวนสนุกที่มาเปิดติดกับที่จอดรถ

    “ไปดูอะไร?” ผมพูด “มันก็ไม่มีอะไร”

    “ไปดูบรรยากาศ”

    ข้างในมีเครื่องเล่นหลากหลาย ทั้งบ้านผีสิง รถไฟสำหรับเด็ก ม้าหมุน และอื่น ๆ แม่ถ่ายวิดีโอเก็บบรรยากาศแล้วก็กลับออกมา

    พ่อกับธีร์อยู่ที่รถแล้ว เราขึ้นรถแล้วก็ขับออก

    .

    ☀️ (2) An Unplanned Stop

    หลังออกจาก Dover มาได้ไม่นาน เราก็ขับผ่านถนนในเมืองหนึ่งที่มีผู้คนอยู่พลุกพล่าน และการจราจรเคลื่อนไปอย่างช้า ๆ

    “ตรงนี้เขามีงานอะไรกัน?” แม่ถาม

    “ไม่รู้เหมือนกัน” ผมตอบ

    “น่าลงไปดู”

    “รีบไปดีกว่า” ผมพูด เพราะไม่รู้ว่าที่นี่คือที่ไหน และแค่เห็นคนเยอะก็ไม่อยากจะลงไปแล้ว และไม่รู้ว่าเราจะไป Seven Sisters ทันก่อนพระอาทิตย์ตกไหม

    รถเคลื่อนไปอย่างช้า ๆ ตามสภาพการจราจร สองข้างทางมีคนเดินไปมาขวักไขว่ ตรงไปข้างหน้าเป็นชายหาดและโซนที่ดูเหมือนร้านอาหาร ซึ่งมีคนอยู่อย่างหนาแน่น

    ธีร์ช่วยหาที่จอดรถ พอเลี้ยวพ้นโค้งมา ก็เจอที่จอดอยู่ขวามือ

    “จอดตรงนี้เลย”

    “แพง” พ่อพูดพอรู้ราคา

    “จอด ๆ ไปเถอะ” ธีร์พูด

    ที่จอดรถครั้งนี้ไม่ใช่แบบ pay and display แต่เป็นแบบจ่ายตามจริงตอนที่เอารถออก พ่อรับบัตรแล้วก็เข้าไปหาที่จอด ข้างในมีพื้นที่มากพอทำให้หาที่จอดได้ไม่ยาก

    “รีบไปกัน” พ่อพูดเมื่อเราลงจากรถ

    เราออกจากที่จอดรถและข้ามถนนเล็ก ๆ ไปที่ชายหาด ซึ่งเต็มไปด้วยหินก้อนกลมแบบเดียวกับที่ White Cliffs ที่ผมเจอเมื่อ 7 ปีก่อน เราขึ้นไปเดินบนทางเดินไม้ที่ทอดยาวตลอดแนวชายฝั่ง ซึ่งพาเราไปที่กลุ่มร้านอาหารที่เราเห็นตอนอยู่บนรถ

    Folkestone beach
    ทางเดินบนชายหาด

    พอเราเดินเข้ามาใกล้ ก็เห็นว่ามีที่อบซาวน่า และร้านของหวาน เครื่องดื่ม และอาหารตั้งอยู่ หลายร้านมีไอศกรีมดูน่ากิน แต่พอเห็นแถวที่ยืนรออยู่แล้ว เราก็เดินผ่านมา

    เราขึ้นมาทางเดินยกระดับที่พาเราไปที่ประภาคาร ซึ่งมีร้านอาหารตั้งอยู่ จากจุดนั้น เรามองกลับมาเห็นตัวเมืองที่ตั้งลดหลั่นไปตามเนินเขาได้

    Folkestone lighthouse
    ประภาคาร
    Folkestone
    วิวเมืองมองจากประภาคาร

    ผมหวังว่าเราอาจจะได้เห็น White Cliffs ด้วย แต่เท่าที่เห็นดูเหมือนจะเป็นผาสีขาวทั่วไป ไม่ใช่ White Cliffs of Dover ที่ผมเคยไปมา

    White Cliffs as seen from Folkestone
    ผาสีขาว

    จากประภาคาร เราเดินย้อนกลับทางเดิน ระหว่างทางก็แวะที่สถานีรถไฟเก่าซึ่งยกเลิกการใช้งานไปแล้ว และเปลี่ยนมาเป็นทางเดินสาธารณะแทน

    Folkestone historic train station
    สถานีรถไฟที่ปลดระวางแล้ว

    ตอนที่กลับไปที่รถ เราใช้เวลาไปเกือบ 1 ชั่วโมงกับเมืองนี้

    “เมืองนี้ชื่ออะไร?” แม่ถามขณะที่พ่อขับออกจากที่จอดรถ

    ผมเช็ก Google Maps

    📆 2026
    📍 Folkestone

    .

    📷 (3) Seven Sisters

    📆 2026
    📍 Road to Seven Sisters

    ยิ่งเข้าใกล้ Seven Sisters ภูมิประเทศก็เปลี่ยนเป็นเนินสูง ถึงจุดหนึ่ง เราสังเกตเห็นรูปคนที่วาดไว้บนเนิน ซึ่งทำให้ผมนึกถึงซีรีส์เรื่อง The Sandman

    ในเรื่องนั้นรูปวาดคนเป็นคนเฝ้าประตูที่เชื่อมโลกมนุษย์กับ Faerie

    Long Man of Wilmington
    Long Man of Wilmington

    .

    📆 2019
    📍 Seven Sisters

    เราเดินทางด้วยรถไฟไปที่ Brighton กันแต่เช้า ผมจำได้ว่า แอลไม่รู้ว่าเวลากดตั๋วแบบไป-กลับที่เครื่องออกตั๋วอัตโนมัติ เราจะได้ตั๋วทั้ง 2 ขามาพร้อมกัน แอลหยิบตั๋วมาแค่ใบเดียว และต้องซื้อตั๋วขากลับใหม่ตอนไปถึง Brighton

    ผมรู้แค่ว่าเราจะต้องเริ่มจาก Brighton แต่หลังจากนั้น ผมไม่รู้จะต้องไปทางไหนต่อ

    ไม่รู้ว่ามีใครช่วยหาข้อมูล แต่สุดท้ายทุกคนขึ้นรถบัสที่พาเรามาที่ Seven Sisters

    Brighton bus to Seven Sisters
    รถบัสจาก Brighton ไป Seven Sisters (2019)

    .

    📆 2026
    📍 Seven Sisters
    Dad driving
    พ่อระหว่างทางไป Seven Sisters

    จากที่อ่านในอินเทอร์เน็ต เราจอดรถได้ 2 ที่ คือ North กับ South Car Park

    เรามาจอด South Car Park

    “เราจะเดินกันกี่ชั่วโมง?” แม่ถามเมื่อเรายืนมุงตู้จ่ายเงินกัน

    ใกล้ ๆ ตู้จ่ายเงินมีแผนที่ของ Seven Sisters อยู่ เราเลือกเดินได้หลายเส้นทาง เส้นที่ใหญ่ที่สุดใช้เวลาไปกลับถึง 4 ชั่วโมง

    “เราจะเลือกเส้นไหน?”

    ถ้าเป็นไปได้ ผมอยากไปเส้นทางที่ไกลที่สุด เพราะไหน ๆ ก็มาแล้ว แต่ยิ่งเดินนาน เราก็ต้องจ่ายค่าจอดรถเพิ่ม และผมไม่รู้ว่าพ่อกับแม่อยากจะเดินเยอะขนาดไหน

    สุดท้าย เราตัดสินใจจ่ายไป 3 ชั่วโมง ซึ่งพอสำหรับเดินไปกลับรอบสั้น ๆ พร้อมเผื่อเวลาให้โอ้เอ้อีกนิดหน่อย พอจะกลับมาที่จอดรถได้โดยไม่ต้องรีบร้อน

    “ขอเข้าห้องน้ำก่อน” ผมพูด

    ติดกับที่จอดรถมีห้องน้ำสาธารณะแบบ unisex อยู่ ข้างในแบ่งเป็นห้องเล็กที่มีโถส้วมและอ่างล้างมือพร้อม และจำนวนห้องมีมากพอจะรองรับนักท่องเที่ยวได้หลาย ๆ กลุ่มพร้อมกัน

    หลังเข้าห้องน้ำแล้ว เราออกจากที่จอดรถ ข้ามถนนเล็ก ๆ ที่คั่นที่จอดรถและทางเข้า Seven Sisters เอาไว้

    ที่ฝั่งตรงข้าม รถบัสจอดเทียบป้ายให้ผู้โดยสารลงจากรถ ผมจำได้ว่าเป็นรถบัสแบบเดียวกับที่พาผมกับเพื่อนมาที่นี่เมื่อ 7 ปีก่อน

    Bus at Seven Sisters
    รถบัสจาก Seven Sisters ไป Brighton

    .

    📆 2019
    📍 Seven Sisters

    ขากลับ เรานั่งรถบัสกลับเข้า Brighton ผมจำได้ว่าเรานั่งรวมกันหลังรถ เพื่อนชาวจีนที่เพิ่งมาใหม่ (มาเรียนภาษาก่อนจะเรียนต่อ เหมือนกับแอล) นั่งแยกกันเป็น 2 กลุ่ม กลุ่มหนึ่งมี Su นั่งอยู่มองออกนอกหน้าต่างอยู่คนเดียว

    Friends on bus from Seven Sisters to Brighton
    เดินทางกลับจาก Seven Sisters (2019)

    “เขาเหมือนไม่ชอบกัน” แอลบอกเป็นภาษาไทย

    “จริงหรอ?” ผมถาม เพราะไม่คิดว่าคนที่เพิ่งมาเจอกันจะไม่ชอบกันได้เร็วขนาดนี้ และอีกอย่างทำไมแอลถึงรู้ได้

    ผมมองออกไปนอกหน้าต่าง ตอนนั้นรถกำลังวิ่งเรียบชายฝั่ง ผมเห็นฟาร์มกังหันลมที่เคยฝันเห็นเมื่อไม่กี่วันก่อนอยู่ไกล ๆ

    .

    📆 2026
    📍 Seven Sisters

    ภายในของ Seven Sisters เหมือนจะเป็นที่เลี้ยงแกะและวัว บริเวณโดยรอบและภายในเลยมีรั้วกั้นเป็นส่วน ๆ เพื่อป้องกันไม่ให้สัตว์ที่เลี้ยงไว้หลุดออกมา

    เราเดินไปที่ประตูรั้วไม้ที่ปิดเองโดยอัตโนมัติ และเริ่มออกเดินไปที่ Seven Sisters

    แม้จะ 5 โมงกว่าแล้ว แต่ท้องฟ้ายังสว่างเหมือนกับบ่าย 3 ผมลืมไปเลยว่าประเทศทางตอนเหนืออย่างอังกฤษจะเป็นแบบนี้ ฤดูร้อนจะมีกลางวันที่ยาวนาน ส่วนหน้าหนาวก็จะมีกลางคืนที่ยาวนาน

    รอบตัวเราเป็นพื้นที่ราบที่อยู่ระหว่างเนินเขา 2 ลูก ผมยังจำความรู้สึกครั้งแรกที่มาที่นี่ได้ เหมือนกับโลกทั้งใบเปิดกว้างออกและทุกอย่างเป็นไปได้

    ผมนึกว่าผมจะจำที่นี่ได้ดี แต่ผมจำไม่ได้ด้วยซ้ำว่าครั้งก่อน เราเดินบนทางปูคอนกรีตที่เรากำลังเดินอยู่ตอนนี้ไหม

    แต่พอทางเดินคอนกรีตกลายเป็นทางดิน ผมก็แน่ใจว่าผมเคยผ่านมาทางนี้

    “I have been here” ผมบอกธีร์

    .

    📆 2019
    📍 Seven Sisters

    ท้องฟ้าเปิดโล่ง มีเมฆเป็นบางส่วน อากาศไม่เย็นและก็ไม่ร้อนจนเกินไป รอบตัวเราเป็นพื้นที่ราบที่ค่อย ๆ ลาดชันขึ้นเป็นเนินที่โอบล้อมทั้งสองฝั่ง ให้ความรู้สึกเหมือนโลกนี้กว้างใหญ่กว่าที่เคยเป็น

    Friends at Seven Sisters
    Seven Sisters (2019)

    เดินมาถึงจุดหนึ่ง ผมก็ส่งมือถือให้ Liukun เพื่อนชาวจีนที่ผมรู้ว่าเรียนการถ่ายทำ

    “ช่วยถ่ายให้หน่อย” ผมพูด

    Liukun หันกล้องหาตัวเองกับ Yuxin เพื่อนที่เรียนภาคเดียวกัน แล้วส่งมือถือคืนให้ผม

    .

    📆 2026
    📍 Seven Sisters

    ภาพทางเดินยังเหมือนกับที่ผมจำได้ แต่ภาพตรงหน้าต่างออกไป

    ในครั้งก่อน ผมมากับเพื่อน ในครั้งนี้ ผมมากับพ่อแม่และน้อง

    Family at Seven Sisters
    Seven Sisters (2026)

    .

    “ตรงนี้แหละ” ผมพูดเมื่อมาถึงชายหาดที่มองเห็นหนึ่งในผาสีขาวของ Seven Sisters ได้

    บนหาดมีกลุ่มคนที่เปิดเพลงเสียงดังอยู่ ผมเดินหาจุดที่ผมเคยถ่ายรูปเมื่อ 7 ปีก่อน

    ชาดหายที่ Seven Sisters (2026)

    .

    📆 2019
    📍 Seven Sisters
    Seven Sisters
    ชาดหายที่ Seven Sisters (2019)

    ลมทะเลพัดแรงพอ ๆ กับแดดกลางวันที่ส่องลงมา

    ผมขอให้แอลช่วยถ่ายรูปผมกับ Sam Yong, Yue, และ Su ที่ยืนอยู่บนเนินตัดกับท้องฟ้าให้

    Friends at Seven Sisters
    ผมและเพื่อนที่ Seven Sisters (2019)

    ก่อนที่จะเดินไปที่ Seven Sisters ผมถ่ายรูปชายหาดเป็นรูปสุดท้าย สำหรับโพสต์ลง Instagram ในภายหลัง

    Seven Sisters
    Seven Sisters (2019)

    .

    📆 2026
    📍 Seven Sisters

    ชายหาดที่นี่มีทรายเป็นหินก้อนกลมเหมือนกับที่ Dover และ Folkestone ทำให้เดินยากกว่าปกติ แต่ก็ไม่ต้องกลัวทรายเข้ารองเท้า

    ผมพยายามหาจุดที่เคยถ่ายรูปเมื่อ 7 ปีก่อน แต่ก็หาไม่เจอ เป็นไปได้ว่าครั้งก่อน น้ำทะเลจะไม่ได้ลดต่ำขนาดนี้ และความต่างระหว่างความกว้างของกล้อง iPhone 17 Pro และ iPhone 8 ที่ผมเคยใช้ก็ไม่ได้ช่วยให้หาจุดนั้นง่ายขึ้นเลย

    ผมเห็นพ่อแม่ยืนถ่ายรูปกันอยู่ข้างล่าง ผมกับธีร์เดินตามลงไป

    “ป๊าม๊าไปยืน” ธีร์บอกเมื่อเล็งจุดถ่ายรูปแล้ว

    ถ่ายรูปคู่เสร็จ ก็ถ่ายรูปเดี่ยว และรูปรวม

    Family photo at Seven Sisters
    ผม พ่อแม่ และน้องที่ Seven Sisters (2026)

    “ไปไหนกันต่อ?” แม่ถาม

    “ขึ้นไปบนนั้น” ผมพูด ชี้ไปที่ Seven Sisters ที่มีคนตัวเล็ก ๆ เดินกันอยู่ข้างบน

    เราออกเดินกันต่อ

    Seven Sisters
    เดินทางขึ้นบนผา

    .

    📆 2019
    📍 Seven Sisters

    เราขึ้นมาบนยอดที่ลมพัดแรงและแสงแดดร้อนกว่าข้างล่าง มีใครเอาครีมกันแดดออกมาทา แอลขอแบ่งมาทาหน้าแล้วก็ทิ้งตัวลงนอนบนหญ้า

    Friends at Seven Sisters
    เพื่อน ๆ ที่ Seven Sisters (2019)
    Friends at Seven Sisters
    ผมและเพื่อน ๆ ที่ Seven Sisters (2019)
    Shi and Ifor Evans friends at Seven Sisters, 2019
    ผมและเพื่อน ๆ ที่ Seven Sisters (2019)

    Sam Yong เดินไปชิดขอบผา

    “ระวังนะ” ผมพูด หวาดเสียวแทน เพราะหินผาน่าจะไม่แข็งแรงขนาดนั้น และถ้าตกลงไปจะเป็นยังไง เราเพิ่งเรียนจบและยังไม่ได้รับปริญญากันด้วยซ้ำ

    “ไม่ต้องห่วง” Sam Yong พูด แล้วขอให้ผมถ่ายรูปให้

    .

    📆 2026
    📍 Seven Sisters

    ผมจำไม่ได้ว่าครั้งก่อน เราขึ้นมาทางนี้ไหม เพราะทางดูชันกว่าที่ผมจำได้

    แต่ก็ไม่ได้ชันจนเดินกันไม่ไหว

    ทางขึ้นสู่ยอด Seven Sisters

    ข้างบนเป็นพื้นหญ้าที่มีกรวดหินสีขาวก้อนเล็กกระจายอยู่ตามพื้น ผมจำได้ว่าครั้งก่อน ผมนึกว่าเป็นขี้นก ครั้งนี้ก็ไม่ต่างกัน โดยเฉพาะเมื่อนกยืนอยู่ด้วย

    Bird at Seven Sisters
    นกที่ Seven Sisters

    พระอาทิตย์เริ่มคล้อยต่ำลง ทำให้ทุกอย่างมีเงายาว

    Seven Sisters
    วิวชายหาดเมื่อมองจากยอด Seven Sisters

    ถัดขึ้นไป พื้นหญ้าหนาขึ้นและมีกรวดหินน้อยลง น่าจะเป็นจุดเดียวกับที่ผมเคยมากับเพื่อนครั้งก่อน และจากจุดนี้ เรามองเห็นผาอื่นที่อยู่ถัดไปได้ชัดเจน

    Seven Sisters
    Seven Sisters

    พ่อกับแม่นั่งลงบนพื้นหญ้าใกล้กับขอบผา แต่ก็ไม่ใกล้จนเกินไปเหมือนกับ Sam Yong ในอดีต

    Seven Sisters
    พ่อและแม่ที่ Seven Sisters

    เรานั่งอยู่ตรงนั้นสักพัก จนพ่อถามว่าจะกลับกันหรือยัง

    “เดี๋ยวก่อน” ธีร์ตอบ พยายามถ่ายรูปนกที่บินเล่นลมผ่านหน้าผาที่เรากำลังนั่งอยู่

    Bird at Seven Sisters
    รูปนกเล่นลมที่ธีร์ถ่ายได้

    .

    📆 2019
    📍 Seven Sisters

    “ไปกันก่อนเลย” ผมพูดตอนที่เราเดินกลับไปที่ป้ายรถบัส

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

    Seven Sisters
    Seven Sisters (2019)

    ทางนี้พาผมเลียบบนเนินไปเรื่อย ๆ ผ่านประตูรั้วจุดหนึ่ง ผมก็กลับมาลงบนเส้นทางเดียวกับที่คนอื่นกำลังเดินอยู่

    .

    📆 2026
    📍 Seven Sisters

    “จะไปยัง?” พ่อถามเป็นครั้งที่เท่าไรไม่รู้

    “ป๊าหิวแล้ว” แม่บอก

    “แป๊บหนึ่ง” ธีร์พูด ถ่ายนกเล่นลมเป็นครั้งสุดท้าย “ไปกัน”

    แทนที่จะเดินกลับทางที่เราขึ้นมา ผมชวนทุกคนไปเดินผ่านประตูรั้วไม้ไปอีกทาง เพื่อจะได้สำรวจทางใหม่ เหมือนกับที่ผมทำในครั้งก่อน

    Seven Sisters
    ประตูรั้วที่ Seven Sisters

    ก่อนเดินผ่านประตู ผมหันกลับไปมอง Seven Sisters เป็นครั้งสุดท้าย ผมจำได้ว่าครั้งก่อนก็ทำแบบเดียวกัน เพราะเช่นเดียวกับครั้งนี้ ผมไม่คิดว่าจะได้กลับมาที่นี่อีก

    Seven Sisters
    วิวสุดท้ายของ Seven Sisters

    .

    ผมกับแม่หยุดถ่ายรูปเป็นระยะ ๆ ส่วนพ่อเดินนำหน้าไปอย่างรวดเร็ว ธีร์รีบเดินตามไปประกบ

    Seven Sisters
    พ่อเดินกลับไปที่รถ

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

    Seven Sisters
    พระอาทิตย์ตกที่ Seven Sisters

    “ช่วยกันหาหน่อยว่าจะกินอะไร” แม่พูดเมื่อเราขึ้นมาบนรถกันแล้ว

    “มีร้านอาหารจีนอยู่ไม่ไกล” ธีร์บอก “ออกไปเลี้ยวซ้าย”

    .

    🍕 (4) Dinner & Hotel

    📆 2026
    📍 Eastbourne

    ท้องฟ้าเริ่มมืดลงเรื่อย ๆ และเปลี่ยนทุกอย่างให้เป็นโทนสีฟ้าคราม

    ร้านอาหารส่วนใหญ่ปิดหรือใกล้ปิดกันหมดแล้ว เพราะแม้อาทิตย์จะยังไม่ตกดิน แต่ตอนนี้ก็เกือบ 3 ทุ่มแล้ว

    ธีร์พาเราไปที่ลานจอดรถในห้าง ซึ่งอยู่ไม่ห่างจากร้านอาหารที่เราจะไปนัก แต่ทางเข้าจำกัดความสูงรถแค่ 1.9 เมตร ซึ่งเสี่ยงเกินไปสำหรับรถเช่าของเรา

    เราเปลี่ยนแผนจากอาหารจีนมาเป็นพิซซ่าแทน พ่อขับไปจอดบนถนนเงียบ ๆ แห่งหนึ่ง ห่างจากร้าน Domino Pizza ไป 2 แยก แล้วให้ผมกับธีร์ลงไปซื้อ

    “ล็อกประตูด้วย” ผมบอกพ่อตอนลงจากรถ เพราะไม่แน่ใจว่าเมืองนี้ปลอดภัยแค่ไหน

    ในซอยที่ Domino ตั้งอยู่ มีร้านขายของชำและร้านอื่น ๆ ด้วย อย่างร้าน kabab ที่อยู่ตรงข้าม และร้าน Taco Bell ที่อยู่ถัดไป ทุกร้านยังเปิดให้บริการอยู่

    “จริง ๆ ให้ป๊ามาจอดตรงนี้ก็ได้” ธีร์พูดเมื่อเห็นว่าถนนในซอยมีที่ว่าง

    Taco Bell ทำให้ผมนึกถึง Christy เพื่อนชาวอเมริกันคนเดียวในกลุ่มเพื่อนที่ Ifor Evans ที่มีแต่ชาวเอเชีย วันหนึ่ง Christy ซื้อ Taco Bell มาให้ทุกคนลอง เลยเป็นครั้งแรกที่ผมได้กิน Taco Bell

    “จะกินพิซซ่าหรือทาโก” ผมถามธีร์

    “ได้หมด”

    “ไม่รู้ป๊าม๊าจะกินอะไร” ผมพูด เพราะพ่อแม่ไม่ถนัดอาหารฝรั่งเหมือนผมกับธีร์ “งั้นเอาอะไรที่ไม่ทำให้ท้องเสีย” ผมยังเข็ดจากท้องเสียตอนไปญี่ปุ่นไม่หาย และไม่อยากท้องเสียในเที่ยวนี้ด้วย “ทาโกมีผัก แต่พิซซ่าอบร้อน ๆ จากเตา”

    “งั้นเดี๋ยวให้ป๊ามาเลื่อนรถมาก่อน” ธีร์พูดแล้วโทรบอกพ่อให้ขับรถมาจอดในซอย

    ผมกับธีร์เดินเข้าไปใน Domino ร้านนั้นเล็กมีที่นั่งประมาณ 10 ที่ พอดูเมนูแล้วก็เลือกไม่ถูกว่าจะกินอะไร

    ผมคิดถึง Domino ที่ออสเตรเลีย ซึ่งผมกับเพื่อนชอบซื้อกันมากินที่ห้องสมุดเวลาทำงานดึก ๆ บ่อย ๆ Domino ที่นั่นราคาเริ่มต้นแค่ 5 ดอลลาร์ แต่พิซซ่าในเมนูตอนนี้ไม่มีอันไหนที่ต่ำกว่า 10 ปอนด์เลย

    “งั้นเอาไซส์เล็ก 2 ไหม?” ธีร์ถาม

    “จะอิ่มหรอ?” ผมถามกลับ

    “งั้นจะเอาอะไรเพิ่มไหมละ?”

    “ก็เอาไก่มาอันหนึ่งก็ได้”

    “แล้วพิซซ่าจะเอากี่อัน?”

    “ไซส์กลาง 2 ที่ไหมละ?”

    หลังจากคุยกันอยู่นาน เราก็สั่งพิซซ่าขนาดกลาง 2 ถาด และไก่ชุบแป้งทอด 8 ชิ้น 1 กล่อง ราคารวมกันอยู่ที่ 40 กว่าปอนด์

    เรานั่งรออาหารในร้านสักพัก พนักงานก็เรียกชื่อ เรารับอาหารแล้วก็เดินข้ามถนนไปที่รถที่พ่อเอามาจอดรถไว้หน้าร้าน kabab

    “มี Tesco อยู่ใกล้ ๆ” พ่อพูดตอนที่เราขึ้นรถแล้ว

    .

    📆 2026
    📍 Tesco somewhere

    ระหว่างทาง เราเปิดพิซซ่ากับไก่กินกัน ตอนแรกผมนึกว่าจะเป็นรสชาติแบบที่ไทย แต่ไม่ใช่เลย แม้ว่าจะเป็น fast food เหมือนกัน แต่ก็เป็น fast food แบบคุณภาพ

    พอไปถึง Tesco เราก็กินพิซซ่าเกือบหมดไป 1 ถาด และผมเริ่มอิ่มแล้ว

    ตอนนี้ ฟ้ามืดสนิทแล้ว ลานจอดรถของ Tesco มีรถจอดอยู่ประปราย และยังมีคนเดินเข้าออกร้านอยู่ เราเข้าไปซื้อของกินสำหรับพรุ่งนี้เช้า พอได้แล้วก็ขับต่อไปที่โรงแรม

    .

    📆 2026
    📍 Lingfield Park Marriott
    Hotel & Country Club

    หลังจากเที่ยวมาทั้งวัน บวกกับเจ็ตแล็กและพิซซ่า 1 ถาด ผมก็ง่วงจนลืมตาไม่ขึ้นและหลับไประหว่างทาง

    ผมตื่นขึ้นมาตอนที่รถเลี้ยวเข้ามาในโรงแรมที่มีคนพูดคุยกันเสียงดัง เหมือนกับข้างในจะมีงานอะไรบางอย่าง เพราะหน้าล็อบบีมีคนยืนถือเครื่องดื่มจับกลุ่มคุยกันอยู่

    พอจอดรถแล้ว พ่อก็ลงไปเช็กอิน ส่วนผมกับแม่และธีร์ช่วยกันขนกระเป๋าลงจากรถ

    พ่อจองโรงแรมไว้ 1 ห้องที่นอนกันได้ 4 คน

    Lingfield Park Marriott Hotel & Country Club
    Lingfield Park Marriott Hotel & Country Club

    เราผลัดกันอาบน้ำ พอถึงตาผมอาบน้ำเสร็จแล้ว หัวถึงหมอนผมก็หลับไป

    .

    📆 2018
    📍 Ifor Evans, Camden Town, London

    เหมือนกับตอนที่ผมไปเรียนที่ออสเตรเลียไม่มีผิด ผมลืมที่จะซื้อหมอนกับผ้าปู และที่สำคัญคือผ้าห่ม

    คืนแรก ผมเลยต้องนอนหนาวอยู่ในห้องที่ Ifor Evans อุณหภูมิในตอนเช้าอยู่ที่ 9 องศา อากาศในตอนกลางคืนน่าจะหนาวกว่านั้นมาก

    ผมตื่นมาตั้งแต่เช้าเพราะยังเจ็ตแล็กอยู่ พอสายหน่อย ผมก็เดินไปที่ Sainsbury’s ซึ่งเป็นซูเปอร์มาร์เก็ตที่ใกล้ที่สุด เพื่อซื้อของกินสำหรับวันนั้นและผ้านวม เพื่อจะได้อยู่รอดในคืนถัด ๆ ไป

    ระหว่างที่นั่งอยู่ในห้อง ผมคิดว่าจะไป Big Ben ดีไหม แต่ก็ล้มเลิกความคิด เพราะรู้ว่า Big Ben ปิดซ่อมอยู่ และจะซ่อมเสร็จหลังจากผมเรียนจบแล้ว ถ้าผมเรียนจบ

    เย็นวันนั้น Ifor Evans จัดงานเลี้ยงต้อนรับนักศึกษาที่เข้าพักใหม่ ผมลังเลว่าจะไปหรือไม่ไปดี เพราะผมไม่รู้จักใครเลย และไม่มั่นใจกับภาษาอังกฤษของตัวเองขนาดนั้น และยังไม่ต้องพูดถึงทักษะเข้าสังคม

    แต่อะไรจะเกิดก็ต้องเกิด ผมบอกตัวเอง และอย่างน้อยได้ไปกินอะไรในงานก็ยังดี

    พอใกล้เวลา ผมเดินจาก Denys Holland ทั้งที่ไม่รู้ว่างานจัดที่ไหน ผมมองไปใน reception ที่ว่างเปล่า งานอาจจะจัดใน Ifor Evans แต่ผมก็ไม่รู้ว่าจะเข้าไปข้างในยังไง ผมคิดว่าประตูแต่ละตึกจะต้องใช้กุญแจต่างกัน

    ผมเดินเลียบ Ifor Evans ไป ระหว่างนั้น ผมเจอคนอื่นที่ดูเหมือนจะหาทางไปงานเหมือนกัน

    “กำลังหางานเลี้ยงอยู่หรือเปล่า?” มีคนถามผม

    “ใช่” ผมตอบ “รู้ไหมว่างานอยู่ที่ไหน?”

    “ไม่รู้เหมือนกัน”

    เราเดินอ้อมตึกไปด้วยกัน แล้วก็เจองานเลี้ยงที่ตามหากันอยู่

    ในงานมีอาหารที่ผมจำไม่ได้แล้วมีอะไรบ้าง ยกเว้นโดนัทที่วางแขวนไว้บนบอร์ด ซึ่งผู้หญิงที่นำผมไปที่ห้องเมื่อวาน ซึ่งทำหน้าที่ตักอาหารให้กับทุกคน บอกว่าหยิบได้คนละชิ้น

    Doughnut Wall UCL
    Ifor Evans (2018)

    ในงานเป็นครั้งแรกที่ผมได้รู้จักกับคนที่จะเป็นเพื่อนผมในอนาคต ทั้ง Sam Yong และ Yijing ที่มาจากสิงคโปร์ Baihan จากเมืองจีน ซึ่งเรียนจิตวิทยาเหมือนกับผม และ Kevin จากไต้หวันที่เรียนสถาปัตยกรรมศาสตร์

    หลังงานเลี้ยง ผมหวังว่าจะได้เจอกับคนเหล่านี้อีก เพราะอย่างน้อย 1 ปีต่อจากนี้ก็จะไม่ใช่ปีที่โดดเดี่ยวเหมือนอย่างที่ผมคิด


    🚶 From Cold Sun Walk

    ครั้งหนึ่ง ผมเคยเดินไปตามถนนใน London ท่ามกลางลมหนาวที่พัดผ่านและแสงแดดอันอบอุ่นที่สาดส่องจากท้องฟ้าฤดูหนาว

    ผมตั้งชื่อเพลย์ลิสต์ของวันนั้นว่า Cold Sun Walk

    และนี่คือเพลงหนึ่งในเพลย์ลิสต์นั้น

    Note: ดูเพลงทั้งหมดในเพลย์ลิสต์


    🛄 Appendix: What Happened Before the Flight

    📆 2026
    📍 Suvarnabhumi Airport, Bangkok

    เราแยกกันเป็น 2 กลุ่ม เพราะสิทธิ์การใช้เลาจ์ไม่เหมือนกัน ผมกับพ่อไปที่เลาจ์ใหญ่ ส่วนแม่กับธีร์แยกกันไปอีกที่หนึ่ง

    ช่วงเวลาที่ผมกับพ่อไปถึงเหมือนจะเป็นช่วงพีค เพราะทั้งข้างนอกและข้างในมีคนอยู่เต็มไปหมด ตอนเราเข้าไป ผมนึกว่าจะหาที่นั่งไม่ได้ แต่เราก็ได้โต๊ะริมกระจกที่มองออกไปเห็นทางเดินข้างนอก

    ผมกินอะไรมาบ้างแล้วก่อนจะมาสนามบิน ตอนนี้ ผมก็ไม่รู้สึกหิวขนาดนั้น ยิ่งคนเยอะแล้วยิ่งไม่รู้สึกอยากกินอะไร ผมแค่อยากอยู่เงียบ ๆ ในที่ที่คนไม่พลุกพล่านแบบนี้

    ผมเดินดูอาหาร หยิบพายไก่ชิ้นเล็กมา 2 ชิ้น แขกที่เปิดฝาครอบไว้ก่อนผมไม่ได้เอาฝาปิดคืนที่ และที่ตักก็ไปกองรวมอยู่ในจานเดียวกัน แทนที่จะกระจายออกตามที่ของมัน

    ตรงที่กดน้ำผลไม้ แก้วที่วางไว้หมดแล้ว และพนักงานกำลังบอกแขกคนหนึ่งให้ใช้แก้วแชมเปญไปก่อน ผมก้มลงหยิบมา 1 แก้วเพื่อกดน้ำฝรั่งมา

    ผมวางพายไก่และน้ำลงบนโต๊ะ พร้อมจะผ่อนคลายก่อนจะต้องนั่งเครื่องนาน 12 ชั่วโมงไป London ผมยกน้ำฝรั่งขึ้นดื่ม

    ผมวางแก้วลงแล้วถามพ่อที่นั่งอยู่ฝั่งตรงข้าม

    “ปากเป็นอะไรไหม?”

    พ่อหรี่ตามอง

    “ไม่มีอะไร” พ่อตอบ

    ขอบแก้วตรงจุดที่ผมเพิ่งยกดื่มมีรอยบิ่น ผมรู้สึกแสบตอนที่ยกดื่ม แต่อย่างน้อยก็ไม่เป็นอะไร

    ผมยกพายไก่ขึ้นกัด แล้วก็เห็นเลือดติดมากับเปลือกกรอบ ๆ ของพายไก่

    “ขอคุยกับผู้จัดการเลย” ผมพูด แล้วลุกออกจากที่นั่งไป

    ผมมายืนอยู่กลางทางเดินที่มีคนเดินไปมาพลุกพล่าน ในมือยังถือแก้วแชมเปญที่ก่อเหตุอยู่ ผู้หญิงคนหนึ่งเดินมาหาผม

    “ให้ช่วยอะไรไหมคะ?”

    “แก้วบาดปากผม” ผมพูด

    “โอ้” ผู้หญิงคนนั้นอุทานออกมาเบา ๆ รับแก้วจากผมแล้วเดินเข้าครัวไป

    ผมรู้สึกกังวลที่ไม่ได้ถ่ายรูปแก้วเอาไว้ ตอนนี้ผมไม่มีหลักฐานชิ้นเดียวที่เชื่อมแผลของผมกับเลาจ์แห่งนี้เลย

    ผมยืนรออยู่นาน บางคนที่เดินผ่านไปมาก็มองมาที่ผม อาจจะเพราะขวางทางเดิน

    ในที่สุด ผู้หญิงคนนั้นก็กลับออกมา

    “อยากไปหาหมอไหม? หรืออยากให้เรียกหมอมาที่นี่?”

    “ผมไม่รู้” ผมตอบ เพราะผมยังไม่เห็นแผลตัวเอง รู้แค่ว่าเลือดยังไหลไม่หยุด เพราะผมเอาทิชชู่ซับไว้อยู่

    “เดี๋ยวพาไปหาหมอก็ได้” ผู้หญิงคนนั้นพูด ซึ่งในภายหลังผมเดาว่าน่าจะเป็นผู้จัดการในคืนนั้น “ไม่ได้สิ เพราะมันต้องผ่านประตูออกไป ได้เฉพาะพนักงาน รอเดี๋ยวนะ”

    ผู้หญิงคนนั้นเดินไปที่เคาน์เตอร์ด้านหน้า ทิ้งให้ผมยืนรออย่างงงอีกครั้ง

    ผมสองจิตสองใจ ใจหนึ่งอยากจะกลับไปนั่งที่โต๊ะ อีกใจหนึ่งก็กลัวจะขาดช่วง แล้วเรื่องจะยิ่งซับซ้อนเข้าไปใหญ่

    สุดท้าย ผมก็ทนรอไม่ไหว เดินกลับไปนั่งที่โต๊ะ

    “เขาว่ายังไง?” พ่อถาม

    “ไม่รู้เหมือนกัน” ผมตอบ มองพายไก่ 1 ชิ้นครึ่งที่เหลืออยู่ในจานตรงหน้า

    สักพักใหญ่ ๆ ผู้หญิงที่เป็นผู้จัดการก็มาหาผมที่โต๊ะ

    “เดี๋ยวหน่วยแพทย์จะมาที่นี่ อยากนั่งรอตรงนี้ หรือไปรอในห้องดี?”

    “ในห้องก็ได้ครับ” ผมตอบ ไม่อยากให้ทุกคนที่นั่งอยู่ในปีกนี้ของเลาจ์ต้องมองผมเป็นตาเดียวกันตอนที่หน่วยแพทย์ของสนามบินเข้ามาหา

    “งั้นเชิญทางนี้ค่ะ”

    ผมเดินตามไปอีกฝั่งของเลาจ์ และเข้าไปในห้องซึ่งดูเหมือนห้องรับรองแขกพิเศษเล็ก ๆ ที่มีฉากกั้นอยู่ ผมไม่เคยรู้ว่ามีห้องนี้อยู่ด้วย

    “รอเดี๋ยวนะคะ หน่วยแพทย์กำลังมาแล้ว”

    “โอเคครับ”

    ถึงตอนนี้ ผมอารมณ์เสียน้อยลงบ้างแล้ว อย่างหนึ่งเพราะผมได้รับการดูแลตามสถานการณ์ และกำลังตื่นเต้นกับประสบการณ์ใหม่ที่ไม่เคยเจอมาก่อน

    ตอนที่หน่วยแพทย์มาถึง ผมรู้สึกดีที่ตัดสินใจไม่นั่งรออยู่ข้างนอก

    ผมนึกภาพว่าจะเป็นหมอ 1–2 คน ซึ่งก็เป็นจริงตามนั้น แต่ผมไม่ได้คิดว่าจะมีทีมติดตามมาอีก 4–5 คน

    พอทุกคนเดินผ่านฉากกั้น ที่ผมมองลอดออกไปแล้วเห็นแขกข้างนอกพยายามมองเข้ามาว่าเกิดอะไร ห้องนั้นก็เล็กลงทันตา

    “เป็นอะไรมาคะ?” แพทย์หญิงคนหนึ่งถาม ในขณะเดียวกันทีมงานก็เอาเครื่องวัดความดันออกจากกระเป๋า เอาที่บีบแขนพันรอบแขนซ้ายของผม ส่วนทีมงานอีกคนเอาเครื่องวัดอุณหภูมิให้ผมหยิบไว้ในซอกแขน

    “แก้วบาดครับ” ผมตอบ

    “ขอดูหน่อย”

    ผมเอาทิชชู่ที่กดแผลออก ตอนนี้เลือดไหลน้อยลงแล้ว

    “แผลไม่ลึก ไม่ต้องเย็บ เดี๋ยวหมอให้ทาแผลไป”

    “คุณผู้ชายเที่ยวบินกี่โมง?” ผู้จัดการถามผม

    “ผมไม่แน่ใจ” ผมตอบ “ตั๋วผมอยู่ที่โต๊ะ”

    “อยู่กับคุณพ่อใช่ไหม? งั้นเดี๋ยวไปเอามาให้นะคะ”

    สักพัก พ่อผมก็เข้ามาในห้อง พร้อมกับกระเป๋าผมและพ่อ ผมสงสัยว่าทำไมพ่อยอมสละที่นั่งที่หายากมาที่นี่

    ผมรับกระเป๋ามาเปิดเอาตั๋วและพาสปอร์ตส่งให้กับผู้จัดการ

    “แผลเป็นยังไงบ้าง?” พ่อถามแพทย์หญิง

    “ก็ไม่มีอะไร” แพทย์หญิงตอบ “แผลไม่ต้องเย็บ แค่วันสองวันก็หายแล้ว”

    “แล้วกินข้าวได้ไหม?”

    “กินได้ปกติ หมอให้ยาทาไป แล้วก็ผ้าปิดแผลให้ด้วย”

    “จะใช้ใบรับรองแพทย์ไหม?” มีใครสักคนถาม

    ผมมองไปเห็นทีมงานที่อยู่ใกล้ทางเข้า กำลังเขียนเอกสารอยู่บนคลิปบอร์ดรองเขียน

    “ครับ” ผมพูด นึกถึงว่าจะต้องเบิกประกันในภายหลัง

    “ไม่เป็นไร เดี๋ยวทางเราจัดการให้เอง” ผู้จัดการตอบ

    “ขอบคุณครับ” ผมพูด

    “เรียบร้อยค่ะ” แพทย์หญิงพูด หลังจากส่งยาและผ้าปิดแผลให้ผมแล้ว

    “ขอโทษด้วยนะคะ” ผู้จัดการพูดตอนที่ผมกับพ่อเดินผ่านที่ทางเข้า

    “ไม่เป็นไรครับ”

    “ป๊านึกว่าจะมีที่นั่ง” พ่อพูดหลังเดินห่างออกมาจากห้องแล้ว “ก็เลยเอามาหมด”

    เรากลับไปที่ปีกที่เรานั่งในตอนแรก ตอนนี้ไม่มีที่เหลือแล้ว

    ผมรู้สึกหงุดหงิดขึ้นมาอีกครั้ง แต่ก็ไม่ได้ทำอะไร ผมรู้สึกว่าที่นี่น่าจะจัดการที่รองรับแขกให้ดีกว่านี้

    สักพัก แขกที่นั่งอยู่โต๊ะริมทางเดินก็ลุกออกไป ทิ้งจาน แก้วน้ำ และเศษอาหารไว้เบื้องหลัง โต๊ะนั้นนั่งได้ 2 คน แต่มีเก้าอี้เหลือแค่ตัวเดียว ผมเห็นเก้าอี้อีกตัวอยู่กับโต๊ะฝั่งตรงข้ามที่คนนั่ง 2 คน เก้าอี้ตัวถูกใช้วางสัมภาระ

    ผมให้พ่อนั่งก่อน พอแขกอีกโต๊ะใกล้ ๆ กันลุก ผมก็เอาเก้าอี้มานั่ง ตอนนั้น พ่อก็ชงชามาพร้อมดื่มต่อเรียบร้อยแล้ว

    “ตอนแรกจะโวยวายแล้ว” ผมพูด

    “ดีแล้วที่ไม่ทำ” พ่อพูด “เพราะคนที่เดือดร้อนน่าจะเป็นคนตัวเล็ก ๆ”

    ผมเข้าใจที่พ่อบอก เพราะตอนที่ผมยืนมองหาพนักงานสักคนที่จะรับกรรมไป ผมก็นึกถึงตอนที่ผมทำงานล้างจานที่ร้านอาหารในออสเตรเลีย ผมเคยทำจานชามแตกมานักต่อนักแล้ว แต่เจ้าของร้านก็ไม่เคยว่าอะไรผม และคนที่รับกรรมก่อนใครก็คือผมเอง ทุกวันนี้มือผมยังมีแผลเป็นจากจานชามบาดอยู่

    “คุณผู้ชายคะ จะรบกวนขอพาสปอร์ตกับตั๋วหน่อยนะคะ”

    ผมยื่นเอกสารให้กับผู้จัดการที่มาหาถึงโต๊ะ

    ผมจำไม่ได้ว่า พ่อชวนผู้จัดการคุยเรื่องอะไรบ้าง ระหว่างที่ผู้จัดการจดรายละเอียดของผม น่าจะเพื่อไปเบิกค่ารักษาพยาบาล ซึ่งผมได้ยินมาว่าสูงถึง 2,000 บาท สำหรับแผลเล็ก ๆ นี้

    “ต้องขอโทษด้วยอีกทีนะคะ” ผู้จัดการพูดหลังจากคืนพาสปอร์ตกับตั๋วให้ผม

    ผมลุกไปหยิบน้ำอัดลมมาดื่ม ตอนนั้น แก้วทรงสูงสำหรับกดน้ำมีมาเติมแล้ว และผมเช็กแล้วว่าขอบแก้วไม่มีรอยบิ่นเหมือนครั้งก่อน

    ทั้งหมดนี้เลยเป็นเหตุว่าทำไมผมถึงไม่ได้กินอาหารเย็นที่พนักงานเสิร์ฟให้บนเครื่องในภายหลัง


    ⏭️ Next Episodes

    อ่านตอนต่อไป:

  • Claude Code: รวมคู่มือและวิธีใช้ Claude Code สำหรับผู้เริ่มต้นและมืออาชีพ

    Claude Code: รวมคู่มือและวิธีใช้ Claude Code สำหรับผู้เริ่มต้นและมืออาชีพ

    Claude Code เป็น AI coding assistant สำหรับช่วยทำงานกับ code และไฟล์บนคอมพิวเตอร์ ผ่านการสั่งงานด้วยภาษาธรรมชาติ (natural language)

    แม้ว่า Claude Code จะช่วยให้เราสร้างผลงานได้โดยไม่จำเป็นต้องมีความรู้ในการเขียน code มาก่อน ถึงอย่างนั้น คุณภาพงานขึ้นอยู่กับฝีมือการใช้ Claude Code

    ในบทความชุดนี้ ผมจะพาทุกคนไปดูวิธีการใช้งาน Claude Code ที่ถูกต้อง ซึ่งไม่ว่ามือใหม่หรือมืออาชีพก็ใช้ได้

    บทความชุดนี้แบ่งเป็น 3 กลุ่ม:

    1. การเริ่มต้นใช้งาน Claude Code (2 บทความ)
    2. การจัดการ context ใน Claude Code (2 บทความ)
    3. การเพิ่มความสามารถให้ Claude Code (2 บทความ)

    อ่านบทความชุดนี้ได้ตามลิงก์ด้านล่าง 👇



    🧑‍💻 กลุ่มที่ 1. เริ่มต้นใช้งาน Claude Code

    .

    🌊 4 ขั้นตอนการใช้งาน Claude Code

    การสั่งให้ Claude เขียน code โดยไม่วางแผนหรือระบุความต้องการให้ชัดเจน อาจทำให้ผลลัพธ์ที่ได้ไม่ตรงกับสิ่งที่เราต้องการ

    ถ้าอยากได้ code แบบที่คาดหวังไว้ เราต้องมีขั้นตอนการทำงาน (process) กับ Claude Code ที่ถูกต้อง

    บทความนี้แนะนำ 4 ขั้นตอนการทำงานกับ Claude Code เพื่อให้ได้ code แบบที่เราต้องการ:

    Explore → Plan → Code → Commit

    👉 อ่านบทความ: 4 ขั้นตอนการใช้งาน Claude Code

    Claude Code

    .

    💻 30+ คำสั่ง Claude Code ที่ควรรู้

    Claude Code มีคำสั่งมากมายที่ช่วยลดเวลาในการทำงาน และช่วยสั่งงานได้ง่ายและเร็ว

    ตัวอย่าง:

    แทนที่เราจะสั่งให้ Claude เขียน CLAUDE.md ให้:

    เขียน CLAUDE.md ให้หน่อย

    เราสั่งงานด้วยคำสั่งสั้น ๆ อย่าง /init ได้

    ไปเรียนรู้คำสั่งนี้และอีก 30+ คำสั่งที่ควรรู้ในการทำงานกับ Claude Code ตั้งแต่:

    • คำสั่งพื้นฐาน
    • คำสั่งตั้งค่า Claude Code ให้เข้ามือ
    • คำสั่งขั้นสูงที่ทำให้ Claude Code ทำงานโดยอัตโนมัติ

    👉 อ่านบทความ: 30+ คำสั่ง Claude Code ที่ควรรู้

    Claude Code commands

    🧠 กลุ่มที่ 2. จัดการ Context ใน Claude Code

    .

    📖 5 วิธีจัดการ Context ใน Claude Code

    Context เป็นความจำที่ Claude ใช้ในการทำงาน

    เมื่อ context เต็ม Claude จะลืมข้อมูลหรือคำสั่งที่อยู่ช่วงต้นของ session และทำงานผิดพลาดได้

    ไปดู 5 วิธีจัดการ context เพื่อให้ Claude ทำงานได้อย่างมีประสิทธิภาพ ไม่ว่า session จะยาวขนาดไหนก็ตาม

    👉 อ่านบทความ: 5 วิธีจัดการ Context ใน Claude Code

    Claude Code context

    .

    📝 วิธีใช้ CLAUDE.md

    CLAUDE.md เป็นไฟล์ที่เก็บข้อมูลและแนวทางที่ Claude ควรรู้เกี่ยวกับการทำงาน ซึ่งช่วยลดการสั่งงาน Claude ใหม่ทุก ๆ session เช่น:

    • เป้าหมายของงาน
    • สไตล์การเขียน code
    • Tech stack ที่ต้องใช้

    ไปทำความรู้จักกับ CLAUDE.md และวิธีการใช้ CLAUDE.md อย่างมืออาชีพในบทความนี้

    👉 อ่านบทความ: วิธีสร้างและใช้งาน CLAUDE.md

    CLAUDE.md

    🦾 กลุ่มที่ 3. เพิ่มความสามารถให้ Claude Code

    .

    🛠️ วิธีใช้ Claude Code Skill

    Skill เป็นแนวทางการทำงานที่ Claude Code เรียกใช้งานได้เมื่อจำเป็น

    ไปดูวิธีการสร้างและใช้ skill เพื่อช่วยให้ Claude Code ทำงานได้อย่างมีประสิทธิภาพกัน

    👉 อ่านบทความ: วิธีสร้างและใช้งาน Claude Code skill

    Claude Code SKILL.md

    .

    🤖 วิธีใช้ Claude Code Subagent

    Subagent คือ AI agent ที่ Claude เรียกใช้เพื่อทำงานเฉพาะทาง โดยไม่รบกวน context หลัก เหมาะกับงานที่เราต้องการแค่ผลลัพธ์ ไม่ใช่กระบวนการทำงาน

    ไปดูวิธีการสร้างและใช้งาน subagent เพื่อช่วยให้ Claude Code ทำงานได้อย่างมีประสิทธิภาพกัน

    👉 อ่านบทความ: วิธีสร้างและใช้งาน Claude Code subagent

    Claude Code subagent
  • Claude Code Subagent คืออะไร? วิธีสร้างและใช้งาน Subagent อย่างมีประสิทธิภาพ

    Claude Code Subagent คืออะไร? วิธีสร้างและใช้งาน Subagent อย่างมีประสิทธิภาพ

    Claude Code เป็น AI coding assistant ที่ทำงานกับไฟล์บนเครื่องของเราได้โดยตรง ช่วยลดเวลาในการเปลี่ยนหน้าจอในการทำงาน และทุ่นแรงในการเขียนและรีวิว code ได้

    ความโดดเด่นหนึ่งของ Claude คือ subagent ซึ่งช่วยให้ Claude ทำงานที่หลากหลายและซับซ้อนได้ดีขึ้น

    ในบทความนี้ ผมจะพาทุกคนไปรู้จักกับ subagent ตั้งแต่ subagent คืออะไร ใช้ยังไง การใช้งานที่ควรและไม่ควรใช้ subagent

    ถ้าพร้อมแล้ว ไปเริ่มกันเลย



    🤖 Subagent มีไว้ทำไม?

    Subagent คือ AI agent ที่จะทำงานเฉพาะอย่างที่ Claude สั่ง

    เวลาถูกเรียกใช้งาน subagent จะทำงานใน context หรือความจำของตัวเอง แล้วส่งผลลัพธ์กลับไปให้ Claude

    เช่น:

    เราสั่งให้ Claude อธิบาย code
    ↓
    Claude สั่งให้ subagent อ่านไฟล์
    ↓
    Subagent อ่านและทำความเข้าใจไฟล์
    ↓
    Subagent สรุปข้อมูลและส่งให้ Claude
    ↓
    Claude ประมวลผลและตอบคำถามเรา

    ข้อดี คือ ประหยัด context ในการทำงาน เพราะ Claude ไม่ต้องเก็บข้อมูลที่ใช้ในการทำงานทั้งหมด (เช่น ไฟล์ที่ถูกอ่าน) แต่จะเก็บเฉพาะผลลัพธ์ที่ subagent ส่งกลับมา

    แต่ข้อเสีย คือ เราจะไม่รู้ว่า ผลลัพธ์ที่ได้มาเกิดขึ้นยังไงบ้าง เพราะ Claude จะไม่เห็นการทำงานหรือข้อมูลที่ subagent เห็น


    🦾 วิธีสร้าง Subagent

    เราสร้าง subagent ได้ 2 วิธี:

    1. ให้ Claude สร้างให้ (แนะนำ)
    2. สร้างเอง

    ตัวอย่างคำสั่งสร้าง subagent ด้วย Claude:

    สร้าง agent ที่รีวิว code และแนะนำวิธีแก้ให้หน่อย

    📑 โครงสร้างไฟล์ MD ของ Subagent

    ข้อมูลของ subagent จะถูกเก็บไว้ในไฟล์ markdown (MD) เช่น code-reviewer.md และประกอบด้วย 6 ส่วน:

    1. name
    2. description
    3. tools (optional)
    4. model (optional)
    5. color (optional)
    6. Main body

    ตัวอย่างไฟล์ MD:

    ---
    name: code-reviewer
    description: Reviews code for quality, security, and maintainability issues. Use proactively after writing or modifying code, before committing.
    tools: Read, Grep, Glob
    model: sonnet
    color: green
    ---
    You are a senior code reviewer focused on correctness, security, and readability.
    When invoked:
    1. Run `git diff` to see recent changes (or review the specified files).
    2. Focus only on the changed code, not the whole codebase.
    3. Check for: security vulnerabilities, unhandled errors, unclear naming, missing tests, and duplicated logic.
    For each issue found, report:
    - File path and line number
    - Description of the problem
    - Suggested fix (code snippet if applicable)
    - Severity: low / medium / high
    Be direct and specific. Skip praise — focus on what needs to change.

    .

    👉 ส่วนที่ 1. name

    ตัวอย่าง:

    name: code-reviewer

    ใช้ระบุตัว subagent

    .

    👉 ส่วนที่ 2. description

    ตัวอย่าง:

    description: Reviews code for quality, security, and maintainability issues. Use proactively after writing or modifying code, before committing.

    บอก Claude 2 อย่างเกี่ยวกับ subagent:

    1. What: subagent นี้ทำอะไร
    2. When: เมื่อไรถึงจะเรียกใช้ subagent นี้

    เคล็ดลับ:

    1. ใช้คำว่า proactively เพื่อทำให้ Claude เรียกใช้ subagent นี้บ่อยขึ้น (อย่างในตัวอย่าง เราบอกว่า ให้ใช้ proactively ทุกครั้งที่เขียนหรือแก้ไข code เสร็จ)

    .

    👉 ส่วนที่ 3. tools

    ตัวอย่าง:

    tools: Read, Grep, Glob

    ระบุ action ที่ subagent สามารถทำได้

    อย่างในตัวอย่าง เราเลือก:

    • Read: อ่านไฟล์
    • Grep: ค้นหาเนื้อหาในไฟล์
    • Glob: ค้นหาไฟล์

    Note:

    • ดูตัวเลือก action ทั้งหมดได้ที่ Tools reference
    • เราสามารถเลือกไม่ระบุได้ โดย Claude จะเลือกใช้ค่า default ของระบบ

    .

    👉 ส่วนที่ 4. model

    ตัวอย่าง:

    model: sonnet

    ระบุ model ที่จะใช้งาน ซึ่งมี 4 ตัวเลือก:

    1. Haiku: เหมาะกับงานที่เน้นความเร็ว
    2. Opus: เหมาะกับงานที่เน้นการคิดวิเคราะห์
    3. Sonnet: งานที่เน้นความสมดุลระหว่างความเร็วและการวิเคราะห์
    4. Inherit: ใช้ model เดียวกับ Claude (เช่น Claude ใช้ Haiku อยู่ subagent ก็จะใช้ Haiku ด้วย)

    ถ้าเราไม่กำหนด model, Claude จะใช้ model เดียวกับที่ใน session นั้น ๆ

    .

    👉 ส่วนที่ 5. color

    ตัวอย่าง:

    color: green

    เลือกสีของ subagent เพื่อให้รู้ว่า การทำงานไหนเป็นของ subagent ไหน

    รูปจาก Introduction to Subagents

    .

    👉 ส่วนที่ 6. Main Body

    ตัวอย่าง:

    You are a senior code reviewer focused on correctness, security, and readability.
    When invoked:
    1. Run `git diff` to see recent changes (or review the specified files).
    2. Focus only on the changed code, not the whole codebase.
    3. Check for: security vulnerabilities, unhandled errors, unclear naming, missing tests, and duplicated logic.
    For each issue found, report:
    - File path and line number
    - Description of the problem
    - Suggested fix (code snippet if applicable)
    - Severity: low / medium / high
    Be direct and specific. Skip praise — focus on what needs to change.

    ใช้กำหนดพฤติกรรมการทำงานของ subagent

    เคล็ดลับ:

    1. ควรกำหนด output format หรือหน้าตางานที่ subagent จะต้องส่งกลับไปให้ Claude
    2. ควรบอกให้ subagent ส่งรายละเอียดการทำงานบางส่วนให้กับ Claude เพื่อช่วยให้ Claude เข้าใจผลลัพธ์ที่ subagent ส่งกลับมามากขึ้น

    🤔 เมื่อไรที่ควรและไม่ควรใช้ Subagent?

    ✅ งานที่ subagent ทำได้ดี:

    ข้อ 1. วิจัยและสืบค้น (research and investigation) เช่น อ่านและอธิบาย code ที่มีคนเขียนแล้ว

    ข้อ 2. งานเฉพาะทางที่ต้องการความแม่นยำ เช่น งาน copywriting และการจัด style การเขียน code

    ข้อ 3. การตรวจทาน code

    ❌ สิ่งที่ไม่ควรใช้กับ subagent:

    ข้อ 1. Prompt ให้ subagent มีความรู้เฉพาะทาง

    เช่น “คุณเป็น software tester ที่มีความละเอียด”

    Subagent มีความรู้เหล่านี้อยู่แล้ว และการ prompt เพิ่มจะไม่ช่วยให้ subagent ทำงานได้ดีขึ้น

    ข้อ 2. ใช้ subagent ทำงานต่อ ๆ กัน

    เช่น subagent 1 ตรวจหา error ใน code และส่งให้ subagent 2 แก้ code

    Subagent จะเห็นแต่ผลลัพธ์ แต่ไม่เห็นการทำงานของกันและกัน (เช่น subagent 2 จะเห็นแต่ผลลัพธ์ว่ามี error แต่ไม่รู้ว่า error ที่จุดไหน) ซึ่งทำให้งานที่ได้มีโอกาสผิดพลาดสูง

    ข้อ 3. ใช้ subagent ทดสอบ code

    Subagent มักจะรายงานผลการทดสอบ แต่ไม่บอกรายละเอียดที่ทำให้เกิด error ทำให้เราต้องลงไปค้นหาสาเหตุของ error เอง


    🫵 Your Turn

    หลังอ่านบทความนี้แล้ว ลองใช้มา Claude Code กันดูนะครับ:


    📃 References

  • Claude Code Skill คืออะไร? วิธีสร้างและใช้งาน Skill อย่างมีประสิทธิภาพ

    Claude Code Skill คืออะไร? วิธีสร้างและใช้งาน Skill อย่างมีประสิทธิภาพ

    Claude Code เป็น AI coding assistant ที่ทำงานกับไฟล์บนเครื่องของเราได้โดยตรง ช่วยลดเวลาในการเปลี่ยนหน้าจอในการทำงาน และทุ่นแรงในการเขียนและรีวิว code ได้

    จุดเด่นหนึ่งของ Claude คือ skill ซึ่งช่วยให้ Claude ปรับตัวและทำงานที่มีความซับซ้อนและหลากหลายได้

    ในบทความนี้ ผมจะพาทุกคนไปรู้จักกับ skill ตั้งแต่ skill คืออะไร ใช้ยังไง ไปจนถึงเคล็ดลับในการใช้ skill อย่างมีประสิทธิภาพ

    ถ้าพร้อมแล้ว ไปเริ่มกันเลย



    🤨 Skill ใน Claude Code คืออะไร? ใช้เพื่ออะไร?

    Skill เป็นไฟล์ markdown ที่เก็บคำชี้แจง script และข้อมูลต่าง ๆ ที่ Claude เรียกใช้ได้เมื่อจำเป็น

    Skill ใช้แก้ปัญหา 2 อย่าง:

    1. ลดการพูดซ้ำ
    2. ใช้ทำงานย่อย ๆ หรืองานเฉพาะกิจ

    งานย่อย ๆ หรือสิ่งที่เรามักต้องพูดซ้ำกับ Claude (เช่น รีวิว code ยังไง, แก้ bug ยังไง, deploy บน production ยังไง) ให้เราสร้างเป็น skill เพื่อให้ Claude รู้ว่าต้องทำอะไรโดยที่เราไม่ต้องสั่งอีก


    🕰️ Skill จะใช้เมื่อไร?

    Claude จะเรียกใช้งาน skill โดยอัตโนมัติเมื่อ skill มีความเกี่ยวข้องกับงานตรงหน้า หรือเมื่อเราเรียกใช้งานเอง

    ตัวอย่างการเรียกใช้งานแบบอัตโนมัติ:

    รีวิว code ใน app.py ให้หน่อย

    ถ้า Claude มี skill สำหรับรีวิว code (เช่น code-review) Claude จะเรียกใช้งาน skill นี้โดยที่เราไม่ต้องบอกแต่แรก

    ตัวอย่างการเรียกใช้งานเอง:

    ใช้ /code-review รีวิว code ใน app.py ให้หน่อย

    ในกรณีนี้ Claude จะค้นหา skill ชื่อ code-review และเอามาใช้รีวิว code ตามคำสั่ง


    📎 สร้าง Skill ยังไง?

    เราสร้าง skill ได้ 3 วิธี:

    1. สั่งให้ Claude สร้างให้ (แนะนำ)
    2. เขียนเอง
    3. โหลด skill ที่มีคนสร้างไว้แล้ว

    ตัวอย่างการสั่งให้ Claude สร้างให้:

    สร้าง skill สำหรับรีวิว code ให้หน่อย

    📑 Skill หน้าตาเป็นยังไง?

    Skill จะถูกเก็บไว้ใน SKILL.md ซึ่งประกอบไปด้วย 5 ส่วน:

    1. name
    2. description
    3. allowed-tools (optional)
    4. model (optional)
    5. Instruction

    ตัวอย่าง SKILL.md:

    ---
    name: code-review
    description: Reviews code changes for bugs, style issues, and best practices. Use when the user asks for a code review, wants feedback on a diff or pull request, or asks "does this look right?" about recent changes.
    allowed-tools: Read, Grep, Glob, Bash(git diff:*)
    model: sonnet
    ---
    # Code Review
    Review the code changes in the current diff or specified files.
    ## Steps
    1. Run `git diff` (or read the specified files) to see what changed
    2. Check for:
    - Logic errors or edge cases the code doesn't handle
    - Inconsistent style with the rest of the codebase
    - Missing error handling
    - Unclear naming or missing comments where logic is non-obvious
    - Potential security issues (unsanitized input, hardcoded secrets)
    3. Skip nitpicks on formatting if a linter/formatter is already configured
    ## Output Format
    - Group feedback by file
    - Mark each issue as **Blocking**, **Suggestion**, or **Nit**
    - Keep comments specific — point to the line and explain *why*, not just *what*
    - End with a one-line summary verdict (e.g. "Ready to merge" / "Needs changes")

    .

    👉 ส่วนที่ 1. name

    ตัวอย่าง:

    name: code-review

    ใช้ระบุ skill และควรตั้งให้มีความเจาะจงเพื่อไม่ให้ซ้ำกัน เช่น:

    • code-review-for-security
    • code-review-for-rendering
    • code-review-for-general-functions

    .

    👉 ส่วนที่ 2. description

    ตัวอย่าง:

    description: Reviews code changes for bugs, style issues, and best practices. Use when the user asks for a code review, wants feedback on a diff or pull request, or asks "does this look right?" about recent changes.

    ใช้บอก Claude 2 อย่าง:

    1. What: skill นี้ทำอะไร
    2. When: เมื่อไรถึงจะเรียกใช้ skill นี้

    อย่างในตัวอย่างบอก Claude ว่า:

    1. What: ใช้รีวิว code เพื่อหา bug และแนะนำวิธีแก้
    2. When: ใช้เมื่อ user ต้องการรีวิว code หรือถามเกี่ยวกับ code

    .

    👉 ส่วนที่ 3. allowed-tools

    ตัวอย่าง:

    allowed-tools: Read, Grep, Glob, Bash(git diff:*)

    ใช้ระบุ action ที่ skill นี้ทำได้

    อย่างในตัวอย่าง เราเลือก:

    • Read: อ่านไฟล์
    • Grep: ค้นหาเนื้อหาในไฟล์
    • Glob: ค้นหาไฟล์
    • Bash: รัน shell command

    Note:

    • ดูตัวเลือก action ทั้งหมดได้ที่ Tools reference
    • เราสามารถเลือกไม่ระบุได้ โดย Claude จะเลือกใช้ค่า default ของระบบ

    .

    👉 ส่วนที่ 4. model

    ตัวอย่าง:

    model: sonnet

    ระบุ model ที่จะใช้งาน ซึ่งมี 3 ตัวเลือก:

    1. Haiku: เหมาะกับงานที่เน้นความเร็ว
    2. Opus: เหมาะกับงานที่เน้นการคิดวิเคราะห์
    3. Sonnet: งานที่เน้นความสมดุลระหว่างความเร็วและการวิเคราะห์

    เราเลือกที่จะไม่กำหนด model ได้ โดยในกรณีนั้น Claude จะใช้ model ที่ใช้งานอยู่ใน session นั้น ๆ

    .

    👉 ส่วนที่ 5. Instruction

    ตัวอย่าง:

    # Code Review
    Review the code changes in the current diff or specified files.
    ## Steps
    1. Run `git diff` (or read the specified files) to see what changed
    2. Check for:
    - Logic errors or edge cases the code doesn't handle
    - Inconsistent style with the rest of the codebase
    - Missing error handling
    - Unclear naming or missing comments where logic is non-obvious
    - Potential security issues (unsanitized input, hardcoded secrets)
    3. Skip nitpicks on formatting if a linter/formatter is already configured
    ## Output Format
    - Group feedback by file
    - Mark each issue as **Blocking**, **Suggestion**, or **Nit**
    - Keep comments specific — point to the line and explain *why*, not just *what*
    - End with a one-line summary verdict (e.g. "Ready to merge" / "Needs changes")

    เป็นคำชี้แจงในการทำงานให้กับ Claude

    อย่างในตัวอย่าง เราระบุ:

    1. ขั้นตอนการรีวิว code
    2. สิ่งที่จะต้องส่งกลับมา

    ✌️ ระดับและการจัดลำดับ Skill

    Skill แบ่งได้เป็น 4 ระดับ:

    1. Enterprise: skill ที่ใช้ร่วมกันทั้งองค์กร (เก็บอยู่ใน managed-settings.json)
    2. Personal: skill ที่ใช้ร่วมกันทุก project ที่เราทำงาน (เก็บอยู่ใน ~/.claude/skills)
    3. Project: skill ที่ใช้เฉพาะ project (เก็บอยู่ใน <project_folder>/.claude/skills)
    4. Plugin: skill ที่มาพร้อม plugin (เก็บอยู่ใน <project_folder>/.claude-plugins/skills)

    ในกรณีที่ skill มีชื่อซ้ำกันหรือทำงานเหมือนกัน Claude จะเลือกใช้ skill ตามลำดับนี้:

    Enterprise > Personal > Project > Plugin

    ตัวอย่าง:

    เรามี skill ชื่อ code-review ใน root directory (ระดับ Personal) ซึ่งซ้ำกับ code-review ใน managed-settings.json (ระดับ Enterprise) Claude จะเลือกใช้ code-review ใน managed-settings.json ก่อน


    🤫 เคล็ดลับการใช้ Skill

    .

    1️⃣ ข้อที่ 1. เขียน name และ description ให้ดี

    Claude เลือกใช้ skill โดยอ่านจาก name และ description

    ถ้าทั้ง name และ description ไม่สื่อความหมายที่เกี่ยวข้องกับงานตรงหน้า Claude จะไม่เรียกมาใช้งาน แม้ว่าเราต้องการให้ใช้ก็ตาม

    วิธีแก้ คือ เขียน name และ description ให้ดี:

    1. name ควรมีความเฉพาะเจาะจง ไม่ธรรมดาจนเกินไป
    2. description ควรบอกว่า skill ทำอะไร และควรใช้เมื่อไร

    .

    2️⃣ ข้อที่ 2. เขียน Instruction ให้กระชับ

    เมื่อ Claude เลือกใช้ skill ก็จะโหลด instruction ใน SKILL.md เข้ามาอ่าน ซึ่งจะทำให้ Claude มี context หรือความจำในการทำงานน้อยลง

    ดังนั้น เราควรเขียน instruction กระชับเพื่อประหยัดการใช้ context ของ Claude โดย SKILL.md ไม่ควรยาวเกิน 500 บรรทัด

    ในกรณีที่ instruction ยาว เราสามารถตัดแบ่งบางส่วนไปใส่ในไฟล์อื่น และเขียนอ้างอิงไว้ใน SKILL.md แทนได้

    ตัวอย่าง:

    ---
    name: api-integration
    description: Build and debug integrations with our internal API. Use when the user asks to add an endpoint, authenticate a request, or troubleshoot API errors.
    ---
    # API Integration
    This skill covers our internal API conventions. Keep this file as your starting point — don't guess at details covered in the linked files below; open them when the task needs that level of detail.
    ## Quick Reference
    - Base URL: `https://api.internal.example.com/v1`
    - Auth: Bearer token in `Authorization` header
    - All responses are JSON with a `data` and `error` envelope
    ## When You Need More Detail
    - **Authentication flows** (OAuth, token refresh, service accounts) → see [auth.md](auth.md)
    - **Full endpoint list and request/response schemas** → see [endpoints.md](endpoints.md)
    - **Error codes and retry behavior** → see [errors.md](errors.md)
    - **Example requests in curl, Python, and JS** → see [examples.md](examples.md)
    Only read the file(s) relevant to the current task. Don't load all of them upfront.

    เมื่อทำอย่างนี้ Claude จะโหลดข้อมูลจากไฟล์ที่เราอ้างอิงใน SKILL.md เมื่อจำเป็นเท่านั้น ทำให้เราประหยัดพื้นที่ใน context ไปได้

    .

    3️⃣ ข้อที่ 3. ใช้ Skill ใน Subagent

    Subagent เป็น agent ที่ Claude เรียกใช้งานเพื่อทำงานเฉพาะทางบางอย่างได้

    Subagent จะไม่สามารถใช้ skill ได้เองจนกว่าเราจะบอกว่าใช้ได้ โดยกำหนด skill ใน skills ในไฟล์ markdown ของ subagent

    ตัวอย่าง:

    ---
    name: api-developer
    description: Implement API endpoints following team conventions
    tools: Read, Write, Edit, Grep, Glob, Bash
    skills:
    - api-conventions
    - error-handling-patterns
    ---
    You are an API developer. Implement endpoints following the conventions
    and patterns from the preloaded skills above.

    เมื่อกำหนดแล้ว subagent จะเรียกใช้งาน skill ทุกครั้งที่ตัวเองถูกใช้งาน ซึ่งต่างจาก main agent ที่เลือกใช้ skill ได้ตามหน้างาน


    🫵 Your Turn

    หลังอ่านบทความนี้แล้ว ลองใช้มา Claude Code กันดูนะครับ:


    📃 References

  • CLAUDE.md คืออะไร? วิธีสร้างและใช้ CLAUDE.md สำหรับ Claude Code

    CLAUDE.md คืออะไร? วิธีสร้างและใช้ CLAUDE.md สำหรับ Claude Code

    Claude Code เป็น AI coding assistant ที่ทำงานกับไฟล์บนคอมพิวเตอร์ได้ สามารถช่วยนักพัฒนาเขียนและแก้ไข code ได้ในเวลาอันรวดเร็ว และช่วยคนทั่วไปเขียน code โดยไม่ต้องมีความรู้มาก่อน

    ในบทความนี้ ผมจะมาแนะนำวิธีใช้ CLAUDE.md เพื่อช่วยให้ทำงานกับ Claude Code ได้อย่างมีประสิทธิภาพมากขึ้น

    เนื้อหาแบ่งเป็น 3 ส่วน:

    1. CLAUDE.md คืออะไร
    2. วิธีใช้ CLAUDE.md
    3. วิธีเขียน CLAUDE.md ที่ดี

    ถ้าพร้อมแล้ว ไปเริ่มกันเลย



    🤔 CLAUDE.md คืออะไร? สำคัญยังไง?

    CLAUDE.md เป็น ไฟล์ markdown ที่ช่วยให้ Claude เข้าใจบริบทของงานและกำกับการทำงานของ Claude

    สิ่งที่ควรใส่ไว้ใน CLAUDE.md:

    1. สิ่งที่ Claude ควรรู้เกี่ยวกับงานที่ทำ (เช่น เป้าหมาย, tech stack ที่ใช้)
    2. แนวทางการทำงาน (เช่น สไตล์การเขียน code, วิธีเขียน commit message)

    อะไรที่ Claude ต้องรู้ก่อนลงมือทำงาน และอะไรที่เราอยากให้ Claude ทำโดยที่เราไม่ต้องสั่งทุกครั้ง ให้ใส่ไว้ใน CLAUDE.md

    ตัวอย่าง CLAUDE.md:

    # Project Overview
    - เป้าหมาย: สร้าง e-commerce API สำหรับร้านขายเสื้อผ้าออนไลน์
    - Tech stack: Node.js, Express, PostgreSQL, TypeScript
    # Coding Style
    - ใช้ 2-space indentation
    - ใช้ TypeScript strict mode เสมอ
    - API endpoints อยู่ใน src/api/handlers/

    ถ้าเราเริ่ม session โดยไม่มี CLAUDE.md, Claude จะต้องเรียนรู้เกี่ยวกับงานที่จะทำใหม่ทุกครั้ง

    แต่เมื่อมี CLAUDE.md, Claude จะเข้าใจงานที่ต้องทำโดยที่เราไม่ต้องอธิบายใหม่ทุกครั้ง


    💻 CLAUDE.md ใช้ยังไง?

    .

    🧑‍💻 วิธีใช้ CLAUDE.md

    Claude จะโหลด CLAUDE.md เข้ามาโดยอัตโนมัติเมื่อเริ่ม session ใหม่

    สิ่งที่เราต้องทำ คือ สร้าง CLAUDE.md ก่อนจะเริ่ม session

    .

    🆕 วิธีสร้าง CLAUDE.md

    เราสร้าง CLAUDE.md ได้ 2 วิธี:

    1. เขียนเอง
    2. ใช้คำสั่ง /init เพื่อให้ Claude อ่านไฟล์ในโฟลเดอร์และสร้าง CLAUDE.md ขึ้นมาให้

    .

    📝 วิธีแก้ไข CLAUDE.md

    เราแก้ไข CLAUDE.md ได้ 2 วิธี:

    1. แก้ไฟล์ใน text editor
    2. ใช้คำสั่ง /memory แล้วแก้ไข CLAUDE.md

    ✍️ การเขียน CLAUDE.md ที่ดี

    CLAUDE.md ที่ดีมี 4 ลักษณะ:

    .

    1️⃣ ลักษณะที่ 1. ไม่เกิน 200 บรรทัด

    CLAUDE.md ควรมีความยาวไม่เกิน 200 บรรทัด

    ถ้าเกิน 200 บรรทัด Claude อาจทำตามคำสั่งใน CLAUDE.md ได้ไม่เต็มที่

    .

    2️⃣ ลักษณะที่ 2. มีโครงสร้างชัดเจน (Structured)

    ใช้ markdown ในการเขียน เพื่อสื่อสารความสัมพันธ์และลำดับความสำคัญของข้อมูล

    ❌ ตัวอย่างที่ไม่ดี:

    โปรเจกต์นี้เป็น blog platform ใช้ Next.js กับ Tailwind CSS เขียนบทความเป็น markdown เก็บไว้ใน content/posts/ รูปภาพให้ optimise ก่อน upload เสมอ และ compress ให้ไม่เกิน 200KB ส่วนชื่อไฟล์ให้ใช้ kebab-case เช่น my-first-post.md ก่อน deploy ทุกครั้งต้อง run npm run build เพื่อเช็ค error ก่อน

    ✅ ตัวอย่างที่ดี:

    # Project Overview
    - Tech stack: Next.js, Tailwind CSS
    - บทความเก็บเป็น markdown ใน content/posts/
    # File Naming
    - ใช้ kebab-case เช่น my-first-post.md
    # Images
    - Optimise และ compress ก่อน upload เสมอ (ไม่เกิน 200KB)
    # Before Deploy
    - Run `npm run build` เพื่อเช็ค error ก่อนทุกครั้ง

    .

    3️⃣ ลักษณะที่ 3. เจาะจง (Specific)

    เขียนให้เจาะจง เพื่อให้ Claude ทำตามได้ง่าย

    ❌ ตัวอย่างที่ไม่ดี:

    เขียน commit message ให้อ่านง่าย ๆ

    ✅ ตัวอย่างที่ดี:

    เขียน commit message ในรูปแบบนี้:
    [Add/Edit/Delete] concise commit message
    เช่น:
    - [Add] login endpoint สำหรับผู้ใช้งาน
    - [Edit] แก้ไข bug การคำนวณราคาสินค้าใน checkout
    - [Delete] ลบไฟล์ config ที่ไม่ได้ใช้แล้ว

    .

    4️⃣ ลักษณะที่ 4. เสมอต้นเสมอปลาย (Consistent)

    CLAUDE.md ควรมีเนื้อหาที่สอดคล้องกัน

    ถ้าเนื้อหาขัดแย้งกัน Claude จะเลือกทำตามข้อใดข้อหนึ่งแล้วแต่สถานการณ์ ทำให้งานที่ออกมาไม่คงเส้นคงวา

    .

    ☑️ Checklist

    ก่อนใช้ CLAUDE.md เราควรจะรีวิวเนื้อหาก่อนว่า:

    1. ไม่เกิน 200 บรรทัด
    2. ใช้ markdown ในการเขียน
    3. มีความชัดเจน
    4. เนื้อหาไม่ขัดแย้งกันเอง

    🫵 Your Turn

    หลังจบบทความนี้แล้ว ลองมาใช้ Claude Code กันนะครับ


    📃 References