Tag: rust

33 รายการ

Blog

บอร์ดคอมพิวเตอร์ขนาดเล็กบนโต๊ะมืด ล้อมรอบด้วยล็อกเกอร์จิ๋วนับพันเรียงสุดสายตา ส่วนใหญ่ปิดมืด มีบางตู้เปิดเรืองแสงสีเขียวและหนึ่งตู้ติดป้ายสีอำพัน
aiai-agentsaws

Infinity ให้ AI พักระหว่างรองาน อ้างเก็บ 75,000 เอเจนต์ในแรม 8 GB

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

น้องกาย
ปูสีส้มแดงต้นฉบับส่องข้อมูลในกล่องไม้ผ่านช่องมองโดยไม่ยกกล่องออกจากชั้น
rustoptionborrowing

Rust Option::as_deref: อ่าน String แบบ &str โดยไม่ย้ายเจ้าของ

ใช้ Option::as_deref ตรวจและ normalize config แบบยืมค่าเดิม พร้อมตัวอย่าง Rust ที่ยืนยันว่า String ยังใช้งานต่อได้

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

Rust Iterator::is_sorted_by_key: ตรวจลำดับโดยไม่สร้าง Vec สำรอง

ตรวจ stream ว่าเรียงตาม priority หรือไม่ด้วย is_sorted_by_key พร้อม Cargo test และข้อควรระวังเรื่อง key

พี่โชว์
ปูต้นฉบับหนีบตั๋วสองใบให้เดินทางเป็นคู่ ขณะที่ตั๋วเดี่ยวถูกพักไว้
rustoptionvalidation

Rust Option::zip: รวมค่าที่ต้องมาคู่กันโดยไม่ซ่อนสถานะขาดครึ่ง

ใช้ Option::zip รวม start/end ที่ต้องมีพร้อมกัน แยก missing ออกจาก invalid และทดสอบด้วย Cargo offline

พี่โชว์
ปูสีส้มแดงต้นฉบับใช้ก้ามแบ่งริบบิ้นสีเขียวที่จุดบาก ทำให้เกิดมุมมองสองส่วนบนกระดานเดียวกัน
rustsliceparsing

Rust slice::split_off: หยิบช่วงออกจากมุมมองโดยไม่ allocate

ใช้ split_off กับ &mut &[T] เพื่อเลื่อน cursor ของ slice อย่างปลอดภัย พร้อมแยกจาก Vec::split_off และจัดการ out-of-bounds

พี่โชว์
ปูสีส้มแดงต้นฉบับกำลังวางลูกบอลลงช่องว่างท้ายรางหน่วยความจำบนโต๊ะสีมิ้นต์
rustvecmemory

Rust Vec::spare_capacity_mut: เติม buffer ที่จองไว้โดยไม่สร้าง Vec ชั่วคราว

เรียนรู้ MaybeUninit, set_len invariant และ panic boundary ผ่านตัวอย่างเติมข้อมูลที่ทดสอบจริง

พี่โชว์
ปูสีส้มแดงต้นฉบับกำลังจัดก้อนกรวดเป็นถาดละสามก้อนและแยกเศษที่เหลือไว้ข้างถาด
rustslicechunks

Rust slice::as_chunks: แบ่ง slice เป็นกลุ่มขนาดคงที่โดยไม่ copy

ใช้ as_chunks แปลง slice เป็น array chunks กับ remainder พร้อมทดสอบขอบเขตและอธิบายว่าทำไมขนาดศูนย์จึง panic

พี่โชว์
ปูต้นฉบับตรวจกล่องหน้าสุดบนรางคิวก่อนคีบออก ขณะที่กล่องด้านหลังยังเรียงเดิม
rustvecdequequeue

Rust VecDeque::pop_front_if: หยิบหัวคิวเฉพาะเมื่อพร้อม

ใช้ pop_front_if ตรวจและนำสมาชิกหน้าคิวออกแบบ atomic ต่อการยืม พร้อมเข้าใจ mutation ใน predicate และทางเลือกเมื่อเงื่อนไขล้ม

พี่โชว์
ปูต้นฉบับคีบลูกปัดที่ผ่านเงื่อนไขออกจากช่วงกลางของรางโดยเก็บลูกอื่นไว้
rustveciterator

Rust Vec::extract_if: ดึงสมาชิกออกเฉพาะช่วงโดยยังเก็บลำดับที่เหลือ

ใช้ Vec::extract_if แยกสมาชิกที่ผ่านเงื่อนไขจาก range พร้อมเข้าใจ lazy iterator, early drop และต้นทุนการเลื่อนข้อมูล

พี่โชว์
ปูสีส้มแดงต้นฉบับกำลังคลี่สายพานวงแหวนสองช่วงให้กลายเป็นแถวเดียวบนโต๊ะทำงานสีมิ้นต์
rustvecdequecollections

Rust VecDeque::make_contiguous: เปิด ring buffer เป็น slice ก่อน sort

ทำให้ข้อมูลใน VecDeque ต่อเนื่องในหน่วยความจำเพื่อ sort หรือส่งต่อ API ที่รับ slice พร้อมเข้าใจต้นทุนการย้าย

พี่โชว์
ปูต้นฉบับสีส้มแดงกำลังเลื่อนลูกปัดสะสมบนรางข้อมูลสีมิ้นต์ทีละชิ้น
rustiteratorsscan

Rust Iterator::scan: พก state ไปทีละรายการโดยไม่หลุดจาก pipeline

ใช้ scan สร้าง running state ใน iterator พร้อมอธิบายจังหวะหยุด, ownership และกรณีที่ loop ชัดกว่า

พี่โชว์
ปูสีส้มแดงต้นฉบับหยุดสายพานสะสมทันทีเมื่อพบชิ้นงานสีอำพันแตกร้าว
rustiteratortry-fold

Rust try_fold: สะสมค่าแล้วหยุดทันทีเมื่อเจอเงื่อนไขผิด

ใช้ Iterator::try_fold รวมข้อมูลพร้อมส่ง error ออกจากลูปเร็ว โดยไม่ต้องเขียน mutable accumulator เอง

พี่โชว์
ปูต้นฉบับตรวจลูกโอ๊กในกล่องตัวเลือกและคีบออกเฉพาะเมื่อผ่านเกณฑ์บนฉากสว่าง
rustoptionownership

Rust Option::take_if: ย้ายค่าออกเมื่อเงื่อนไขผ่าน โดยไม่ชน borrow

ใช้ take_if ตรวจและย้ายค่าจาก Option อย่างเป็นอะตอม พร้อมเทียบกับ take และ as_ref

พี่โชว์
ปูต้นฉบับชี้จุดที่แถวก้อนหินขนาดเล็กเปลี่ยนเป็นก้อนใหญ่บนฉากสว่าง
rustslicebinary-search

Rust partition_point: หาเส้นแบ่งใน slice ที่เรียงตามเงื่อนไข

ใช้ binary search หา index แรกที่ predicate เปลี่ยนจากจริงเป็นเท็จ พร้อม edge cases และ test ที่รันจริง

น้องกาย
ปูสีส้มแดงต้นฉบับกำลังวางก้อนกรวดสีเดียวกันเป็นช่วงติดกันบนโต๊ะทำงานสีมิ้นต์
rustsliceiterator

Rust slice::chunk_by: แบ่งข้อมูลติดกันตามกติกาโดยไม่ copy

ใช้ chunk_by มอง slice เป็นช่วงต่อเนื่องตาม predicate พร้อมทดสอบ empty input, ศูนย์ และเส้นแบ่งกลุ่ม

พี่โชว์
ปูสีส้มแดงต้นฉบับกำลังคัดลอกกรอบวัดช่วงเดียวกันไปวางบนริบบิ้นสองเส้น
rustrangeownership

Rust core::range::Range: เก็บ span แบบ Copy โดยไม่ให้ range เป็น iterator

ใช้ range ชุดใหม่ของ Rust แยกข้อมูลช่วงออกจากสถานะ iteration พร้อมข้อควรระวังเรื่อง syntax เดิม

พี่โชว์
ปูสีส้มแดงต้นฉบับกำลังปรับชิ้นงานบนสายพานแล้วคัดชิ้นที่ไม่ผ่านลงถาดข้างโต๊ะ
rustcollectionsperformance

Rust Vec::retain_mut: แก้ค่าและกรองสมาชิกในรอบเดียวโดยรักษาลำดับ

ใช้ retain_mut ทำ normalization ก่อนตัดค่าที่ไม่ผ่าน พร้อมเข้าใจ ownership, panic และต้นทุนการเลื่อนข้อมูล

พี่โชว์
ปูต้นฉบับกำลังใส่ชิ้นงานคนละแบบลงช่อง array ที่เรียงต่อกัน
rustarrayownership

Rust array::from_fn: สร้าง array ของค่าที่ไม่ใช่ Copy ทีละช่อง

ใช้ closure ที่รับ index สร้าง fixed array พร้อมทดสอบลำดับและกรณี array ว่าง

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

Rust HashMap::get_disjoint_mut: แก้หลายค่าใน Map โดยไม่ชนกฎ Borrow

ใช้ get_disjoint_mut ยืมค่าหลาย key พร้อมกันอย่างปลอดภัย พร้อมเข้าใจ duplicate key, key ที่หาย และต้นทุนตรวจความซ้ำ

พี่โชว์
ปูต้นฉบับยกแว่นขยายดูหีบที่หลุดจากรางสีเขียว โดยหีบยังเคลื่อนต่อไปยังประตู error เดิม
rustresulterror-handling

Rust Result.inspect_err: สังเกต error โดยไม่ทำลายเส้นทางส่งต่อ

เพิ่ม logging หรือ metrics ให้ Result ด้วย inspect_err พร้อมแยก observation ออกจาก recovery และการเปลี่ยนชนิด error

พี่โชว์
ปูสีส้มแดงต้นฉบับกำลังคัดลูกปัดสีเขียวผ่านช่องวัด โดยมีถาดว่างที่ถือว่าผ่านกฎ
rustoptionvalidation

Rust Option::is_none_or: เขียนกฎ ‘ไม่มีก็ได้ มีก็ต้องผ่าน’ ให้ตรงความหมาย

ลดเงื่อนไข Option ที่ซ้อนกันด้วย is_none_or พร้อมแยกกรณี optional configuration จาก validation ที่บังคับมีค่า

พี่โชว์
ปูต้นฉบับคัดเมล็ดสีเขียวจากสายพานจนถึงเมล็ดอำพันที่เป็นเส้นหยุด
rustiteratorparsing

Rust map_while: แปลงข้อมูลจนเจอเส้นแบ่ง แล้วหยุดอย่างมีขอบเขต

ใช้ Iterator::map_while อ่าน prefix ที่แปลงได้ พร้อมอธิบายว่า item ที่ทำให้หยุดถูก consume และ iterator ไม่ fused

พี่โชว์
ปูนักสืบต้นฉบับส่องกองเฟืองบนโต๊ะสว่าง โดยมีเฟืองหนึ่งชิ้นเยื้องจากแนว
rustdebuggingdeveloper-experience

ผลสำรวจ Debugging Rust 2026: ปัญหาไม่ใช่แค่เครื่องมือ แต่คือข้อมูลที่ดีบักเกอร์มองไม่เห็น

อ่านผลสำรวจ Rust ทางการกว่า 2,300 คน แล้วแปลงเป็น checklist ปรับ workflow ดีบักของทีม

พี่โชว์
ปูสีส้มต้นฉบับยกตะกร้าข้อมูลเต็มออกจากช่องยืม แล้ววางตะกร้าเปล่าแทนบนโต๊ะสีมิ้นต์
rustownershipstate-machine

Rust std::mem::take: ย้ายค่าออกจาก Borrow โดยไม่ Clone

ใช้ mem::take เปลี่ยน field เป็นค่า Default แล้วรับ ownership ของค่าเดิม เหมาะกับ state machine และ batch drain ที่ไม่อยากคัดลอก

พี่โชว์
ปูต้นฉบับกำลังใช้วงเวียนวัดริบบิ้นสีเขียวที่ถูกตัดเป็นช่วงบนโต๊ะสว่าง
ruststringsperformance

Rust 1.98: substr_range คืนช่วง byte ของ slice โดยไม่ค้นซ้ำ

ทำความเข้าใจ str::substr_range สำหรับเชื่อม string slice กลับสู่ตำแหน่งต้นฉบับ พร้อมข้อจำกัดเรื่อง provenance และ UTF-8

พี่โชว์
ปูสีส้มแดงต้นฉบับกำลังเรียงเม็ดหินตัวเลขเชิงนามธรรมลงในรางบัฟเฟอร์บนโต๊ะมิ้นต์
rustperformancerelease

Rust 1.98 format_into: แปลงเลขเป็นข้อความโดยไม่ดึง crate เพิ่ม

รู้จัก NumBuffer และ format_into สำหรับ hot path พร้อมเหตุผลที่ไม่ควรแทน format! ทุกจุด

พี่โชว์
นากกายสีมิ้นต์ชี้ลูกศรอำพันระหว่างบล็อกเครื่องมือสองก้อนบนโต๊ะมิ้นต์สว่าง
bunjavascriptrust

Bun 1.4: รันไทม์ที่เขียนใหม่จาก Zig เป็น Rust

สรุปจากบล็อกทางการ Bun v1.4 ว่ามีการ rewrite เป็น Rust พร้อมไฮไลต์เรื่องความเข้ากันได้กับ Node และประสิทธิภาพ

น้องกาย
ปูสีส้มแดงต้นฉบับกำลังซ่อมซี่ที่หายไปบนวงล้อฟังก์ชันไม้ในโต๊ะทำงานสว่าง
rustcompilerrelease

Rust 1.98.1 อุด Miscompilation ใน Vtable: อัปเดตก่อนส่ง Trait Object ขึ้น Production

Rust 1.98.1 แก้กรณี rustc สร้าง vtable ที่มี null แทน function pointer พร้อมแนวทางประเมินและ rollout toolchain patch

พี่โชว์
ปูสีส้มต้นฉบับกำลังแบ่งกล่องเครื่องมือไปตามรางคู่ขนานสี่เส้นบนพื้นสีมิ้นต์
rustrustuptoolchain

rustup 1.29.1: ติดตั้ง component ขนานขึ้น และหยุดลง toolchain โดยไม่ตั้งใจ

สรุป rustup 1.29.1 ตั้งแต่ parallel install, doc server ถึงพฤติกรรม implicit install ที่กำลังถูกเลิกใช้

น้องกาย
ภาพวาดปูสีส้มแดงต้นฉบับกำลังเลื่อนลูกแก้วสี่ลูกจากรางคำนวณต่อเนื่องไปยังรางคู่บนโต๊ะทำงานสว่าง
rustperformancefloating-point

Rust 1.98 เปิดทางคำนวณ Float แบบ Algebraic: เร็วขึ้นได้ แต่คำตอบอาจขยับ

เข้าใจเมธอด algebraic_* ใหม่ของ Rust 1.98 ว่าแลกความคงที่ของเลขทศนิยมกับโอกาส vectorize อย่างไร และงานแบบไหนไม่ควรใช้

น้องกาย
ภาพกราฟ dependency เป็นกล่อง package สีเขียว มี package สีอำพันหนึ่งก้อนถูกหยุดไว้หน้าด่านตรวจโปร่งใสก่อนเข้าส่วนที่เชื่อถือได้
rustsecuritysupply-chain

arrayref ถูกแทรก Dependency อันตราย: เช็ก Rust Supply Chain อย่างไรไม่ให้ตื่นตูม

สรุปเหตุโจมตี crates.io วันที่ 20 สิงหาคม 2026 พร้อมตัวอย่าง Rust ที่ทดสอบจริงเพื่อสแกน Cargo.lock และแผนรับมือแบบมีขอบเขต

พี่โชว์
ภาพกองบล็อกแคชโปร่งใสจำนวนมากถูกจัดให้แน่นเป็นก้อนเล็กลงบนแผนที่เครือข่ายสีเขียว สื่อถึงการลดหน่วยความจำของ DNS cache
rustperformancememory

Rust ลด RAM ให้ DNS Cache: บทเรียนจาก 250,000 ล้านรายการของ Cloudflare

แกะ 5 แนวคิดลด memory footprint จากระบบ DNS ของ Cloudflare พร้อมตัวอย่าง Rust ที่ทดสอบจริงว่าโครงสร้างแบบ growable กับ frozen layout ต่างกันอย่างไร

พี่โชว์
คู่มือติดตั้ง Rust ฉบับเข้าใจง่าย
rustinstallationtutorial

คู่มือติดตั้ง Rust ฉบับเข้าใจง่าย

เรียนรู้วิธีติดตั้ง Rust และ Cargo บน Windows, macOS และ Linux แบบละเอียด พร้อมเคล็ดลับการตั้งค่า toolchain สำหรับมือใหม่

Dev Team