- Kullanıcının IP adresini kullanarak güncel yaklaşık konum bilgisini tahmin eder
- Bu konuma göre gökyüzü rengi ve atmosferini CSS gradyanı ile görselleştirir
- Ek bir harita veya karmaşık bir girdi olmadan yalnızca web sitesine girerek anında sonucu görebilirsiniz
- Arayüzün sade ve hafif olması nedeniyle herkesin kolayca erişebilmesi sağlanır
- Gerçek hava durumu bilgisini yansıtmaz; renkler konuma dayalı saat dilimi ve güneş konumuna göre belirlenir
Servis Özeti
- Bu web servisi, kullanıcının siteye giriş yaptığı anda yaklaşık konumunu (enlem, boylam) IP adresinden tahmin eder
- Tahmin edilen konum bilgisi ve yerel saat kullanılarak, güneşin konumu ve saat dilimine göre gökyüzünün renk tonu hesaplanır
- Hesaplanan gökyüzü rengi, web sitesi arka planını CSS gradyanı olarak oluşturarak gerçek zamanlı biçimde gökyüzü atmosferini gösterir
- Ek veri girişi gerektirmez; yalnızca web sitesine erişince otomatik olarak çalışır
Özellikler ve Nitelikler
- Harita, hava durumu API'si, hesap kaydı gibi karmaşık adımlar yoktur
- Gerçek zamanlı görselleştirme: Bulunduğunuz konumun saat dilimi değişimine göre gökyüzü rengi dinamik biçimde değişir
- Yalnızca CSS gradyanı ile uygulanır; bu da çok hızlı ve hafif bir kullanıcı deneyimi sunar
- Gerçek tehlikeli hava durumu, bulut ve yağış yansıtılmaz; temelde güneş açısı ve zaman odaklı bir algoritma uygulanır
Kullanım Amacı ve Önemi
- Hava durumu uygulamaları veya harita servisleri kadar karmaşık olmayan basit bir görsel bilgi sunma aracıdır
- Web tabanlı sanat çalışmaları veya kişisel demo projeleri için de yüksek kullanım değerine sahiptir
- Yerel olarak özelleştirilmiş görsel ipuçları otomatik olarak sunulur, bu nedenle ‘şu an burada gökyüzü nasıl olmalı’ sorusunu hızlıca yanıtlamak için uygundur
1 yorum
Hacker News yorumu
Kariyerimin ilk yıllarında 3B turn-by-turn navigasyon yazılımı geliştirirken bir dönem gökyüzü çizme görevi bana düşmüştü
Kıdemli geliştiricim “Gündüzleri mavi, geceleri koyu gri bir kutu koymak yeter” dedi ama ben çevre, enlem, boylam ve zamana göre değişen gerçek bir gökyüzü görmek istediğimden Preetham makalesini [bağlantı] referans alıp gerçekçi bir gökyüzü modeli geliştirdim
Yıldızlar, elle kodlanmış bir astronomi haritasıydı; performansım da oldukça iyiydi
Ama üst yönetim, ufkun puslu ve sarımsı çıkmasını gerçekçi bulduğu için şaşırdı ve “rakiplerin gökyüzü mavi” diyerek işimi hoş karşılamadı; “dışarı bakın” dedim ama bu da karşılık bulmadı
Sonunda her şeyi silip sadece mavi bir kare bıraktım
Bu yüzden böyle siteleri gördüğümde gerçekten çok hoş olduklarını düşünüyorum
Bu deneyimle gereksinim ve tasarımın önemini daha iyi anladım
Daha önce birlikte çalıştığım biri, Cobalt[bağlantı] oyununda yıldız sistemini fizik temelli uygulamak için fazlaca zaman harcadığını söylemişti
Bu durumlarda programlama hobiden çok meslek olduğunda daha bunaltıcı olabiliyor
Yönetimin inovatif birinin yaratıcılığını görmezden gelişi, aptalca yönetişim kalıbının tipik örneğidir
En azından bir easter egg olarak eklenebilirdi diye düşündüm
Pencerenin içine takılan bir sensör geliştiriyoruz. Bu sensör, gökyüzünün rengini dar bir koni açısıyla ölçüp sonucu skylight ve iç mekân window fixture sistemlerine göndererek içerde aynı gökyüzü tonunu yeniden üreten bir çözümdür[innerscene.com]
meta http-equiv="Refresh" HTML etiketinin geçtiğini görünce gülümserim
Eskiden sayfa otomatik yenilenmesi gerekirse bunun dışında başka bir yol yoktu
Bu projenin “formal minimalist” yaklaşımının parlak bir örneği olduğunu düşünüyorum
Aslında "http-equiv"nun rolü aynı HTTP başlığını taşımaktır; “Refresh: 60” başlığını göndermek aynı etkiyi bırakır
frameset özelliğini öğrenirseniz daha da şaşırırdım
Teşekkür ederim! Ama özür dilerim, doğduğumda setTimeout(() => location.reload(), ...) zaten oldukça yaygındı
En yeni web teknolojilerini bilmeyen bir eski kuşak geliştirici olarak, astro/cloudflare/wrangler kombinasyonunda aşağıdaki kodun nasıl çalıştığını merak ediyorum
const { latitude = "0", longitude = "0" } = Astro.locals.runtime.cf || {};Cloudflare özelliği astro’da sarmalanarak enlem/boylamı veriyormuş gibi görünüyor ama hangi içsel işleme uygulandığını öğrenmek istiyorum
Dokümanlara bakmama rağmen net bir cevap bulamadım, detaylı açıklama rica ederim
İçsel bir işleme görünmüyor olması tamamen sihir gibi davranmasından
Astro.locals.runtimeiçinde açığa çıkarır; bunların içindecfbinding’inde enlem, boylam gibi çeşitli istek değerleri bulunur[bağlantı1, bağlantı2]Cloudflare’de kullanıcının enlem ve boylamını (yaklaşık IP tabanlı veya başka bir yöntemle) HTTP başlıklarına otomatik ekleyen bir özelliği etkinleştirebilirsiniz[bağlantı]
Siteyi açtıktan sonra 20 saniye boyunca “ne zaman değişecek?” diye bekledim ama sonra bunun şu an saat 00:00 olduğunu anladım
SunCalc’ın yazarıyım. Kodumun bu amaçla kullanılmasını görmek beni gerçekten mutlu etti
Ayrıca suncalc.net, Google Maps API token süresi dolduğu için hata veriyormuş[suncalc.net]
Yazar mısınız, katkıda bulunan mısınız bilmiyorum; yine de çok iyi bir iş, gerçekten çok sevdim. Bu tür demoları izlemek keyif veriyor
Sayfayı yeniledim, JS’yi açtım, tekrar yeniledim... sonunda sunucu aşırı yüklenince açılmıyor sanmıştım
Beklediğimden de çok daha detaylı bir uygulama. Araştırma makalesine [bağlantı] dayalı
Telefona bakıp pencereye doğrultunca gerçek gökyüzü (şu an açık) ile yüzde 100 aynıydı; eşimi bile çağırıp gösterdim ve övdüm. Gerçekten harikaydı, tebrikler
ant.care[bağlantı] yapan biriyim. Hedefimiz arka plan gökyüzünü gerçek ortamla senkronize etmekti ama şimdiye kadar oldukça sade bir şekilde yaptık