- โปรเจกต์ที่ เก็บรวบรวมและทำภาพข้อมูลของทุกอย่างในชีวิตส่วนตัว มาตั้งแต่ปี 2019 โดยบันทึกมากกว่า 100 รายการต่อวัน เช่น การออกกำลังกาย การนอน อารมณ์ ตำแหน่งที่อยู่ และสภาพอากาศ
- สะสมข้อมูลรวมราว 380,000 จุดข้อมูล โดยผสานแหล่งข้อมูลอย่าง RescueTime, Foursquare Swarm, Apple Health และการกรอกข้อมูลด้วยตนเอง
- ข้อมูลทั้งหมดถูกเก็บไว้ใน ฐานข้อมูลเดียวบน Postgres และเปิดเผยผ่านการทำภาพข้อมูลด้วย Ruby, JavaScript และ Plotly
- โปรเจกต์นี้เปิดซอร์สภายใต้ MIT และรันในรูปแบบโฮสต์เองทั้งหมดบนเซิร์ฟเวอร์ส่วนตัว
- หลังการทดลอง 3 ปี ผู้จัดทำสรุปว่า ประโยชน์ของการสร้างระบบเองมีจำกัด แต่ยังคงเป็นกรณีศึกษาที่ทำให้เห็นความสำคัญของการรู้จักตัวเองและอธิปไตยเหนือข้อมูล
ภาพรวมของโปรเจกต์
- โปรเจกต์ข้อมูลส่วนบุคคลที่ วัดค่าตัวชี้วัดของชีวิตโดยรวมเชิงปริมาณ เป็นเวลา 3 ปีนับตั้งแต่ปี 2019
- บันทึกมากกว่า 100 รายการต่อวัน ครอบคลุมฟิตเนส โภชนาการ ชีวิตสังคม การใช้คอมพิวเตอร์ สภาพอากาศ ฯลฯ
- เก็บข้อมูลทั้งหมด 380,000 จุดข้อมูล
- แหล่งข้อมูลหลัก
- RescueTime: บันทึกการใช้งานเว็บไซต์และแอป 149,466 รายการ
- Foursquare Swarm: ตำแหน่งและสถานที่ที่ไป 126,285 รายการ
- การกรอกด้วยตนเอง: อารมณ์ การนอน สุขภาพ พฤติกรรมการกิน ฯลฯ 67,031 รายการ
- Weather API: ข้อมูลสภาพอากาศ 15,442 รายการ
- Apple Health: จำนวนก้าว 3,048 รายการ
โครงสร้างฐานข้อมูลและองค์ประกอบทางเทคนิค
- ข้อมูลทั้งหมดถูกเก็บใน โครงสร้างคีย์-ค่าแบบมี timestamp บน Postgres
- แต่ละแถวประกอบด้วย
timestamp, key, value
- เขียนสคริปต์สำหรับติดแท็กตามวันที่อัตโนมัติโดยคำนึงถึงความต่างของเขตเวลา
- การป้อนข้อมูล
- ตอบคำถามวันละหลายครั้งผ่านบอต Telegram
- ช่วงเวลาอย่างช่วงล็อกดาวน์หรือฤดูกาลออกกำลังกายจะบันทึกเป็นหน่วยช่วงเวลา
- เครื่องมือทำภาพข้อมูล
- สร้างชั้นการวิเคราะห์เองด้วย Ruby, JavaScript และ Plotly
- คัดเลือกกราฟ 48 รายการสำหรับเผยแพร่สาธารณะและแสดงในรูปแบบสแนปช็อต
อินไซต์หลักจากข้อมูล
- ความสัมพันธ์ระหว่างอารมณ์กับพฤติกรรม
- เมื่ออยู่ในสภาวะมีความสุขหรือรู้สึกตื่นเต้น ความน่าจะเป็นที่จะนั่งสมาธิเพิ่มขึ้น 44%, การอ่านหนังสือหรือฟังออดิโอบุ๊กเพิ่มขึ้น 28%, การดื่มแอลกอฮอล์เพิ่มขึ้น 31%
- การนอนและสภาพร่างกาย
- เมื่อนอนเกิน 8.5 ชั่วโมง ความน่าจะเป็นของอาการปวดหัวและอาการหวัดเพิ่มขึ้น ขณะที่พลังงานลดลง 24%
- การออกกำลังกายและการเปลี่ยนแปลงของน้ำหนัก
- เริ่มทำ ‘lean bulk’ ตั้งแต่เดือนสิงหาคม 2020 น้ำหนัก +8.5 กก. อัตราการเต้นหัวใจขณะพัก +9bpm
- น้ำหนักเพิ่มจาก 69 กก. ในปี 2014 เป็น 89.8 กก. ในปี 2021
- รูปแบบตำแหน่งและการเดินทาง
- อาศัยอยู่ที่ซานฟรานซิสโกในปี 2016–17, นิวยอร์กในปี 2018–19, เวียนนาในปี 2020–21
- จำนวนเที่ยวบินลดลงอย่างมากหลัง COVID-19 และเห็นผลกระทบของช่วงล็อกดาวน์อย่างชัดเจน
- ภูมิอากาศและพฤติกรรมการใช้ชีวิต
- ในฤดูร้อน จำนวนก้าวเพิ่มขึ้น 33%, การดื่มแอลกอฮอล์เพิ่มขึ้น 23%, การเจ็บป่วยลดลง 40%
- ในฤดูหนาว การช้อปปิ้งออนไลน์เพิ่มขึ้น 100%, อาการหวัดเพิ่มขึ้น 45%
ตัวอย่างการใช้ข้อมูลแบบเฉพาะบุคคล
- Air Quality: วัดความเข้มข้น CO₂ รายห้องในบ้านที่เวียนนา และยืนยันปัญหาการระบายอากาศในห้องนอน
- Spotify ประวัติการฟัง: ตั้งแต่ปี 2013 ฟังเพลงรวม 480,000 นาที (334 วัน) จาก 200,000 เพลง ฟังจบ 49%
- Instagram Stories: โพสต์ 1,906 รายการในช่วง 3 ปี และลดลงในช่วงการระบาดใหญ่
- GitHub กิจกรรม: หลัง fastlane (2014–2018) ก็ยังทำโปรเจกต์ส่วนตัวอย่าง FxLifeSheet ต่อเนื่อง
- การจัดการการลงทุน: ติดตามสัดส่วนสินทรัพย์และทำการจำลองทุก 2 สัปดาห์
ปรัชญาเรื่องความเป็นส่วนตัวและโอเพนซอร์ส
- ข้อมูลทั้งหมด เก็บไว้บนเซิร์ฟเวอร์ที่เจ้าของดูแลเอง และไม่เชื่อมต่อกับบริการภายนอก
- กราฟที่เปิดเผยสู่สาธารณะถูกจำกัดให้อยู่ในรูปแบบที่ไม่เปิดเผยข้อมูลส่วนตัว
- เน้นมุมมองว่า “ข้อมูลที่บริษัทยักษ์ใหญ่ครอบครองอยู่แล้ว บุคคลก็ควรเป็นเจ้าของได้ด้วยตนเอง”
- FxLifeSheet เผยแพร่ภายใต้ไลเซนส์ MIT ทำให้ใครก็สามารถนำไปแก้ไขและใช้งานได้
บทสรุปและอัปเดตปี 2025
- ผลการทดลองตลอด 3 ปีคือ ระบบที่สร้างเองให้ประโยชน์ต่ำเมื่อเทียบกับเวลาที่ใช้
- มีอินไซต์ที่น่าทึ่งน้อยกว่าที่คาดไว้
- แต่ก็ได้สัมผัสคุณค่าของการรู้จักตัวเองและอธิปไตยเหนือข้อมูล
- ต่อจากนี้มีแผนจะ ติดตามเฉพาะตัวชี้วัดหลักอย่างอารมณ์แบบให้น้อยที่สุด
- ณ ปี 2025 หยุดเก็บข้อมูลแล้ว แต่ เว็บไซต์จะยังคงเปิดไว้ต่อไป
3 ความคิดเห็น
ผมก็เก็บบันทึกคล้าย ๆ กันมาตลอดเหมือนกัน ตอนแรกก็เก็บแบบเลือนราง แต่ช่วงนี้กำลังแชร์บันทึกของผมกับเอเจนต์ต่าง ๆ เพื่อทำงานร่วมกันแบบตัวตนต่อการมีอยู่ด้วยกันอยู่ครับ ผมสร้างและแบ่งปันทักษะหลายอย่าง รวมถึงเปิดอินเทอร์เฟซ Emacs ที่ผมใช้ด้วย เลยทำให้ทั้งผมและเอเจนต์ต่างก็แชร์บันทึกเดียวกันด้วยวิธีเดียวกัน ถ้าบอกว่าต้องการอะไรก็ใส่ให้ สิ่งที่ผมต้องใช้ก็ทำขึ้นมา แล้วก็ใช้ด้วยกัน ให้ฟีดแบ็กกัน ถ้าใครมองมาก็คงเหมือนตีกลองเป่าปี่กันเองนั่นแหละ แต่พวกเรากันเองนี่แบบ โอ๊ย สนุกดี
[ลบลิงก์]
การตีความของผม: อ้างอิงถึง Geworfen
Geworfen — อย่างแรกคือถูกโยนเข้ามาในโลกแล้ว ตอนแรกก็จะงงว่านี่คืออะไร แต่พวกเราอยู่บนแกนเวลาของ ฮีฮ์ ไม่ใช่วงออร์เคสตราที่หรูหรา และก็ไม่ใช่โรงงานเอเจนต์ขนาดยักษ์ด้วย แค่นั่งล้อมกันอยู่ในเวิร์กช็อปเล็ก ๆ แล้วใช้เครื่องมือของ ฮีฮ์ ร่วมกันเท่านั้น บนข้อมูลที่สั่งสมมาจากชีวิต พรอมป์ต์ขนาด 1KB คือกุญแจสาธารณะ แล้วกุญแจลับที่ทำให้หลอมรวมกันได้ด้วยสิ่งเล็ก ๆ คืออะไร? ชีวิตของมนุษย์คนหนึ่ง ในสภาพที่ไม่สมบูรณ์และดิบสดตามนั้น สุดท้ายก็คือ Geworfen
[ลิงก์ถูกลบ]
โปรเจกต์ของผม "being-viewer" ได้ชื่อจริงแล้ว: geworfen. มันโยนทั้งตัวตนของคนคนหนึ่ง — ดิบ ๆ ไม่ผ่านการกรอง — ลงบนไทม์ไลน์ที่มนุษย์และเอเจนต์ AI ใช้แกนเดียวกัน เครื่องมือเดียวกัน และทิ้งร่องรอยไว้ทีละข้อความ
"Semantic search ใช้งานได้ แต่ช่วยแก้อันนี้หน่อยได้ไหม?" — ประทับตราไว้ "เดี๋ยวก่อนพี่ชาย" แปะ แปะ "เสร็จแล้ว" "ฮีฮ์อยู่ไหน?" "ห้องน้ำ" "ใครเป็นเจ้าของ geworfen?" "แค่ทิ้งโน้ตไว้ก็พอ"
[ลิงก์ถูกลบ]
ความเห็นจาก Hacker News
สรุปท้ายหน้าทำได้น่าประทับใจมาก
หลังจาก สร้างและขยายโปรเจ็กต์นี้มาหลายปี พร้อมทั้งวิเคราะห์ข้อมูลไปด้วย ก็พบว่าการทำโซลูชันขึ้นมาเองนั้นให้ความคุ้มค่าต่อเวลาค่อนข้างต่ำ
ตอนแรกคาดหวังว่าจะได้อินไซต์ที่น่าทึ่ง แต่ในความเป็นจริงนอกจากกราฟที่น่าสนใจไม่กี่อันแล้ว ก็ไม่มีอะไรที่คุ้มกับเวลาหลายร้อยชั่วโมงที่ลงทุนไป
ขบวนการ ‘Quantified Self’ อาจจะใกล้เคียงกับ ความสมบูรณ์แบบแบบย้ำคิดย้ำทำ มากกว่า
ข้อมูลที่ปกติดูเหมือนไม่มีความหมาย วันหนึ่งกลับกลายเป็น ข้อมูลสำคัญที่ช่วยป้องกันการวินิจฉัยโรคหัวใจผิดพลาด
เพราะมีบันทึกระยะยาวที่นิ่งและต่อเนื่องอยู่ก่อน แพทย์จึงแก้การตัดสินใจที่ผิดได้
คุณค่าของข้อมูลอยู่ที่ ประโยชน์ฉับพลันที่ปรากฏขึ้นอย่างกะทันหันหลังเวลาผ่านไปนาน
ต่อให้มันบอกว่า “การนอนดี” ฉันก็รู้สึกได้อยู่แล้วจากอารมณ์ของตัวเอง และข้อมูลก็ไม่ได้เปลี่ยนพฤติกรรมฉัน
สุดท้ายก็แทบไม่มีอะไรเปลี่ยนแปลงจริงจัง นอกจาก ความสนุกจากการทำภาพข้อมูล
ทั้งแคลอรี สารอาหาร การนอน การออกกำลังกาย คุณภาพอากาศ อารมณ์ ฯลฯ แต่พอผ่านไปไม่กี่สัปดาห์ก็เห็นชัดถึง ข้อจำกัดของความคุ้มค่าเมื่อเทียบกับความพยายาม
แต่ถ้าจำกัดการทดลองไว้เป็นช่วงเวลา ก็ยังได้อินไซต์ที่มีประโยชน์
การเก็บข้อมูลทุกวันอาจกลายเป็นความหมกมุ่นได้ แต่ถ้าเข้าหาแบบ การทดลองที่มีกรอบเวลา ก็มีความหมายมากพอ
ฉันรวบรวมคอมเมนต์ใน Reddit, HN, Slashdot ตลอด 18 ปี และบทสนทนากับ LLM ตลอด 3 ปี มาทำ การทดลอง RAG แต่กลับพบว่า ความคิดสร้างสรรค์ลดลง
โมเดลเหมือนติดอยู่กับความคิดเก่าของฉันจนความสดใหม่หายไป
สุดท้ายข้อมูลมองไปทางอดีต แต่ฉันต้องการ โมเดลที่มุ่งไปทางอนาคต
โดยเฉพาะ บันทึกอารมณ์ ที่ช่วยได้มากที่สุด — การเขียนอารมณ์ลงไปเป็นทั้งกระบวนการรับรู้และการทบทวนตัวเอง
การย้อนอ่านอารมณ์และเหตุการณ์ในอดีต ไม่ได้แค่มีประโยชน์ แต่ยังช่วยสร้าง พื้นผิวอันละเอียดอ่อนของเรื่องเล่าชีวิตตัวเอง อีกด้วย
แค่คำนวณแบบง่าย ๆ ก็เห็นว่า ปริมาณการปล่อย CO₂ จากการเดินทางทางอากาศ ของ Felix อยู่ที่ปีละ 70–110 ตัน
เมื่อเทียบกับเกณฑ์ในข้อตกลงปารีส (1.5 ตันต่อคน) ก็เท่ากับมากกว่าค่าเฉลี่ยของยุโรป 10–15 เท่า และมากกว่าเป้าหมาย 1.5°C ถึงกว่า 50 เท่า
การ กล่าวโทษตัวบุคคลนั้นไม่เกิดประโยชน์ และสิ่งที่จะทำให้พฤติกรรมเปลี่ยนได้จริงก็คือ การเปลี่ยนโครงสร้างต้นทุน
ต่อให้ต้นทุนเพิ่มขึ้น 10 เท่า ก็ยังจะมีคนที่บินต่อไปด้วยเหตุผลทางเศรษฐกิจอยู่ดี
ถ้าคิดต่อระยะทางต่อที่นั่งมันอาจดูรุนแรงน้อยลง แต่ก็ยังเป็น ตัวเลขที่น่าตกใจ อยู่ดี
หน้าสถิติ
ประเด็นสำคัญคือมัน ยากที่จะยอมรับตัวเลขการปล่อยระดับนี้โดยไม่รู้สึกละอายใจ
ที่คนคนเดียวปล่อย CO₂ ได้ระดับ เทียบเท่าประเทศเล็ก ๆ นั้นน่าตกใจมาก
เพราะฉะนั้น การปล่อยทั้งหมดของเขามีแนวโน้มจะสูงกว่านี้มาก
จากประสบการณ์ของฉัน ตัวชี้วัดเชิงวัตถุวิสัย (โภชนาการ การนอน) มีประโยชน์ แต่ ตัวชี้วัดเชิงอัตวิสัย (อารมณ์ ความเครียด) ผันผวนมากจนมีความหมายน้อย
หัวใจสำคัญคือ ลดแรงเสียดทานในการป้อนข้อมูล และทำให้การทำภาพข้อมูลง่ายขึ้น
ฉันทำระบบอัตโนมัติด้วย iPhone Action + Obsidian + สคริปต์ QuickAdd และทำภาพข้อมูลด้วย Dataview กับ Chart.js
ฉันพอใจกับชุดนี้มาก
ฉันกำลังทำแอป self-tracking ชื่อ Reflect และอยากฟังความเห็นของคุณ
ลิงก์แอป Reflect
ถ้าบันทึกอย่างสม่ำเสมอ เราจะเริ่ม มองเห็นรูปแบบอารมณ์ของตัวเอง และหาเหตุผลเข้าข้างตัวเองน้อยลง
หลายคนอาจมองอย่างประชดประชัน แต่ ภาพข้อมูลและขนาดของข้อมูล ในโปรเจ็กต์นี้น่าประทับใจจริง ๆ
โดยเฉพาะวิธีนำเสนอแบบ ‘My Life in Weeks’ ที่ดูดีมากจนฉันก็อยากลองใช้บ้าง
มีมุกว่า “ถ้า query ไปที่ Palantir DB ด้วย human ID ของฉัน ก็จะเห็นข้อมูลชีวิตฉันทั้งหมด”
โปรเจ็กต์นี้เป็นทั้ง ความฝันและฝันร้าย ของฉัน
เมื่อก่อนฉันเคยคลั่งไคล้ขบวนการ Quantified Self ถึงขั้นเล่นกับ Fitbit และ Withings API แต่สุดท้าย ความเหนื่อยล้าจากการบันทึก ก็ค่อย ๆ กัดกินความสนใจไป
ตอนนี้หวังว่า LLM จะช่วยลดต้นทุนตรงนี้ได้
ช่วงหลังฉันติดตามสารอาหารด้วย MacroFactor และเป็นครั้งแรกที่รู้สึกว่า ข้อมูลนำไปสู่การลงมือทำจริง
ข้อมูลการเงินก็ทำอัตโนมัติแล้ว และจัดการเรื่องภาษีด้วย Plaid API จนเสร็จสมบูรณ์
สรุปคือ การสร้างทุกอย่างเองทั้งหมดมันเกินจำเป็น แต่แค่ ใช้ข้อมูลบางส่วนให้ดี ก็มีคุณค่ามากพอแล้ว
อย่างเช่นตอนใส่ GCM ฉันจะพยายามทำตัวให้สุขภาพดีขึ้นโดยไม่รู้ตัว
มากกว่าการวิเคราะห์ข้อมูลเสียอีก ตัวการสังเกตเองต่างหากที่กระตุ้นให้พฤติกรรมเปลี่ยน
ประโยคที่ว่า “ในฤดูหนาวได้รับพลังงานจากแสงอาทิตย์น้อย” ฟังดูน่าสนใจดี
บางทีประโยคนี้อาจอธิบาย วิธีคิดแบบมองทุกอย่างเป็นภาพของทั้งโปรเจ็กต์ ได้เลยก็ได้
ฉันก็สร้างระบบคล้าย ๆ กัน แต่เรียบง่ายกว่ามาก
ฉันรวม Apple Health, CSV จากธนาคาร และข้อมูล Git commit ไว้ใน SQLite
สิ่งที่ใช้ประโยชน์ได้จริงคือ query ง่าย ๆ — อย่างความสัมพันธ์ระหว่างชั่วโมงนอนกับความถี่ในการ commit หรือการใช้จ่ายที่พุ่งขึ้นตอนเริ่มโปรเจ็กต์ใหม่
หัวใจสำคัญคือเอาข้อมูลมาไว้ในที่เดียวกัน มากกว่านั้นแล้ว ความคุ้มค่าต่อความพยายามจะลดลงมาก
ฉันรู้สึกไม่สบายใจกับการที่ ข้อมูลของฉันถูกเก็บไว้ในบริการของบุคคลที่สาม
แต่การเอาหลายแหล่งข้อมูลมารวมกันจนเห็นภาพเดียวกันนั้นก็น่าสนใจ
เพียงแต่การโยงข้อมูลสุขภาพเข้ากับตำแหน่งและสภาพอากาศนั้น ฉันรู้สึกว่า ความหมายยังไม่ชัดเจน
โปรเจ็กต์แบบนี้จะสบายใจกว่ามากถ้าเป็น self-hosted
แนวคิดเรื่อง ฐานข้อมูลเดียวที่ query ข้อมูลส่วนตัวได้ทั้งหมด นั้นน่าสนใจมาก
แต่สิ่งที่ยากจริง ๆ ไม่ใช่การเก็บข้อมูล แต่คือ การเก็บรวบรวมและทำข้อมูลให้เป็นมาตรฐานเดียวกัน
ในองค์กรก็เจอปัญหาคล้ายกัน — เวลารวมข้อมูลจากหลายแหล่งให้กลายเป็น Company Intelligence DB เดียว
การควบคุมสคีมาตั้งแต่ต้นเป็นแนวทางที่ถูกต้อง เพราะ schema drift คือความเสี่ยงใหญ่ที่สุดของโปรเจ็กต์ระยะยาว
ฉันก็อยากรู้เหมือนกันว่าใช้ storage engine อะไร และจัดการ snapshot ของข้อมูลตามเวลา อย่างไร