บริการแสดงท้องฟ้าปัจจุบันตามตำแหน่งโดยประมาณของคุณด้วย CSS Gradient
(sky.dlazaro.ca)- ใช้ ที่อยู่ IP ของผู้ใช้เพื่อประมาณข้อมูลที่ตั้งปัจจุบันของตนเอง
- แสดงผล สีและบรรยากาศของท้องฟ้า ให้เหมาะกับตำแหน่งนั้นโดยแสดงด้วย CSS gradient
- สามารถดูผลลัพธ์ได้ทันทีเพียงเข้าถึงเว็บไซต์โดยไม่ต้องมีแผนที่หรือการป้อนข้อมูลที่ซับซ้อน
- อินเทอร์เฟซที่เรียบง่ายและเบา ทำให้ทุกคนเข้าถึงได้ง่าย
- ไม่ได้นำข้อมูลสภาพอากาศจริงมาคำนึงถึง โดยกำหนดสีตาม โซนเวลาและตำแหน่งดวงอาทิตย์จากตำแหน่งฐานะของผู้ใช้
ภาพรวมบริการ
- เมื่อผู้ใช้เข้าถึงเว็บบริการนี้แล้ว ระบบจะประมาณตำแหน่งโดยประมาณปัจจุบัน (ละติจูด, ลองจิจูด) ของผู้ใช้จากที่อยู่ IP
- ใช้ข้อมูลตำแหน่งที่ประมาณได้และเวลาท้องถิ่นในการคำนวณสีท้องฟ้าที่ขึ้นอยู่กับตำแหน่งและเวลาแห่งดวงอาทิตย์
- สีของท้องฟ้าที่คำนวณแล้วจะเรนเดอร์เป็นพื้นหลังเว็บไซต์ในรูปแบบ CSS gradient เพื่อแสดงบรรยากาศของท้องฟ้าแบบเรียลไทม์
- โดยไม่ต้องมีขั้นตอนการป้อนข้อมูลใดๆ เพิ่มเติม เพียงเข้าถึงเว็บไซต์โดยตรงจึงทำงานโดยอัตโนมัติ
ฟังก์ชันและคุณสมบัติ
- ไม่ต้องผ่านกระบวนการซับซ้อน เช่น แผนที่, weather API หรือการสมัครบัญชีผู้ใช้
- การแสดงผลแบบ เรียลไทม์: สีของท้องฟ้าจะเปลี่ยนแปลงอย่างไดนามิกตามการเปลี่ยนแปลงโซนเวลาของตำแหน่งปัจจุบัน
- ดำเนินการด้วย CSS gradient เท่านั้น จึงมอบประสบการณ์ผู้ใช้ที่รวดเร็วและเบา
- ไม่ได้รวมข้อมูลสภาพอากาศรุนแรง, เมฆและฝนเข้าไป โดยใช้หลักการทำงานของอัลกอริทึมที่ยึดตาม มุมและเวลาเฉลี่ยของดวงอาทิตย์ เป็นหลัก
วัตถุประสงค์การใช้งานและความสำคัญ
- เป็นเครื่องมือให้ข้อมูลภาพแบบง่าย ๆ ที่ไม่ซับซ้อนเหมือนแอปพยากรณ์อากาศหรือบริการแผนที่
- มีศักยภาพสูงในการนำไปใช้เป็น งานกราฟิกบนเว็บ หรือโปรเจกต์ตัวอย่างส่วนบุคคล
- เนื่องจากจัดหาคำใบ้เชิงภาพเฉพาะท้องถิ่นโดยอัตโนมัติ จึงเหมาะสำหรับการตอบคำถามทันทีว่า “แล้วท้องฟ้าที่นี่ตอนนี้เป็นอย่างไร”
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
ตอนที่ต้นเริ่มต้นอาชีพ ผมเคยทำงานพัฒนาซอฟต์แวร์นำทางแบบ 3D turn-by-turn ตอนหนึ่งและดูแลงานวาดท้องฟ้า
หัวหน้าบอกว่า “พอแบ่งเป็นสี่เหลี่ยมสีน้ำเงินตอนกลางวัน กับสี่เหลี่ยมสีเทาเข้มตอนกลางคืนก็จบ” แต่ผมอยากเห็นท้องฟ้าจริงที่เปลี่ยนตามสภาพแวดล้อม ละติจูด ลองจิจูด และเวลา จึงอิงงานวิจัยของ Preetham[ลิงก์] ทำโมเดลท้องฟ้าที่ยิ่งสมจริง
กลุ่มดาวเป็นตารางดาราศาสตร์แบบ hardcode และความเร็วในการประมวลผลก็ถือว่าดีพอ
แต่ชั้นบนกลับตกใจกับเอฟเฟกต์สมจริง เช่น ขอบฟ้าหม่นและมีโทนเหลือง และไม่พอใจกับงานผม “ท้องฟ้าของคู่แข่งเป็นสีน้ำเงิน” คำตอบ “ไปดูข้างนอกหน่อยสิ” ของผมก็ไม่ผ่าน
สุดท้าย ผมจึงลบทุกอย่างออกเหลือแค่มุมสี่เหลี่ยมสีน้ำเงิน
ประสบการณ์แบบนี้ทำให้ผมชอบไซต์แบบนี้มากขึ้นเมื่อเห็นมัน
มันทำให้ได้ตระหนักถึงความสำคัญของสเปกและการออกแบบมากขึ้น
รู้เรื่องว่าเดิมเคยมีคนที่เคยทำงานด้วยกันใช้เวลามากเกินเหตุไปกับการทำ star system แบบ physics-based ในเกม Cobalt[ลิงก์]
ด้วยมุมมองนี้ การเขียนโปรแกรมตอนเป็นงานอดิเรกอาจสนุกกว่าในฐานะอาชีพ
การที่ผู้บริหารมองข้ามความคิดสร้างสรรค์ของคนสร้างสรรค์เป็นภาพตัวอย่างคมชัดของการบริหารแบบไม่สมเหตุสมผล
อย่างน้อยก็น่าจะใส่เป็น Easter egg ได้บ้าง
เรากำลังปล่อยเซ็นเซอร์สำหรับติดตั้งด้านในหน้าต่างอยู่ เซ็นเซอร์นี้วัดสีท้องฟ้าด้วยมุมคอนเล็ก ๆ แล้วส่งผลลัพธ์ไปที่ skylight และ window fixture ภายในเพื่อจำลองแสงท้องฟ้าภายนอกภายในห้องให้ใกล้เคียงมากที่สุด[innerscene.com]
เห็นใครพูดถึงแท็ก HTML
meta http-equiv="Refresh"แล้วก็หันมาขำhttp-equivมีหน้าที่เหมือน header ของ HTTP เดิม ๆ และการส่ง headerRefresh: 60ก็ให้ผลเช่นเดียวกันframesetคงแปลกใจกว่านี้อีกsetTimeout(() => location.reload(), ...)ก็ใช้กันกว้างแล้วในฐานะนักพัฒนารุ่นเก่าที่ไม่ค่อยทันเว็บเทคโนโลยีล่าสุด ผมอยากรู้กลไกที่ทำให้โค้ดนี้ใช้งานได้ในชุด astro/cloudflare/wrangler
const { latitude = "0", longitude = "0" } = Astro.locals.runtime.cf || {};ดูเหมือน Cloudflare จะถูกหุ้มเข้าไปใน Astro ให้ป้อนไปเป็น latitude/longitude แล้ว แต่ไม่แน่ใจว่ามีการประมวลผลภายในอะไรอีก
ผมหาคู่มือมาแล้วแต่ยังไม่พบคำตอบชัด ๆ ขอคำอธิบายให้ละเอียดหน่อย
เหตุผลที่ดูเหมือนไม่มีการประมวลผลแยกชั้นคือมันทำงานราวกับเวทมนตร์จริง ๆ
Astro.locals.runtimeและใน binding ชื่อcfจะมีค่านอกเหนือจากค่าคำขอ เช่น ละติจูด ลองจิจูดด้วย[ลิงก์ 1, ลิงก์ 2]Cloudflare สามารถเปิดฟังก์ชันเพื่อแนบละติจูด/ลองจิจูดของผู้ใช้ (โดยประมาณจาก IP เป็นต้น) ลงใน HTTP header โดยอัตโนมัติได้[ลิงก์]
เปิดไซต์ไว้ 20 วินาทีเพื่อรอว่า ‘เมื่อไหร่จะเปลี่ยน’ แล้วนึกได้ชั่ววูบว่าตอนนี้เป็นเที่ยงคืนแล้ว
ผมเป็นผู้เขียน SunCalc พอเห็นว่ามีตัวอย่างการใช้โค้ดแบบนี้ก็รู้สึกยินดีมาก
หน้าเว็บรีโหลด เปิด JS แล้วรีโหลดซ้ำ ๆ จนคิดไปเองว่าเซิร์ฟเวอร์คงล่มเพราะพุ่งโหลดเกิน
ลึกและละเอียดกว่าที่คิดมาก ใช้อยู่บนงานวิจัย[ลิงก์]
ผมยกโทรศัพท์มาคิดดูที่หน้าต่างแล้วเทียบกับท้องฟ้าจริงปัจจุบัน (ตอนนั้นท้องฟ้าแจ่มใส) ได้ผลตรงกันถึง 100% จนเรียกภรรยามาดูด้วย รู้สึกว่ามันสุดยอดมาก และยินดีด้วยครับ
ผมเป็นคนทำ ant.care[ลิงก์] เป้าหมายคือซิงก์ background sky ให้ตรงกับสภาพแวดล้อมจริง แต่ตอนนี้ยังทำได้แบบพื้นฐานมาก