- Utiliza o endereço IP do usuário para estimar as informações de localização atual.
- Visualiza a cor e a atmosfera do céu da localização correspondente em formato de gradiente CSS.
- Sem mapa separado ou entradas complexas, é possível ver o resultado imediatamente apenas acessando o site.
- A interface é simples e leve, então qualquer pessoa pode acessá-la com facilidade.
- Não inclui informações meteorológicas reais; a definição de cor é baseada principalmente no fuso horário da posição e na posição do sol.
Visão geral do serviço
- Este web service estima a latitude e longitude aproximadas atuais do usuário por meio do endereço IP ao acessar o site
- A partir da localização estimada e do horário local, calcula a coloração do céu conforme a posição do sol e o fuso horário.
- A cor do céu calculada é renderizada em formato de gradiente CSS no fundo do site para mostrar, em tempo real, a atmosfera do céu.
- Sem necessidade de inserir dados adicionais, o funcionamento é automático ao acessar o site.
Recursos e características
- Não há mapa, API de clima ou cadastro de conta, removendo etapas complexas.
- Visualização em tempo real: a cor do céu muda dinamicamente conforme a variação do fuso horário do local atual.
- Como é implementado apenas com gradiente CSS, oferece uma experiência de usuário rápida e leve.
- Não reflete condições de tempo severo, nuvens ou chuva; o algoritmo aplicado é basicamente centrado no ângulo solar e horário.
Propósito e relevância
- É uma ferramenta de informação visual simples, não tão complexa quanto aplicativos de clima ou serviços de mapa.
- Há alto valor de uso também como obra/arte para web ou projeto de demonstração pessoal.
- Como fornece automaticamente uma pista visual localizada, é ideal para esclarecer rapidamente a curiosidade de 'como estaria o céu aqui agora'.
1 comentários
Comentário do Hacker News
Lembro-me de uma época no início da carreira, quando eu trabalhava em um software de navegação turn-by-turn em 3D e fui responsável por desenhar o céu.
O meu líder disse que seria só pintar o céu de azul durante o dia e de cinza escuro à noite, mas, como queria renderizar um céu realista que mudasse com ambiente, latitude, longitude e horário, implementei um modelo de céu realista com base no paper do Preetham[link].
As constelações eram obtidas de uma tabela astronômica hardcoded, e o desempenho também foi bem bom.
Mas, na gerência, eles se assustaram com efeitos realistas como o horizonte esbranquiçado e com tom amarelado; disseram que “o céu do concorrente é azul”, não gostaram do meu trabalho e minha resposta de “vire-se para fora” não funcionou de jeito nenhum.
No fim, acabei apagando tudo e deixando só o retângulo azul.
Graças a essa experiência, quando vejo um site assim, acho mesmo muito bom.
Foi assim que comecei a perceber a importância de especificação e design.
Antes, um colega com quem trabalhei por um tempo me disse que gastou muito tempo implementando o sistema de estrelas com física no jogo Cobalt[link].
Em casos assim, programar parece mais chato como trabalho do que como hobby.
É um exemplo clássico de gestão ignorando a criatividade de inovadores: um caso típico de administração absurda.
Fiquei pensando que pelo menos isso poderia ter sido incluído como easter egg.
Estamos lançando um sensor instalado no lado interno da janela. Esse sensor mede a cor do céu em pequenos ângulos de cone e envia o resultado para o skylight e para o
window fixtureinterno, reproduzindo internamente o mesmo brilho do céu[innerscene.com]Ao ver a menção à tag HTML
meta http-equiv="Refresh", deu até risada.Antigamente, se era preciso atualizar a página automaticamente, não tinha outra forma além dessa.
Esse projeto me parece um excelente exemplo de minimalismo formal.
Na prática, o
http-equivtem o mesmo papel de cabeçalho HTTP, então enviar o cabeçalhoRefresh: 60tem o mesmo efeito.Se descobrir o recurso
frameset, vai se surpreender ainda mais.Obrigado! E desculpe, mas quando eu nasci, o
setTimeout(() => location.reload(), ...)já era amplamente usado.Como um desenvolvedor de geração anterior que não acompanha as tecnologias web recentes, fiquei curioso sobre o funcionamento do código abaixo com a combinação astro/cloudflare/wrangler.
const { latitude = "0", longitude = "0" } = Astro.locals.runtime.cf || {};Parece que uma função da Cloudflare está encapsulada no Astro para fornecer latitude/longitude, e quero entender se existe algum processamento interno.
Procurei na documentação também, mas não encontrei uma resposta clara, então peço uma explicação detalhada.
O motivo de não ver um processamento separado é que, na prática, isso parece funcionar como mágica.
Astro.locals.runtime, e entre eles o bindingcfinclui diversos valores de requisição como latitude e longitude[link1, link2]É possível habilitar a Cloudflare para adicionar automaticamente ao cabeçalho HTTP a latitude/longitude do usuário (geralmente por geolocalização por IP ou outros métodos) de forma integrada[link]
Abri o site e esperei 20 segundos por “quando vai mudar”, mas então percebi de repente que era meia-noite.
Sou autor do SunCalc. Fico realmente feliz em ver o meu código sendo usado nesse tipo de aplicação.
Só para constar, o suncalc.net está com erro por expiração do token da API do Google Maps[suncalc.net]
Autor? Colaborador? De qualquer forma, é uma obra excelente e eu realmente curto; é divertido ver demos assim.
Fiquei recarregando a página, ativando JS e recarregando novamente, e acabei achando que ia ficar fora do ar por sobrecarga do servidor.
A implementação está muito mais sofisticada do que eu esperava. É baseada no paper[link].
Testei encostando o celular na janela e ficou 100% idêntico ao céu real (agora limpo), então chamei minha esposa pra mostrar e me orgulhar. Achei realmente incrível. Parabéns.
Sou o criador do ant.care[link]; meu objetivo era sincronizar o céu de fundo com o ambiente real, mas até agora só consegui implementar algo muito básico.