- उपयोगकर्ता के IP पते का उपयोग करके वर्तमान स्थान का अनुमान लगाया जाता है
- उस स्थान के अनुसार आकाश के रंग और माहौल को CSS Gradient के रूप में विजुअलाइज़ करके दिखाया जाता है
- किसी अलग Map या जटिल इनपुट की जरूरत बिना ही सिर्फ वेबसाइट खोलकर तुरंत परिणाम देखना संभव होता है
- इंटरफेस सरल और हल्का होने के कारण कोई भी आसानी से इसे इस्तेमाल कर सकता है
- वास्तविक मौसम जानकारी इसमें शामिल नहीं की गई है, यह स्थान-आधारित टाइमज़ोन और सूर्य की स्थिति को आधार बनाकर रंग तय करता है
सेवा का अवलोकन
- यह वेबसाइट सेवा जब उपयोगकर्ता इसमें एक्सेस करता/करती है, तो IP address से अनुमानित वर्तमान स्थान (latitude, longitude) तय करती है
- अनुमानित स्थान और स्थानीय समय का उपयोग करके, सूर्य की स्थिति और समय क्षेत्र के आधार पर आकाश के रंगों की गणना की जाती है
- गणना किए गए रंगों को CSS Gradient फ़ॉर्मेट में वेबसाइट के बैकग्राउंड के रूप में render करके, real-time में आकाश का मूड दिखाया जाता है
- किसी अलग डेटा इनपुट की प्रक्रिया के बिना, सिर्फ वेबसाइट पर आने पर यह अपने-आप काम करने लगती है
फीचर्स और विशेषताएँ
- Map, मौसम API और account sign-up जैसी जटिल प्रक्रियाएँ मौजूद नहीं हैं
- रीयलटाइम विज़ुअलाइज़ेशन लागू: वर्तमान स्थान के समय क्षेत्र बदलाव के साथ आकाश का रंग गतिशील रूप से बदलता है
- सिर्फ CSS Gradient पर आधारित होने से बहुत तेज़ और हल्का user experience मिलता है
- वास्तविक गंभीर मौसम डेटा, cloud और बारिश आदि को इसमें शामिल नहीं किया जाता, बुनियादी तौर पर सूर्य कोण और समय-केंद्रित algorithm इस्तेमाल की जाती है
उपयोग उद्देश्य और महत्त्व
- यह मौसम ऐप या map सेवा की तरह जटिल नहीं, बल्कि सरल दृश्यात्मक जानकारी देने वाला टूल है
- वेब-आधारित आर्टवर्क या व्यक्तिगत demo project के लिए भी इसकी उपयोगिता ऊँची है
- लोकलाइज़्ड विज़ुअल संकेत अपने-आप उपलब्ध कराता है, इसलिए ‘यहाँ अभी आसमान कैसा होगा?’ जैसी जिज्ञासा जल्दी दूर करने के लिए उपयुक्त है
1 टिप्पणियां
Hacker News टिप्पणियाँ
जब मैं करियर की शुरुआत में 3D turn-by-turn navigation software बना रहा था, मुझे याद है कि आकाश की रेंडरिंग का काम मेरे पास था
एक सीनियर ने कहा था, “दिन में बस नीला और रात में डार्क-ग्रे स्क्वायर डाल दो, बस काम खत्म” लेकिन मैं वास्तविक sky को environment, latitude, longitude और समय के हिसाब से बदलते हुए सही तरीके से दिखाना चाहता था, इसलिए मैंने Preetham पेपर [लिंक] देखकर realistic sky model implement किया
constellations के लिए मैंने hardcoded astronomy table use किया था और performance भी काफी अच्छी थी
लेकिन ऊपर के लोगों को horizon का धुंधला/पीला दिखना जैसी वास्तविकता से जुड़े effects देखकर अजीब लगा; उनका मानना था कि “competitor का sky तो नीला है,” और मेरा काम उन्हें पसंद नहीं आया, मेरा जवाब “बस बाहर जाकर देखो” भी काम नहीं आया
अंत में मैंने सब हटाकर सिर्फ़ नीला स्क्वायर छोड़ दिया
शायद इसी वजह से ऐसे साइट को देखकर सच में लगता है कि कितना खूबसूरत है
इसी अनुभव से मैंने spec और design की अहमियत समझी
तुरंत समझ आने वाली conventions बहुत important होती हैं, ज़्यादा visual detail अक्सर उल्टा confuse कर देती है
अगर sky नीला न होकर धुंधला या फीका पीला दिखे तो यूज़र को शक हो सकता है कि यह sky है या अभी page loading में है; stars के साथ भी रात में functional purpose practically कोई नहीं होता
ये realistic effects Google Earth जैसे वास्तविक planet view में ठीक बैठते हैं। वास्तविक दृश्य में बनाना मज़ेदार है, लेकिन navigation view के लिए simplicity और clarity ही सबसे मायने रखती है। Practicality को realism से ज्यादा प्राथमिकता देनी चाहिए
पहले मैंने साथ काम करने वाले किसी व्यक्ति को Cobalt [लिंक] गेम में star system को physics-based तरीके से implement करने में बहुत समय खर्च करते हुए सुना
इस केस में मुझे programming job के रूप में अधिक बोरिंग लगती है बनिस्बत hobby के
मैनेजमेंट का innovators की creativity को ignore करना गलत प्रबंधन का क्लासिक उदाहरण है
कम से कम इसे Easter egg के रूप में तो जोड़ा जा सकता था
हम एक sensor लॉन्च कर रहे हैं जो खिड़की के अंदर install होता है। यह sensor sky का रंग छोटे cone angle से मापकर परिणाम Skylight और इनडोर window fixture को भेजता है ताकि अंदर वही sky light recreate की जा सके [innerscene.com]
जब किसी ने meta http-equiv="Refresh" HTML टैग का उल्लेख किया, तो हँसी आ गई
पुराने समय में page auto-refresh चाहिए होता था तो यही तरीका था
यह project मुझे formal minimalism का शानदार उदाहरण लगता है
सच में
http-equivका मतलब भी यही है कि यह समान HTTP header की तरह काम करता है;Refresh: 60header भेजने पर भी वही effect मिलता हैframeset (फ्रेमसेट) feature दिखे तो शायद और भी ज़्यादा हैरानी होगी
Thanks! और sorry, लेकिन जब मैं पैदा हुआ था तब भी
setTimeout(() => location.reload(), ...)पहले से ही widely used थामैं आज के नए web tech से अनजान एक old generation developer हूँ, इसलिए astro/cloudflare/wrangler के साथ नीचे दिया code कैसे काम करता है, यह समझना चाहता हूँ
const { latitude = "0", longitude = "0" } = Astro.locals.runtime.cf || {};लगता है Cloudflare की functionality astro में wrap होकर latitude/longitude दे रही है; अंदर किस तरह की processing होती है, यह जानना चाहता हूँ
docs खोजीं लेकिन clear जवाब नहीं मिला, तो थोड़ा विस्तार से समझाइए
अलग से कोई internal process दिख न पाने का कारण शायद यही है क्योंकि यह almost जादू जैसा लगता है
Astro.locals.runtimeमें कई bindings expose करता है, और इनमें सेcfbinding में request से संबंधित कई values (जैसे latitude और longitude) होते हैं [लिंक1, लिंक2]Cloudflare पर user की latitude/longitude (लगभग IP-based या अन्य तरीके से) को HTTP headers में auto-जोड़ने की सुविधा वाले managed transform को enable किया जा सकता है [लिंक]
मैंने site खुलने के बाद करीब 20 सेकंड तक “कब बदलता है” इसलिए इंतज़ार किया, फिर अचानक याद आया कि अभी अभी midnight है
मैं SunCalc का लेखक हूँ। मेरा code ऐसे उपयोग में देखकर सच में खुशी होती है
वैसे अभी suncalc.net पर Google Maps API token expire होने से error आ रहा है [suncalc.net]
लेखक हों या contributor, काम सच में शानदार है और ऐसा demo देखकर मज़ा आता है
मैंने page refresh किया, JS enable किया, फिर बार-बार refresh करके सोचा कि शायद server overloaded होकर नहीं खुल रहा
अपेक्षा से कहीं ज्यादा refined implementation है। यह research paper [लिंक] पर आधारित है
मैंने मोबाइल फोन को खिड़की पर रखकर टेस्ट किया; अभी का आसमान साफ होने के कारण 100% match मिला। अपनी पत्नी को भी बुलाकर दिखाया और बताया। सच में शानदार काम, बधाई हो
मैं ant.care [लिंक] बनाने वाला हूँ। लक्ष्य था background sky को वास्तविक environment से sync करना, लेकिन अभी हमने इसे अभी तक बहुत simple तरीके से ही implement किया है