2 คะแนน โดย GN⁺ 2023-09-21 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • เจ้าของ Pontiac คันใหม่ร้องเรียนไปยัง General Motors Pontiac Division ว่า ทุกเย็นหลังซื้อไอศกรีม รถจะสตาร์ตไม่ติดเฉพาะตอนที่เลือก วานิลลา
  • ประธาน Pontiac สงสัยจดหมายฉบับนี้ แต่ก็ส่งวิศวกรไปตรวจสอบ และในพื้นที่จริงก็สามารถทำให้เกิดเหตุการณ์ สตาร์ตไม่ติดหลังซื้อวานิลลา ซ้ำได้จริง
  • ในวันที่ซื้อช็อกโกแลตและสตรอว์เบอร์รี รถสตาร์ตติด แต่วันที่ซื้อวานิลลากลับล้มเหลวอีกครั้ง ทำให้เงื่อนไขที่ดูเหลือเชื่อถูกยืนยันซ้ำ ๆ
  • วิศวกรบันทึกเวลา ชนิดเชื้อเพลิง เวลาที่ใช้ไป-กลับ และเวลาที่ใช้ซื้อ จนพบ ความแตกต่างของเส้นทางในร้าน ว่าเฉพาะวานิลลาสามารถซื้อได้อย่างรวดเร็วจากตู้แช่แยกหน้าร้าน
  • สาเหตุไม่ใช่รสไอศกรีม แต่เป็น vapor lock ที่เกิดจากเวลาซื้อสั้นเกินไปจนเครื่องยนต์ยังเย็นไม่พอ และแม้รายงานปัญหาที่ดูประหลาดก็ควรตรวจสอบด้วยการสังเกตและทำซ้ำ

ปัญหาสตาร์ตอันแปลกประหลาดของ Pontiac

  • เจ้าของ Pontiac รายหนึ่งส่งจดหมายฉบับที่สองไปยัง Pontiac Division ของ General Motors
  • ครอบครัวของเขาจะโหวตเลือกรสไอศกรีมสำหรับกินเป็นของหวานหลังอาหารเย็นทุกวัน และเขาจะขับรถไปที่ร้านเพื่อซื้อไอศกรีมกลับมาทุกครั้ง
  • หลังจากซื้อ Pontiac คันใหม่ ปัญหาหนึ่งเกิดซ้ำเฉพาะภายใต้เงื่อนไขบางอย่าง
    • ถ้าซื้อ ไอศกรีมวานิลลา เขาจะกลับมาที่รถแล้วสตาร์ตไม่ติด
    • ถ้าซื้อรสอื่น รถจะสตาร์ตได้ตามปกติ
  • เขายอมรับว่าคำถามอาจฟังดูโง่ แต่ก็ถามว่าทำไม Pontiac ถึงสตาร์ตไม่ติดเฉพาะตอนซื้อวานิลลา

การตรวจสอบภาคสนามและการทำให้เกิดซ้ำ

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

เบาะแสจากบันทึกการสังเกต

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

สาเหตุจริง: vapor lock

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

บทเรียน

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

1 ความคิดเห็น

 
GN⁺ 2023-09-21
ความคิดเห็นจาก Hacker News
  • ช่วงปลายยุค 90 ที่ทำงานเคยมีเรื่องคล้าย ๆ กัน เมาส์ของพนักงานคนหนึ่งจะค้างเฉพาะบางช่วงของวัน ตอนเช้าใช้ได้ดี พอใกล้เที่ยงก็ใช้ไม่ได้ แล้วหลังจากนั้นก็กลับมาใช้ได้อีก
    เบาะแสชี้ขาดคือในวันที่ฟ้าครึ้มมันใช้ได้ปกติทั้งวัน แต่ในวันที่แดดออก อาการผิดปกติแบบเดิมจะเกิดซ้ำ ๆ ปรากฏว่าเคสพลาสติกของ เมาส์ลูกกลิ้งราคาถูก บางเกินไป ทำให้ในวันที่แดดออก แสงอาทิตย์ไปกลบเซ็นเซอร์แกน X/Y จนแรงกว่า LED และกลับมาทำงานปกติได้ก็ต่อเมื่อดวงอาทิตย์เคลื่อนจนเกิดเงา ตอนแรกฟังดูเหลือเชื่อ แต่สาเหตุนั้นมีเหตุผลสมบูรณ์

    • นานมาแล้ว iPhone 4 ก็เคยมีปัญหาคล้ายกัน ถ้าบูตในที่มืด เครื่องจะติด ลูปบูตไม่รู้จบ ที่โลโก้ Apple
      ดูเหมือนว่า Pangu jailbreak บางเวอร์ชันสำหรับ iOS 7.1.x จะ crash ระหว่างบูตหากค่าจากเซ็นเซอร์แสงรอบข้างต่ำกว่าค่า threshold บางค่า ยังไม่ทราบสาเหตุที่แน่ชัด แต่ดูเหมือนว่าใน Pangu จะมีโค้ดที่ไม่จำเป็นซึ่งไปยุ่งกับเซ็นเซอร์แสงอยู่ [1]
      [1] https://www.reddit.com/r/jailbreak/comments/294wob/jailbreak...
      [2] https://www.reddit.com/294wob/
    • เคยมีปัญหาคล้ายกันในทางตรงกันข้าม อินเทอร์เน็ตเคเบิลที่บ้านปกติความเร็วใช้ได้ แต่บางครั้งไม่ได้ดับ ทว่า ช้าราวกับธารน้ำแข็ง
      หลังจากตรวจสารพัดปัญหาแล้ว จึงพบว่าปัญหาไม่ได้เกิดตอนฝนตก แต่เกิดตอนมีหมอกหนาหรือฝนปรอย ๆ ช่างของบริษัทเคเบิลมาตรวจแล้วพบว่าภายในบ้านปกติดี แต่สายเคเบิลจากสายหลักเข้าบ้านมีรอยแผลเล็กมาก ทำให้ความชื้นรอบ ๆ ซึมเข้าไปและทำให้การเชื่อมต่อเสีย
    • เครื่องทำน้ำแข็งแบบตั้งบนเคาน์เตอร์ที่บ้านก็มีปัญหาคล้ายกัน คือในวันที่แดดออกน้ำแข็งจะติดค้างและผลิตออกมามากเกินไป
      เมื่อถังน้ำแข็งเต็ม ลำแสงอินฟราเรด ควรถูกบังเพื่อให้หยุดทำน้ำแข็ง แต่ในวันที่แดดออก แสงสว่างจ้าในครัวหลอกเซ็นเซอร์ให้เครื่องทำน้ำแข็งต่อไปเรื่อย ๆ ดังนั้นเลยวางนิตยสารสุ่ม ๆ ไว้ด้านบนเพื่อให้มันทำงานถูกต้อง
    • นึกถึงวันที่ค้นพบว่าระบบ CI ที่ทำงาน ไวต่อแรงสั่นสะเทือน
      วันหนึ่งจู่ ๆ การทดสอบที่เกี่ยวกับแอปกราฟิก X client เริ่มล้มเหลวเป็นครั้งคราว แต่ทำซ้ำภายใต้เงื่อนไขอื่นไม่ได้ ปรากฏว่างาน CI รันอยู่บนเครื่องเดสก์ท็อปหลายเครื่องที่วางไว้ที่ไหนสักแห่งในบริษัท และมีคนเอาเมาส์ไปเสียบกับเครื่องหนึ่งแล้วปล่อยทิ้งไว้บนชั้นวาง เมื่อโหลดของเครื่องสูงขึ้น พัดลมก็หมุนเร็วขึ้นและแรงสั่นสะเทือนเพิ่มขึ้น ทำให้เมาส์ขยับเล็กน้อยมาก และด้วยเหตุผลที่ไม่ทราบแน่ชัด สิ่งนั้นส่งผลข้างเคียงต่อการทดสอบ รู้สึกภูมิใจไม่น้อยที่วินิจฉัยเครื่องที่ตัวเองไม่ได้อยู่หน้างานได้ผ่าน SSH
    • ในวันที่แดดออก รถของภรรยาผมเปิดประตูโรงรถไม่ได้ และรถผมเองก็ต้องเข้าไปใกล้มากถึงจะเปิดได้ พอพระอาทิตย์ตก ทั้งสองคันเปิดได้ทันทีตั้งแต่อยู่บนถนน
      ปรากฏว่า แผงโซลาร์เซลล์ หรือ optimizer หรือ inverter ปล่อยคลื่นความถี่วิทยุที่ไปรบกวนรีโมตประตูโรงรถ เมื่อมีแสงแดดและระบบผลิตไฟฟ้า สัญญาณรบกวนจะแรงกว่า homelink garage door opener เมื่อไม่กี่ปีก่อนที่เปิดประตูโรงรถจู่ ๆ ก็เริ่มใช้ได้ดีขึ้น แล้วไม่กี่วันต่อมาจึงรู้ว่าเป็นเพราะ inverter เสีย ตามกฎ FCC แล้วบริษัทติดตั้งอาจต้องแก้ให้ แต่ความสัมพันธ์ตอนติดตั้งแย่ลงไปแล้ว เลยมองว่ายอมเลิกใช้รีโมตยังดีกว่าต้องไปเจอเรื่องซ่อมตามประกัน
  • เรื่องขำ ๆ ที่ได้ยินต่อมาในยุคที่ยังมีห้องเซิร์ฟเวอร์อยู่ เพื่อนคนหนึ่งมีเซิร์ฟเวอร์บริษัทที่รีบูตเองทุกวันราว 5 โมงเย็น ตรวจทุกอย่างที่เป็นไปได้ทางฝั่งระบบปฏิบัติการแล้วก็ยังหาสาเหตุไม่เจอ
    สุดท้ายเลยตัดสินใจไปยืนเฝ้าหน้าเซิร์ฟเวอร์ตอนเวลานั้น แล้วก็เห็นพนักงานทำความสะอาดเดินเข้ามาในห้อง ถอดปลั๊กไฟของแร็กเซิร์ฟเวอร์ เอาเครื่องดูดฝุ่นมาเสียบเพื่อทำความสะอาด จากนั้นค่อยเสียบแร็กเซิร์ฟเวอร์กลับเข้าไป

    • เคยเจอเรื่องคล้ายกันที่ต้องไปดีบักในห้องจริง ๆ เรากำลังทำผลิตภัณฑ์ กล้องอัจฉริยะ สำหรับนับปริมาณจราจรบนถนน เป็นอุปกรณ์ที่หน่วยงานอย่างสภาเมืองนำไปติดตั้งริมถนนเพื่อเก็บสถิติรถบรรทุก รถยนต์ และมอเตอร์ไซค์
      กล้องบางตัวรีสตาร์ตแทบจะเวลาเดิมทุกวัน แต่ไม่ใช่วินาทีเดียวกันเป๊ะ ๆ เป็นรูปแบบชัดเจน เช่น วันหนึ่ง 19:12:10 วันถัดไปช้ากว่าเดิม 2 วินาที และวันถัดไปก็ช้ากว่าอีก 2 วินาที ปรากฏว่าเวลาพระอาทิตย์ตก สิ่งปลูกสร้างริมถนนทอดเงาผ่านหน้ากล้อง แล้วซอฟต์แวร์เข้าใจผิดว่าเป็นยานพาหนะ จึงเริ่มสะสมข้อมูลการจำแนกประเภท เงาเคลื่อนที่ช้ากว่ายานพาหนะจริงมาก ทำให้หน่วยความจำหมดก่อนที่เงาจะออกจากเฟรม ระบบจึงค้าง แล้ว watchdog ก็รีสตาร์ตเครื่อง ส่วนรูปแบบของเวลาเกิดจากมุมดวงอาทิตย์ที่เปลี่ยนไปทุกวัน ทำให้เงาหลอกอัลกอริทึมได้ช้าลงทีละนิด
    • ตอนนี้เรื่องนี้ดูแทบจะเป็น ตำนานเมือง ไปแล้ว ในเธรด Reddit[0] ก็ระบุว่าเป็นเรื่องคอมพิวเตอร์ที่เล่ากันมาตั้งแต่ยุค 80 และถูกรวบรวมไว้ในปี 1990[1]
      [0] https://old.reddit.com/r/talesfromtechsupport/comments/5yrs1...
      [1] https://www.goodreads.com/book/show/3227607-the-devouring-fu...
    • ส่วนตัวก็เคยเจอเรื่องคล้ายกัน เคยดูแลเซิร์ฟเวอร์ของสำนักงานบัญชี แล้ว print server รีบูตเป็นครั้งคราวเฉพาะช่วง 9–10 โมงเช้า
      ไปนั่งเฝ้าช่วงเวลานั้นอยู่หนึ่งสัปดาห์ จนเห็นไฟหรี่ลงแล้วเกิดการรีบูต ทนายความในสำนักงานข้าง ๆ เข้างานแล้วเปิด PC, เครื่องพิมพ์ และกาต้มน้ำไฟฟ้าพร้อมกันจากปลั๊กพ่วงเดียวกัน กระแสกระชากตอนเริ่มทำงานทำให้แรงดันในวงจรที่เซิร์ฟเวอร์ต่ออยู่ตกลง มี UPS อยู่ก็จริง แต่ UPS สำหรับผู้บริโภคในตอนนั้นรับมือได้แค่ไฟดับ วัดได้ว่าแรงดันตกลงไปถึง 85V และในความเป็นจริงถ้าต่ำกว่า 95V ก็มักจะรีบูต
    • ปี 1999 ที่ศาลาว่าการของเทศบาลเล็ก ๆ ทางตะวันออกเฉียงใต้ของ Stuttgart ประเทศเยอรมนี ผมไปหน้างานเพื่อแก้ดัชนีของ MS SQL DB ที่เสีย เป็นครั้งที่สามในรอบครึ่งปี
      เป็นบ่ายวันศุกร์ อากาศร้อนชื้นและพายุกำลังจะมา ราว 16:00 น. ผู้รับผิดชอบมาบอกว่า 17:00 น. จะตัดไฟทั้งอาคาร ให้รีบหน่อย ทุกวันศุกร์จะปิดไฟเพื่อประหยัดพลังงาน และบังเอิญว่ามีงานจัดระเบียบ DB ถูกตั้งเวลาไว้ทุกวันศุกร์ 16:30 น. ดังนั้นในเวลาหนึ่งชั่วโมงที่เหลือจึงแก้ปัญหา ยกเลิกตารางงานของสัปดาห์นั้น แล้วปิด DB server ด้วยมือ การตัดไฟบังคับทุกสัปดาห์ทำให้เกิดเหตุขัดข้องในระบบผลิตของ Netware server และ DB server ของซอฟต์แวร์จัดเก็บเงิน และตามสัญญาบำรุงรักษาเราต้องไปแก้ให้ทุกครั้ง สุดท้ายกว่าหนึ่งเดือนต่อมาจึงยอมเลื่อนการตัดไฟบังคับไปเป็นเช้าวันเสาร์ เพื่อให้หลังงานสำรองข้อมูลเสร็จ เซิร์ฟเวอร์จะปิดได้อย่างถูกต้อง
  • นึกถึง GM minivan ที่พี่เขยขับในยุค 80 เป็นรถที่พ่อตาซึ่งเป็นวิศวกรรถยนต์ของ GM ให้มา บางครั้งสุ่มสตาร์ตไม่ติด และดูเหมือนระบบไฟฟ้าทั้งหมดตายไปเลย
    พี่เขยถูกมองว่าเป็นคนไม่ค่อยรู้เรื่องรถ พ่อตาจึงไม่ค่อยรับฟังคำบ่นอย่างจริงจัง สุดท้ายตกลงกันว่าจะสลับรถกันขับหนึ่งเดือน แล้วปัญหาก็เกิดซ้ำในลานจอดรถของ GM Technical Center วิศวกร GM ที่มารุมดูกันก็ยังหาสาเหตุไม่ได้ว่าทำไมมันถึงดูเหมือน ระบบไฟฟ้าตายไปเลย พี่เขยจึงได้ล้างมลทิน

    • ใน Mercedes SLK รุ่นปี 2009 ก็มีอาการเดียวกัน 99.9% ของเวลาทุกอย่างสมบูรณ์แบบ แต่ประมาณหนึ่งครั้งในพันครั้ง มันจะไม่แม้แต่พยายามสตาร์ต ไม่มีเสียงคลิก ไม่มีการรับรู้ว่าบิดกุญแจ เหมือนตายสนิทไปเลย
      ผ่านไปไม่กี่ชั่วโมงก็สตาร์ตติดเหมือนไม่เคยมีอะไรเกิดขึ้น ศูนย์บริการจึงวินิจฉัยไม่ได้ ต่อมามันเริ่มกระทบชีวิต เพราะสตาร์ตไม่ติดระหว่างไปแคมป์แบบออฟโรดด้วย สุดท้ายพอมันดับอยู่ตรงทางเข้าบ้าน จึงลากไปอู่ซ่อมอิสระทั้งสภาพนั้น แล้วที่นั่นก็เกิดซ้ำ ช่างเสนอให้เปลี่ยนโมดูล ECU หรือเปลี่ยนกล่องฟิวส์ทั้งชุด ECU ราคาหลายพันดอลลาร์ แต่ การเปลี่ยนกล่องฟิวส์ รวมค่าแรงแล้วต่ำกว่า 200 ดอลลาร์ จึงเลือกอย่างหลัง ผ่านมา 6–7 ปีแล้ว ตอนนี้รถคันนั้นยังเป็นรถหลักคันเดียว และหลังจากนั้นก็ไม่เคยมีปัญหาทางกลไกอีกเลย
    • บั๊กแบบไฮเซนเบิร์ก เป็นสัญญาณของความล้มเหลวในการออกแบบระบบโดยรวม ระบบไม่ได้ถูกออกแบบมาให้แก้ปัญหาได้ง่าย ซับซิสเต็มเชื่อมกันแน่นเกินไป และมักเกิดในโปรเจกต์ที่ทุกอย่างถูกปะติดปะต่อไว้ด้วยลวดกับหมากฝรั่งอย่างหวุดหวิด
      รถ GM ในยุคที่ขึ้นชื่อแย่นั้นจะมีปัญหาไฟฟ้าลึกลับที่ทำให้คนแทบคลั่ง ก็ฟังดูเป็นไปได้มาก
    • รถ GM ขึ้นชื่อเรื่องปัญหาประหลาดที่เหมือนมีผีเข้าสิงเป็นครั้งคราว แม้ว่าหลังปี 1990 รถ GM โดยรวมจะมีความน่าเชื่อถือเข้าใกล้รถญี่ปุ่นพอสมควรแล้วก็ตาม
    • ในเธรดนี้มีรถหลายคันที่ติด ๆ ดับ ๆ ไม่ยอมเปิดเครื่อง แต่สมัยก่อนก็เคยมีรถที่ ดับไม่ลง เป็นบางครั้งเหมือนกัน อย่างน้อยก็ไฟหน้าที่ปิดไม่ลง
      น่าจะมีรีเลย์ที่ไหนสักแห่งร้อนเกินไปจนค้างอยู่ในสถานะปิดวงจร แต่ผมไม่ได้ดีบักเอง และลูกพี่ลูกน้องที่เป็นช่างซ่อมรถก็หาไม่เจอ ไม่ได้พยายามมากนัก ถ้าเกิดอาการนั้นก็แค่ถอดฟิวส์ออก แล้วเช้าวันถัดไปค่อยเสียบกลับเข้าไป
    • ถ้าให้เดา อาจต้องเปลี่ยนแบตเตอรี่ใหม่ก็ได้ รถ GM ของผมเองเวลาแบตเตอรี่เก่าก็มีพฤติกรรมแปลก ๆ ตอนสตาร์ต
      หลายครั้งมอเตอร์สตาร์ตยังหมุนได้ดี แต่อุปกรณ์อิเล็กทรอนิกส์ไปค้างอยู่ในสถานะแปลก ๆ ต้องถอดแบตเตอรี่ออกเพื่อ hard reset ถึงจะหาย
  • เคยเจอปรากฏการณ์ซ้ำ ๆ แปลก ๆ เกี่ยวกับอุปกรณ์อิเล็กทรอนิกส์ในบ้านหลังเก่า ตอนเที่ยงคืนของวันหนึ่งในสัปดาห์ จะมีเสียงเบา ๆ จากอุปกรณ์อิเล็กทรอนิกส์ที่ติดตั้งอยู่กับที่ ฟังเหมือนบันทึกสุนทรพจน์ทางการเมืองสมัยสงครามโลกครั้งที่สอง
    เสียงเบามากจนระบุจุดกำเนิดได้ยาก และฟังคำพูดไม่ออก เลยเหมือนมีเสียงบันทึกเก่า ๆ ดังมาจากทุกทิศพร้อมกัน ถอดปลั๊กแล้วก็ยังดัง แม้ไฟดับทั้งบ้านก็ยังดังอยู่ คิดไปว่าตัวเองกำลังจะบ้า หรือบ้านมีผีฮิตเลอร์สิงอยู่หรือเปล่า แต่ภายหลังได้ยินเสียงคล้ายกันจากวิทยุในรถจึงเข้าใจ สถานีวิทยุ AM คาทอลิกเริ่มออกอากาศในวันและเวลาเดียวกันด้วยเพลงสวดเกรกอเรียนกับคำเทศน์ และระบบสายไฟในบ้านไม่รู้ทำอีท่าไหนถึงทำงานเหมือน เครื่องรับวิทยุ AM ทำให้ชิ้นส่วนบางอย่างสั่นออกมาเป็นเสียงที่มากับสัญญาณวิทยุ

    • วิทยุ AM เป็นรูปแบบการส่งสัญญาณที่แย่ในหลายแง่ แต่ก็มีข้อดีตรงที่ ดีมอดูเลตออกมาเป็นเสียงได้ง่ายมาก แบบนี้
    • มีช่วงถนนราว 25 ฟุตหน้าห้าง/โรงงานใกล้ที่ทำงาน ที่แทบทุกสถานี FM ถูก Muzak กลบหมด ไม่รู้ว่าที่โรงงานนั้นเกิดอะไรขึ้น และเคยคิดจริงจังว่าจะติดต่อ FCC
    • น่าทึ่งจริง ๆ ถ้าเป็นผมคงโรยเกลือทำแนวป้องกันรอบหน้าต่างไปแล้ว
  • ทุกครั้งที่ลูกชายเล่น American Truck Simulator หน้าจอแล็ปท็อปจะดับ และตอนที่จอดำ รถบรรทุกก็ไถลออกนอกถนน
    แต่พอผมเล่นด้วยแล็ปท็อปเครื่องเดียวกันกลับไม่เกิด ลูกชายเลยมั่นใจว่าตัวเองถูกสาป หลังจากเกิดซ้ำอยู่หลายวัน ผมก็นั่งดูเขาเล่นข้าง ๆ แล้วสังเกตว่าสายนาฬิกาของลูกเป็นสายโลหะที่ล็อกด้วยแม่เหล็ก ตำแหน่งข้อมือไปกระตุ้น Hall sensor ของแล็ปท็อป ทำให้มันคิดว่าฝาถูกปิดแล้ว ทั้งลูก ผม และภรรยาต่างก็โล่งใจเมื่อรู้ว่าเขาไม่ได้ถูกสาป

    • เพราะบั๊กนี้ Apple จึงเปลี่ยนเซ็นเซอร์มุมหน้าจอไปใช้วิธีอื่น และตามสไตล์ Apple ก็ได้ข้ออ้างในการทำให้เซ็นเซอร์นั้นถูกผูกซีเรียลไลซ์ด้วย
      https://www.ifixit.com/News/33952/apple-put-a-hinge-sensor-i...
    • ที่ helpdesk ของมหาวิทยาลัยก็เจอเป็นครั้งคราวเหมือนกัน วาง MacBook ที่เปิดอยู่ทับบน MacBook ที่ปิดอยู่ก็เกิดได้ แม่เหล็กจะไปตรงกันพอดีได้ง่าย ๆ แล้วหน้าจอก็ดับ
  • เรื่องพวกนี้แหละที่ทำให้ Car Talk สนุกมาก มันไม่ใช่แค่เรื่องช่างซ่อมรถซ่อมรถ แต่สถานการณ์มันประหลาดและเฉพาะตัวมากจนชวนติดตาม
    อีกอย่างที่สนุกคือการได้ฟังช่างที่ทำงานมานาน เจอสถานการณ์แปลก ๆ มาเยอะจนกลับมองเป็นเรื่องธรรมดา แถมยังเล่าเรื่องเก่งด้วย

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

    • พูดอีกอย่างคือ ต้องแยกข้อเท็จจริงที่สังเกตได้ในเรื่องออกจากการอนุมาน การทิ้งการอนุมานไม่ได้แปลว่าควรเมินสิ่งที่สังเกตได้เอง เรื่องนี้ก็คล้ายกับปัญหา XY
    • สาเหตุใกล้เคียงกับสาเหตุรากฐานต่างกันมาก สาเหตุใกล้เคียงคือการซื้อไอศกรีมวานิลลา ส่วนสาเหตุรากฐานคือ vapor lock
      จดหมายไม่ได้อ้างว่าไอศกรีมเป็นสาเหตุรากฐาน และระบุชัดมากว่าเป็นสาเหตุใกล้เคียง ประธาน Pontiac กับคนที่เขียน “บทเรียน” นั้นอาจสับสนสองอย่างนี้ แต่วิศวกรที่ไปตรวจสอบไม่ได้สับสน
    • คนแก้ปัญหาไม่ควรถูกล็อกอยู่กับทฤษฎีหนึ่งเร็วเกินไป เพราะอาจพลาดข้อมูลอื่นที่ไม่เข้ากันได้ง่าย
    • ชื่อเรื่องตั้งใจยั่วอยู่แล้ว แต่พออ่านปุ๊บ ปัญหา timing ก็ผุดขึ้นมาก่อน อาจเป็นเพราะผมเจอปัญหา timing บ่อยเลยโชคดีนึกได้ แต่ผมทิ้งสมมติฐานนั้นไปเพราะคิดว่าผู้ใช้น่าจะสังเกตเห็นได้เองระดับนั้น ปรากฏว่าไม่ใช่
      จากประสบการณ์ทำ helpdesk ควบคู่ไปกับงานพัฒนา ผู้ใช้มักสุ่มเลือกข้อเท็จจริงบางอย่างให้เป็นสาเหตุของปัญหาได้ง่าย ๆ ฮิวริสติกอย่าง “สหสัมพันธ์คือเหตุเป็นผล” หรือ post hoc ergo propter hoc อาจช่วยได้ แต่ถ้านำมาแทนการอนุมานก็ไม่ดี ผู้ใช้ไม่รู้หลักการทำงานของสิ่งที่ตัวเองใช้ จึงวินิจฉัยได้ยาก และผู้ใช้ที่คิดว่าตัวเอง “พอรู้อะไรบ้าง” มักเป็นกลุ่มที่รับมือยากที่สุดเสียด้วย
  • รถของภรรยาผมตอนนี้น้ำฉีดกระจกเหลือน้อย แต่ไฟเตือนขึ้นเฉพาะตอนขับผ่านจุดหนึ่ง ไม่ใช่ระยะห่างจากบ้านที่แน่นอน แต่เป็น ตำแหน่งที่แน่นอน
    ตอนแรกคิดว่าอาจเกี่ยวกับเวลาที่ขับไปไหนแล้วกลับมา แต่ไม่ว่าก่อนถึงตรงนั้นจะขับมา 5 นาที 5 ไมล์ 1 ชั่วโมง หรือ 60 ไมล์ พอถึงตำแหน่งนั้นก็จะมีการเตือนทั้งบนหน้าจอและเสียงทุกครั้ง เบาะแสเพิ่มเติมมีแค่ว่าจุดนั้นเป็นพื้นที่อับสัญญาณสำหรับมือถือ/ผู้ให้บริการส่วนใหญ่ ผมเติมน้ำฉีดกระจกไปแล้ว ปริศนาจึงเข้าสู่ช่วงจำศีล แต่ก็สงสัยว่าไฟเตือนทุกอย่างจะขึ้นที่จุดนั้นหรือเปล่า เหมือนเทเลเมทรีของรถถูกสะกิดให้ตื่นแล้วพูดอะไรบางอย่างตรงจุดนั้น

    • ความลาดเอียงของตำแหน่งนั้นอาจทำให้ระดับของเหลวต่ำลงตรงจุดเซ็นเซอร์ มีความเอียงผิดปกติในแกนใดแกนหนึ่งไหม?
    • กรณีของผมก็คล้ายกัน แต่ชัดเจนว่าเกิดจากโค้งอ่อน ๆ ในตำแหน่งนั้นบวกกับความเร็วค่อนข้างสูง ทำให้น้ำฉีดกระจกไหลไปรวมที่ด้านหนึ่งของถัง เซ็นเซอร์น่าจะติดอยู่ฝั่งตรงข้าม
    • Subaru ของผมขึ้นเตือนน้ำฉีดกระจกเฉพาะตอนออกทางออกทางด่วน เพราะความเร็วกับการเปลี่ยนความชัน
    • ฟังดูเหมือนเป็นพื้นที่ที่มี สัญญาณรบกวนแม่เหล็กไฟฟ้า แรง ๆ อาจเป็นสัญญาณไฟจราจรที่มีเซ็นเซอร์ใต้ดิน ใต้สายไฟแรงสูง ใกล้สถานีไฟฟ้าย่อย หรือใกล้เสาอากาศวิทยุกำลังส่งสูง
      มันอาจสร้างสัญญาณรบกวนประหลาด ๆ ได้มากพอที่จะดันเซ็นเซอร์จากสถานะ “มีของเหลวพอ” ไปเป็น “ไม่พอ” แบบเฉียด ๆ
    • ช่วงนี้ผมเจอเรื่องเดียวกันกับ VW Passat ปี 2019 เวลาเร่ง เบรก หรือเข้าโค้งนาน ๆ ไฟเตือนจะขึ้น
      เป็นแค่ปัญหาของของเหลวที่ขยับไปมาในถัง วันนี้ผมเลยฉีดล้างกระจกไปหน่อยเพื่อให้รถเปิดไฟระดับต่ำค้างไว้เลย
  • คืนหนึ่งในห้องปฏิบัติการคอมพิวเตอร์ ขณะทำการบ้าน Java อาจารย์ผู้สอนเดินผ่านมาแล้วพูดว่า “อ้อ เครื่องนั้นคงต้องขอให้โชคดีแล้วละ”
    เครื่องนั้นเคยเป็นเครื่องที่รันโปรแกรม Java อะไรก็ไม่ได้และตายอย่างอลังการ แต่ C++ หรือ Python กลับไม่เป็นไร ตอนแรกโปรแกรมของอาจารย์ซึ่งไม่เชื่อเรื่องนี้ก็ทำให้เครื่องนั้นแครชได้เช่นกัน หลังจากช่างเทคนิคกับอาจารย์ช่วยกันตรวจสอบประมาณ 2 สัปดาห์ พบว่าทุกครั้งที่ JVM เริ่มทำงาน มันจะจัดสรรจำนวนเต็ม 12 ไปยัง RAM address เดิมเสมอ และชิป RAM ที่มีที่อยู่ฮาร์ดแวร์นั้นเสียอยู่ ทุกครั้งที่พยายามจัดสรรไปยัง address นั้นก็จะแครช และเมื่อเปลี่ยนแผง RAM ที่เสีย ปัญหาก็หายทันที

    • “ณ จุดนี้ ข้อสรุปตามธรรมชาติมีอยู่สองอย่าง: มีปัญหาฮาร์ดแวร์ร้ายแรง หรือไม่ก็มีบั๊ก memory corruption รุนแรงในไบนารี”
      https://marcan.st/2017/12/debugging-an-evil-go-runtime-bug/
      จะไม่สปอยล์บทสรุป เป็นเส้นทางดีบักที่ยาวและคดเคี้ยว อ่านแล้วคุ้มค่า การถกเถียงใน HN:
      https://news.ycombinator.com/item?id=15845118
  • เรื่องนี้เป็นตัวอย่างที่น่าสนุกของ ตัวแปรกวน
    ในการอนุมานเชิงสาเหตุ ตัวแปรกวนคือ variable ที่ส่งผลต่อทั้งตัวแปรตามและตัวแปรอิสระ จนสร้างความสัมพันธ์ปลอมขึ้นมา เป็นแนวคิดเชิงสาเหตุที่อธิบายด้วยสหสัมพันธ์อย่างเดียวไม่ได้ และเป็นหนึ่งในเหตุผลเชิงปริมาณสำคัญของประโยคที่ว่า “สหสัมพันธ์ไม่ได้หมายถึงความเป็นเหตุเป็นผล”
    https://en.wikipedia.org/wiki/Confounding
    ถ้าเขียนเป็นแบบจำลองทางสถิติ อาจมองได้เป็น S = f(H, I, T) โดย S คือรถสตาร์ตติดหรือไม่, H คืออุณหภูมิเครื่องยนต์, I คือชนิดไอศกรีมที่เลือก, และ T คือเวลาที่ใช้ซื้อไอศกรีม ถ้า T สั้น เครื่องยนต์จะยังร้อนกว่า ทำให้เสี่ยงต่อ vapor lock มากขึ้นและส่งผลต่อ S อีกทั้งตำแหน่งของไอศกรีมวานิลลาทำให้ซื้อได้เร็ว จึงเชื่อมโยงกับ I ด้วย ดังนั้นจึงเกิดความสัมพันธ์ปลอมระหว่าง I กับ S

    • คำอธิบายน่าสนใจ แต่ไม่ใช่ว่า I ส่งผลต่อ T มากกว่า T ส่งผลต่อ I หรือ? เพราะชนิดไอศกรีมเป็นตัวกำหนดเวลาที่ใช้เดินในร้าน