frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

France's homegrown open source online office suite

https://github.com/suitenumerique
364•nar001•3h ago•180 comments

British drivers over 70 to face eye tests every three years

https://www.bbc.com/news/articles/c205nxy0p31o
96•bookofjoe•1h ago•79 comments

Start all of your commands with a comma (2009)

https://rhodesmill.org/brandon/2009/commands-with-comma/
414•theblazehen•2d ago•152 comments

Hoot: Scheme on WebAssembly

https://www.spritely.institute/hoot/
77•AlexeyBrin•4h ago•15 comments

Leisure Suit Larry's Al Lowe on model trains, funny deaths and Disney

https://spillhistorie.no/2026/02/06/interview-with-sierra-veteran-al-lowe/
10•thelok•1h ago•0 comments

OpenCiv3: Open-source, cross-platform reimagining of Civilization III

https://openciv3.org/
770•klaussilveira•19h ago•240 comments

First Proof

https://arxiv.org/abs/2602.05192
33•samasblack•1h ago•18 comments

Reinforcement Learning from Human Feedback

https://arxiv.org/abs/2504.12501
49•onurkanbkrc•4h ago•3 comments

Stories from 25 Years of Software Development

https://susam.net/twenty-five-years-of-computing.html
25•vinhnx•2h ago•3 comments

The Waymo World Model

https://waymo.com/blog/2026/02/the-waymo-world-model-a-new-frontier-for-autonomous-driving-simula...
1019•xnx•1d ago•580 comments

Coding agents have replaced every framework I used

https://blog.alaindichiappari.dev/p/software-engineering-is-back
156•alainrk•4h ago•191 comments

Vocal Guide – belt sing without killing yourself

https://jesperordrup.github.io/vocal-guide/
158•jesperordrup•9h ago•57 comments

72M Points of Interest

https://tech.marksblogg.com/overture-places-pois.html
9•marklit•5d ago•0 comments

A Fresh Look at IBM 3270 Information Display System

https://www.rs-online.com/designspark/a-fresh-look-at-ibm-3270-information-display-system
16•rbanffy•4d ago•0 comments

Software Factories and the Agentic Moment

https://factory.strongdm.ai/
10•mellosouls•2h ago•8 comments

Unseen Footage of Atari Battlezone Arcade Cabinet Production

https://arcadeblogger.com/2026/02/02/unseen-footage-of-atari-battlezone-cabinet-production/
102•videotopia•4d ago•26 comments

StrongDM's AI team build serious software without even looking at the code

https://simonwillison.net/2026/Feb/7/software-factory/
8•simonw•1h ago•1 comments

Making geo joins faster with H3 indexes

https://floedb.ai/blog/how-we-made-geo-joins-400-faster-with-h3-indexes
152•matheusalmeida•2d ago•41 comments

Show HN: Look Ma, No Linux: Shell, App Installer, Vi, Cc on ESP32-S3 / BreezyBox

https://github.com/valdanylchuk/breezydemo
261•isitcontent•19h ago•33 comments

Google staff call for firm to cut ties with ICE

https://www.bbc.com/news/articles/cvgjg98vmzjo
99•tartoran•1h ago•28 comments

Monty: A minimal, secure Python interpreter written in Rust for use by AI

https://github.com/pydantic/monty
273•dmpetrov•19h ago•145 comments

Ga68, a GNU Algol 68 Compiler

https://fosdem.org/2026/schedule/event/PEXRTN-ga68-intro/
34•matt_d•4d ago•9 comments

Show HN: Kappal – CLI to Run Docker Compose YML on Kubernetes for Local Dev

https://github.com/sandys/kappal
15•sandGorgon•2d ago•3 comments

Hackers (1995) Animated Experience

https://hackers-1995.vercel.app/
545•todsacerdoti•1d ago•262 comments

Sheldon Brown's Bicycle Technical Info

https://www.sheldonbrown.com/
416•ostacke•1d ago•108 comments

Show HN: I spent 4 years building a UI design tool with only the features I use

https://vecti.com
361•vecti•21h ago•161 comments

What Is Ruliology?

https://writings.stephenwolfram.com/2026/01/what-is-ruliology/
61•helloplanets•4d ago•64 comments

Show HN: If you lose your memory, how to regain access to your computer?

https://eljojo.github.io/rememory/
332•eljojo•22h ago•206 comments

An Update on Heroku

https://www.heroku.com/blog/an-update-on-heroku/
456•lstoll•1d ago•298 comments

Microsoft open-sources LiteBox, a security-focused library OS

https://github.com/microsoft/litebox
370•aktau•1d ago•194 comments
Open in hackernews

Show HN: The current sky at your approximate location, as a CSS gradient

https://sky.dlazaro.ca
788•dnlzro•6mo ago
For HTML Day 2025 [1], I made a web service that displays the current sky at your approximate location as a CSS gradient. Colours are simulated on-demand using atmospheric absorption and scattering coefficients. Updates every minute, without the use of client-side JavaScript.

Source code and additional information is available on GitHub: https://github.com/dnlzro/horizon

[1] https://html.energy/html-day/2025/index.html

Comments

stephenlf•6mo ago
Fantastic. I’ve always wondered why the sky wasn’t blue around the horizon. Fascinating stuff.
verandaguy•6mo ago
There's two main reasons for this:

- First and most impactful: as the earth curves down and away from the observer's horizon, your line of sight goes through a thicker slice of the atmosphere.

Looking straight up you might have 100km of atmosphere until space (the distance is made up here, but I'm using the Kármán line as an arbitrary ruler), but looking out towards the horizon (assuming a perfectly spherical Earth), it's much, much more than that 100km, so the light will scatter off of (and/or be filtered by, depending on angle and time of day) more particles in the atmosphere, affecting the colour of the sky.

- The compounding factor here is if there are environmental factors that boost the particle count in the air, and especially particles that'd stay in lower layers of the atmosphere. Where I am, we've been dealing with wildfire smoke of varying strengths for a few weeks. Today's gentle enough, but it's bad enough that my gradient goes from rgb(115, 160, 207) at the top of the sky to rgb(227, 230, 227) at the horizon (which is shockingly accurate).

throwanem•6mo ago
> the little-known meta http-equiv="Refresh" HTML tag

Oh, don't mind me, I'll just be over here in the corner laughing ruefully as my bones crumble to dust: back when I started, if you wanted a page to refresh on its own, this was the only way.

Beautiful work! A splendid example of formal minimalism at its best.

dnlzro•6mo ago
Thank you! And umm, not to make you feel ancient, but I think I wasn't even alive yet when `setTimeout(() => location.reload(), ...)` first became widely available.
throwanem•6mo ago
Oh, don't worry about it at all, and I don't just mean in my own case. Every generation learns to age graciously or otherwise, partly through experience, and for me it's a regular source of joy to see you young 'uns independently rediscover things I long since quit bothering to remember.
phatskat•6mo ago
Honestly it’s kind of cute, I had all but forgotten about http-equiv
skrebbel•6mo ago
I can’t wait till they hear about framesets
mintplant•6mo ago
Of course, the "http-equiv" means that this tag is supposed to stand in for an equivalent HTTP header, so you could accomplish the same by sending a "Refresh: 60" header :)
throwanem•6mo ago
Sure, if you wanted to deal with configuring Apache. Or getting your hosting provider to do that. If you knew to ask, and didn't mind waiting, and your hosting provider knew how...
dudus•6mo ago
Not sure what you are on about. Adding an HTTP header to a request is one of the easiest things to do.
urquhartfe•6mo ago
I think you are the one who doesn't know what they are on about.

First, the header must be added to the response, not the request.

Second, in many environments (managed hosting etc.) there is not an easy way (or indeed a way at all) of adding headers to responses.

dylan604•6mo ago
is that something that could have be done in the dot file for server override? what was it, .htaccess or something?
throwanem•6mo ago
Sure, if you wanted to deal with configuring Apache. Or getting your hosting provider to do that. If you knew to ask, and didn't mind waiting, and your hosting provider knew how...and was willing to do it, a condition I forgot to add in my last comment here, but which applies equally there. (User-provided .htaccess files were the source of a number of relatively high-profile early CVEs, as I recall. Apache grew a number of options for trusting their content, and I want to say before very long you could not rely on anything working past simple HTTP-Basic credential management.)

Oldschool shared web hosting was a shockingly deprived environment by modern standards, which is why my Linode account turned old enough a few months ago to buy a drink in a bar: $20 a month in 2004 was amply worth gaining a degree of control over web server configuration which is broadly the default assumption now.

Since I was also administering some shared web hosting in my own right at the time - partially overlapping with my web design work targeting shared hosting, since some customers preferred to BYO - I don't blame admins for being difficult to work with; we all had good reason to be, with the afterthought security typically was everywhere in those days. But you begin perhaps to see why bypassing the whole rigamarole with a hint to the client was attractive.

dylan604•6mo ago
but that was the point of the dot file to allow vhosts to change the default server settings without needing access to the root config. maybe they weren't designed specifically for vhosts, but that was my main use of them.
throwanem•6mo ago
Yes. If the main Apache config was set up to allow it to read a dotfile, and if configured not to ignore the options you wanted to use, that is what the dotfile did. That's why, if you wanted an option easily portable across hosting providers, you used the meta tag instead. Which is my point, and my only point, and not really up for debate by some pettifogging rando with nothing better to fill a Saturday night.
dylan604•6mo ago
Wtf, seriously. I was just asking. Sorry if that resulted in me pissing in your cheerios. Just because a question was asked doesn’t mean it was challenging your knowledge. I was just asking to clarify based on personal experience. If you don’t have time for questions or feel personally slighted that someone would have the gall to question the written word of the almighty throwanem, then posting on the internet is probably something you stop doing
throwanem•6mo ago
It isn't a question of "challenging [my] knowledge," it's a question of you acting like kind of a jerk. I realize you don't see yourself as the one starting an argument here, and I have observed your manners likewise lacking on many occasions on this website before. Your opinion of the matter is not well qualified. You're being an ass. Knock it off.

I realize you're probably not accustomed to being called on your lousy behavior. I doubt you will need to become so. But just for once, here we are. You don't bother to find out what you're talking about before you speak and then you want your hand held on points that were already clarified, had you but bothered to catch up. I don't tolerate that in candidates, I won't tolerate it in colleagues, and I see no very pressing reason to tolerate it here.

radicalriddler•6mo ago
You're like the caricature of what other social media platforms represent HN users to be.
throwanem•6mo ago
Not really, that's more like N-Gate (pbuh, rip) [1].

[1] http://n-gate.com/hackernews/

throwanem•6mo ago
Wait, I'm confused. Do you mean that I correspond with the caricature by which you're accustomed to see HN users represented, presumably not by themselves, on other social media platforms? Or do you mean instead that I correspond with a caricature of the caricatured representation that etc.? Your comment is ambiguous. Please clarify.
astrange•6mo ago
Ever tried doing it in nginx? You'll find `add_header` doesn't work at all the way you think it does.

And it doesn't allow overrides in dotfiles since that's not performant or secure.

KTibow•6mo ago
> Second, in many environments (managed hosting etc.) there is not an easy way (or indeed a way at all) of adding headers to responses.

It's getting better. Most serverless hosts (including Cloudflare, which this site uses) follow the (req: Request) => Response pattern, which by definition allows sending headers.

bapak•6mo ago
What are you talking about. Any non-static hosting will let you specify headers with a plain php function. Any baseline shared hosting offers that kind of control and has done so for the past 20+ years.
js2•6mo ago
There was also server[-side] push:

https://www.oreilly.com/openbook/cgi/ch06_06.html

nnnnico•6mo ago
incredible <3 not much else to say
siva7•6mo ago
how i missed this small hn posts. thanks
hoppp•6mo ago
Seems to work :)
ryandrake•6mo ago
Awesome. I remember much earlier in my career I was working on a 3D turn-by-turn navigation software, and one of my tasks was to draw the sky in the background. The more senior guy on the team said, just draw a blue rectangle during the day and a dark gray one at night and call it job done. Of course, I had to do it the hard way, so I looked up the relevant literature on sky rendering based on the environment, latitude, longitude, time of day and so on, which at the time was Preetham[1] ("A Practical Analytic Model for Daylight"), and built a fully realistic sky model for the software. I even added prominent stars based on a hard-coded ephemeris table. It was quite fast, too.

Well, the higher ups of course hated it, they were confused as to why the horizon would get hazy, yellowish, and so on. "Our competitors' skies are blue!" They didn't like "Use your eyes and look outside" as an answer.

Eventually, I was told to scrap it and just draw a blue rectangle :(

All that to say, nice job on the site!

1: https://courses.cs.duke.edu/cps124/fall01/resources/p91-pree...

j_bum•6mo ago
Fun (but not fun) story :)
netsharc•6mo ago
Not even as an easter egg?

You could've sold it with telling them Vincent Van Gogh's paintings had the location of stars accurately, you were inspired by those paintings to reproduce the sky color accurately.

darknavi•6mo ago
A past coworker who worked on Cobalt[1] told me that they spent entirely too much time implementing stars in the sky of the game with some amount of real(ish) star system physics behind them.

I can understand people removing polish things like that if there are usability concerns, but those small things add up to a lot in an end product and are a joy to find and explore.

1: https://en.wikipedia.org/wiki/Cobalt_(video_game)

pava0•6mo ago
Cobalt was a really interesting game, too bad it never got any fame
dylan604•6mo ago
The last thing you want is to receive a message from Neil Degrasse Tyson about how wrong your sky was

https://duckduckgo.com/?t=ffab&q=neil+degrasse+tyson+gives+j...

edoceo•6mo ago
And pointed out Jon Stewart's globe spinned backward
zarzavat•6mo ago
You should have added a duck.
otikik•6mo ago
I understood that reference
jbverschoor•6mo ago
Whipping down the innovator with the stupidity whip. Great management
ryandrake•6mo ago
A foundational, core theme about making commercial software, that repeats over and over and I slowly got accustomed to is: companies really don't want these kinds of micro-innovations. 90% of companies are just looking at their competitors, making a checklist out of those products, and asking engineers to check the boxes and go home. They don't care about little details, about craftsmanship and polish, about lint warnings, about "oh, that's a nice touch," or even quality beyond "will the customer return the product?" They just want people to poop out software as fast as possible so everyone can get bonuses and drive around on their jetskis on Saturday.

If you're the kind of developer who likes to "sand and finish the back side of the cabinet," either you need to find a very rare, special company, or do it at home as a hobby.

jbverschoor•6mo ago
But it's exactly the thing that makes software "delightful". It's also a huge boost to the developer's appreciation, motivation, productivity, care for the product.

But yeah, if you only care about checking the feature boxes.. Go ahead, make shit software with miserable people, but be sure to prepare to go out of business.

philipallstar•6mo ago
The point is a real skybox is not great for satnav software. It's probably actually worse than a stylised mode, with a predictable colour background for anything that's going to sit on top of it.
jbverschoor•6mo ago
That's exactly not the point. Where do you think innovation comes from?

It comes from tinkering.

philipallstar•5mo ago
It comes from all sorts of different things. Massive capital investment into R&D processes also. Depends on the thing.
cyberax•6mo ago
> They don't care about little details, about craftsmanship and polish, about lint warnings, about "oh, that's a nice touch," or even quality beyond "will the customer return the product?"

I worked at large companies, and there are reasons beyond that. I've been on the both sides of this fence.

Senior engineers feel the pain of supporting all these features. You created a new streaming API prototype that provides a gradual response, progressively displaying details of the 3D model? Great. But it's 15000 lines of dense code without a lot of explanation. Who is going to support it once you leave the company? Is it secure? How does it work with kiosk-type browsers? Can you write a formal proposal so we can start the review process?

Oh, I see that you're already leaving the company :(

And that's also why startups are often so much more successful initially. They just don't care about the long-term support and YOLO a lot of functionality.

jbverschoor•6mo ago
Sure.. but all there prototypes don't have to be released. It's part of innovation. And maybe you'll even find a new product or a competitive edge.
woah•6mo ago
It sounds like the developer spent a lot of time implementing something that nobody wanted. Drawing the sky accurately may be cool, but it wasn't required in this case. It's also not innovation. It's been done before.

This is like if you were renovating your house and the drywall guy spends a huge amount of time building up round corners, but you just wanted regular square corners. Then on some drywall forum they're bitching about how "all clients are stupid" or something.

alwa•6mo ago
And, from the sound of it, the developer confused truth with beauty. Sometimes we’d prefer to see the sky the way we wish it were rather than the way it is.

That’s an aesthetic call, not a “who can do the math” call.

“Good news, I accurately simulated the particulate load in the local atmosphere—so now you authentically can’t read the text on a given smoggy winter morning!”

(FWIW, grace for management decisions notwithstanding, I think what gp did is awesome, and would switch on full realism mode every time :)

ChrisMarshallNY•6mo ago
I've been in the developer's shoes. I've also been in the manager's shoes.

It's not that simple. There's possibly better ways to deal with it, but for safety-critical stuff (like a navigation display in a vehicle), simple is much, much better. In many cases, there's actually laws and liability stuff involved.

I once spent six months, developing an "un-asked-for" WiFi control app for a digital camera, and had it nuked. It worked much better than the shipping app (which was enjoying a richly-deserved one-star rating in the app store).

The considerations had a lot to do with the corporate Process (note the capital "P"), which I sidelined. I thought I could do better, but the people with the hands on the brake, thought different. I didn't kiss the right rings. That's a very real consideration in any corporation.

As a manager, however, I did go to bat for employees that displayed initiative. In some cases, I was successful. In some cases, not so much.

hobs•6mo ago
There's so much decision making in companies that comes down to some dingus in management decided that it would Be Bad On Purpose. Fighting that battle is something you can try a few times in your career if you want, but it usually leads to burnout or a resume generating event.
idiotsecant•6mo ago
This is a wildly unprofessional attitude. Programmers are craft(wo)men. They employ their craft toward creating things people pay them to create.

We aren't painting sistine chapels, we are running the plumbing in the sistine chapels basement. The job doesn't exist to give you emotional fulfillment. A mason doesn't insist that a client who needs a warehouse must pay him to spend a week detailing corbelled brick cornices. He makes a CMU wall, in the cheapest and most efficient way that still gets the job done.

It's profoundly disrespectful when we build monuments to our own ego instead of just getting the work done and it speaks to a professional immaturity of the highest order. That was one of the hardest lessons I learned as a fresh engineer and I see so often others that are just learning it. Sometimes people never learn it.

sgarland•6mo ago
> We aren't painting sistine chapels, we are running the plumbing in the sistine chapels basement.

Sure, but in plumbing - or any trade - there is a huge spectrum of quality of work. Tons of little details add up that confer the person’s skill level to anyone checking it out in the future.

> It's profoundly disrespectful when we build monuments to our own ego instead of just getting the work done and it speaks to a professional immaturity of the highest order.

When I insist that something must be done a certain way, it’s not for my ego, it’s because I know that a year from now, I will be called upon to fix it during an incident if I don’t do it right this time. I am so absolutely sick of hacky bandaids being thrown on the ever-increasing pile of tech debt. To me, it’s profoundly disrespectful when product tells engineering that yet again, they will not yield time to fix the backlog, and to ship New Feature X.

teaearlgraycold•6mo ago
To be honest I don’t think anyone wants that kind of functionality - maybe in the satellite view but not in the vector map.
marcosdumay•6mo ago
Yep, if you have to draw the Sun, you better draw it yellow. If you have to draw a cloudless day sky, you better draw it blue.

That doesn't apply to every single instance of those, but if the sky isn't the focus of your application, a realistic one is just a distraction.

dylan604•6mo ago
> Yep, if you have to draw the Sun, you better draw it yellow.

This one always gets me in how dirty the sky must have been "back in the day" in order for people to see a yellow sun. I've never looked into what gas would be needed to make the sun look yellow, but it must have been hell to breathe.

withinboredom•6mo ago
The walls were black for a reason in big cities. All those chimneys and coal everywhere.
card_zero•6mo ago
Nah, the ancient Egyptians, and other cultures, depicted the sun a lot, and never made it white. Red, quite often, gold, very frequently - warm colors. If you paint a white sun people say it's the moon.
benrutter•6mo ago
Ironically, I'm in the South of England wih clear blue sky, and the site thinks I have a much darker and beautiful reddish sunset. Im fairness, it's probably only out by an hour if that.
thebruce87m•6mo ago
Maybe it is out by an hour due to BST.
Waterluvian•6mo ago
I’ve had similar issues at work where people really overdo something and it’s difficult. On one hand you never want to kill that joy and passion someone has. That’s a great characteristic. But projects have scopes and too often instructions like “just draw a blue rectangle” get ignored.
ryandrake•6mo ago
Totally. It was a harsh but needed lesson on the realities of getting work done in a commercial environment.
crazygringo•6mo ago
This is why specifications are important, and why design is important.

The reality is that we have certain conventions that are immediately understandable, and that too much visual complexity results in confusion rather than clarity.

If the sky is hazy white when I expect it to be blue, I'm confused as to whether it's the sky or if the map is still loading. It's adding cognitive complexity for no reason. Stars similarly serve no functional purpose at night.

What you built sounds great for an actual planetary view like Google Earth. And it sounds fun to build. But it's an anti-feature for a navigation view. When you're navigating, simplicity and clarity are paramount. Not realism.

johnfn•6mo ago
Oh come now. You are being no fun.
dylan604•6mo ago
> This is why specifications are important, and why design is important.

Also the phrase "know your audience". No sense in casting pearls before the swine.

resonious•6mo ago
Though sometimes the higher ups might not be the same as (or understand) the actual audience.

In this case the higher ups may have been confused due to, say, looking at the app while indoors (and from the perspective of "let's judge this developer's work"), while the actual users would see it in a vehicle alongside the real sky (and from the perspective of "let's see how easy this is to match up with reality").

dylan604•6mo ago
Ah, I see the confusion. You think the users are the dev's audience! /s
resonious•6mo ago
I suppose this is the lesson OP learned!
edoceo•6mo ago
I wish more people knew it. So many times frustration of the system is directed at devs. They couldn't figure out X? Why is Z feature so shit? Etc.

That's a management thumbprint on the deliverable.

Mentlo•5mo ago
This is a valid hypothesis, and had this software been something you could update in the background, a valid experiment to run and see whether users like it.

But when it's embedded software on physical devices where the business will have to incur cost in order to ship and hit those users, I can absolutely see why management would do the same thing as what all of the competitors are doing.

wkjagt•6mo ago
Also, any fanciness you add in your product is something you need to then maintain. Even after the developer that built it leaves the company.
carlosjobim•6mo ago
It takes thousands of years for the stars to have changed positions in a noticeable way, and my best guess is that the customers will not use their car GPS for so long that this will bother them.
crazygringo•6mo ago
Very funny, but in case you're serious, it's not the stars changing...

...it's the software frameworks. A new screen size. A different color depth. A bug when the graphics library is upgraded for antialiasing. Etc.

carlosjobim•6mo ago
That's not going to be an issue with devices already sold. And if developers of future devices can't handle it they should probably be fired from their job.
crazygringo•6mo ago
It's not a question of whether future developers can "handle" it. It's a question of whether the additional time required to maintain it is worth the cost. Maintenance isn't free. It takes time, and every little bit adds up.

Also, devices already sold often get updates, so it's not even just about future devices.

bravesoul2•6mo ago
The thing here is programming the job can be much more dull than programming the hobby. Occasionally (twice a decade) there can be a collision where you get to do something really cool like that at work. The higher ups want a realistic sky because their market research said it'll boost an OKR by 10 basis points. And then you are in luck!

That said there are niches where jobs let you do cool stuff all the time. Hard to find. Probably why gaming jobs are notoriously underpaid and overworked.

maddmann•6mo ago
Haha it sounds you applied the opposite of the YAGNI principle building this.
GuardianCaveman•6mo ago
I identify so much with your sentiment and this type of overthinking overbuilding .
nkrisc•6mo ago
That sounds really cool but I have to reluctantly agree with the senior: a cartoonish day/night sky is better than a half-implemented realistic one. I say “half-implemented” because it sounds as though yours didn’t account for local weather and cloud cover, which is reasonable but then incomplete. Even if you did, well, it’s turn-by-turn navigation. I expect the sky color to be selected for ideal contrast with the important UI elements to reduce the time spent looking at it while driving.
ianbicking•6mo ago
I'm around so much wildfire smoke lately that my sky expectations have changed...

I wonder what it would take to account for weather?

craftkiller•6mo ago
That'd be a pretty large introduction of a dependency. The sky can be calculated with just lat/lon and the current date+time. Adding in weather would mean querying some external weather service.
nisten•6mo ago
i put my laptop next to the window and it was spot on wtf

what got me the most is opening chrome dev tools and seeing nothing there

nhinck3•6mo ago
Opened this up and sat there for a good 20 seconds waiting for something to happen... only to remember it's midnight here.
dnlzro•6mo ago
Maybe someone smarter than me could add stars to the night sky, so it's not just black.
nativeit•6mo ago
I was just thinking about how to slice up a star map projection, and apply it as an overlay. I don’t do such things often enough to do it quickly, although I can imagine how it could be achieved. I’d imagine someone working in game dev probably could whip up a mechanism for applying coordinates to a star map fairly quickly, but realizing it in pure CSS would probably require exporting all the slices to a folder as SVG squares that are labeled with coordinates, and then using a bit of JS to stitch it all together in the rendered page.
mpetroff•6mo ago
I wrote a simple web-based night sky viewer a while ago [1], which renders the 750 brightest stars from coordinates in a data file (along with the moon). It uses D3.js to do fully client-side SVG-based rendering for interactive use, but it could be simplified to render server side to an SVG file. I think the main complication is that by adding stars, a projection needs to be decided on, and you'd need to consider the aspect ratio of the browser window.

[1] https://github.com/mpetroff/nightsky

socalgal2•6mo ago
Suggestion for the author, I don't think there are any outdoor places where the sky is black. I don't know that gray would be any better. Stars? Some night clouds? or maybe even still a gradient?

https://www.google.com/search?sca_esv=58e7983bf9f21fcd&udm=2...

mlhpdx•6mo ago
Which direction am I looking? Deeper blue to the north.
dnlzro•6mo ago
It's always facing the sun (although it doesn't include the sun itself).
i_love_retros•6mo ago
Curious why a celebration of HTML needed a full stack javascript framework?
dnlzro•6mo ago
A server is needed to calculate the sun's position from latitude + longitude + time, and then render the gradient. I could use HTML templating in some other language/framework, but I used Astro because that's what I'm familiar with and it's very easy to deploy to Cloudflare Pages.
nnnnico•6mo ago
it's beautiful. btw, could this be all done in client side js? didnt look at the implementation, probably server is used to resolve location?
wonger_•6mo ago
(not author) from the source:

  const { latitude = "0", longitude = "0" } = Astro.locals.runtime.cf || {};
To do it client-side, you would probably have to call some less-reputable IP geolocation service, or settle for navigator.geolocation which has a permission popup
mcteamster•6mo ago
Depending on how "approximate" is acceptable, I've found that using timezone names can be a good proxy for location. As most users have their timezones set correctly it's more consistent and private than IP or GPS.

I've made a library for my own use cases that does this (https://github.com/mcteamster/virgo), but it's also pretty straightforward to parse the city/state name out of the timezone and look it up somewhere.

ascorbic•6mo ago
Astro is a great way to write HTML
dnlzro•6mo ago
I'm sure that's your totally unbiased opinion ;)
ascorbic•6mo ago
I was a fan of Astro long before I became a maintainer. That's why I joined!
djoldman•6mo ago
@dlazaro, I believe that style={{backgroundColor: bottom}} is not needed in:

    <body style={{backgroundColor: bottom}}> </body>
is not needed.
dnlzro•6mo ago
I actually included that so the tab and status bars are themed on iOS/Safari. Here's someone else's writeup on that: https://medium.com/@evkirkiles/coloring-the-webkit-browser-b...
peterldowns•6mo ago
That's a cool thing to know, thanks for sharing. Great job on the sky site!
djoldman•6mo ago
Today I learned! Thanks
doughecka•6mo ago
Wow, this works in chrome on Android as well
jhardy54•6mo ago
Super neat. Looking forward to checking out your implementation and learning about this!
gdubs•6mo ago
Well, that's delightful. Works really well here in the Pacific Northwest :)
esafak•6mo ago
More sophisticated than I expected. It relies on a research paper: https://github.com/ebruneton/precomputed_atmospheric_scatter...
101008•6mo ago
Put my phone against the window and I had to call over my wife to come to check it: it matches 100% (clear sky right now). It's amazing, congratulations
xattt•6mo ago
This would be an awesome background for a smart home dash!
fudged71•6mo ago
It would be awesome for a fake window in a basement
mushufasa•6mo ago
would love this to be a desktop background -- linux or macOS
nathandaly•6mo ago
I just did some googling and found at least one app to do exactly this on Android. This is now my phone background!!

(I used this, but it does leave a small "please purchase" banner at the top, until you pay: https://play.google.com/store/apps/details?id=com.nuko.livew...)

Leftium•6mo ago
I use a built-in MacOS wallpaper called Solar Gradients[1]

It looks very similar!

[1]: https://youtu.be/0mf8YaWN5qE?t=1m21s

DonHopkins•6mo ago
Why doesn't it respect dark mode??? ;)
8n4vidtmkvmk•6mo ago
Wait a few hours
cosmicgadget•6mo ago
That is awesome but now I want to check what my SF bros see when they look up.
cgijoe•6mo ago
Ooh, how about this as a live desktop wallpaper!
rafinha•6mo ago
Same!
SeanAnderson•6mo ago
Oh nice, this is actually something I very specifically wanted for https://ant.care/! I was trying to have the background sky for the ant farm be reflective of the user's current environment, but I didn't do anything more than a naïve approach. Maybe I'll work on adopting your approach at some point :) Still a bit torn on if the whole thing should be Rust/WASM or just the core simulation in Rust and defer as much as possible to JS/HTML.
michelreij•6mo ago
Beautiful, thank you!
card_zero•6mo ago
Useful, saves me looking at the thing.
mourner•6mo ago
Author of Suncalc here — this is exactly the kind of stuff I love to see my code being used in, thanks for sharing!
sheerun•6mo ago
Author or contributor? Great work, by the way, I love such shows
mourner•6mo ago
Wrote it 14 years ago! https://github.com/mourner/suncalc/ It's a bit neglected but I'll do some upkeep shortly...
gregsadetsky•6mo ago
Hey, small note that your excellent https://suncalc.net/ is showing an error due to the Google Maps API token having expired.

I know that you deeply know map tech :-) but if I may make a suggestion - you might consider switching from Google Maps to Protomaps? https://github.com/protomaps/protomaps-leaflet

Cheers

mourner•6mo ago
Yeah, I think I last updated that website even before I released the first version of Leaflet. Life is very hectic at the moment, but I do really want to get to it sooner than later and modernize everything.
sheerun•6mo ago
Bit darker blues, please!
therealfiona•6mo ago
Works in Hawaii.
cwmoore•6mo ago
Even at sunrise?
fmbb•6mo ago
It’s way too dark for this time of year at this time of day here at 60 degrees north.

But it looked very cool earlier today when it matched!

yonatan8070•6mo ago
Very cool, though I opened it at night so it's just black. Is there a way to adjust the time it renders to see what it would look like at different times?
cwmoore•6mo ago
I like this, but I’m newly concerned about the unitary horizon.
tinco•6mo ago
21pm in The Netherlands, the sky is a clear blue down to a baby pink right now, however the app shows a black to dark red. Other people are saying it matches exactly for their location so maybe there's some sort of bug?
croisillon•6mo ago
during the day it was good here, now that it is night it's a bit off for me too
cloudfudge•6mo ago
As an old-timer who's not up on all the latest whiz-bang web stuff, I have to ask what is the astro/cloudflare/wrangler magic that allows the following to work:

  const { latitude = "0", longitude = "0" } = Astro.locals.runtime.cf || {};
I gather you're using some cloudflare feature wrapped in astro to provide lat/long but I don't see the actual plumbing that gets it to you (and I did try to spelunk through a decent amount of documentation to find it). Can you elaborate?
gregsadetsky•6mo ago
You can enable a feature in Cloudflare which will inject the approximate user's lat/lng (based on their IP (and other factors?)) as an HTTP header added to the original request:

https://developers.cloudflare.com/network/ip-geolocation/

"This Managed Transform adds HTTP request headers with location information for the visitor's IP address, such as city, country, continent, longitude, and latitude."

dnlzro•6mo ago
There is no visible plumbing because it kinda is magic! Astro provides adapters for different server runtimes (e.g., Vercel, Cloudflare, Netlify), and it's basically just plug and play. The Cloudflare adapter exposes a bunch of bindings [1] through `Astro.locals.runtime`, which can be accessed during each request. The `cf` binding contains incoming request properties [2], including latitude and longitude.

These bindings (or at least some of them) are also mocked when developing locally, in a non-Cloudflare-Workers environment.

[1] https://developers.cloudflare.com/workers/wrangler/api/#supp...

[2] https://developers.cloudflare.com/workers/runtime-apis/reque...

cloudfudge•6mo ago
Great explanation; thanks.
Theodores•6mo ago
Any ideas on how to do this without the Cloud flare magic, so entirely in the client? Just based on time will suffice, with latitude approximated to somewhere such as London?
sudosteph•6mo ago
Looks pretty Carolina blue to me. Good job.
verelo•6mo ago
Feels like this would be great for fake skylights…
dehugger•6mo ago
Is this all done server side? I was shocked to inspect the page to discover zero js or even a stylesheet. Not so much as a single div. Very impressive.
mgdm•6mo ago
I have been meaning to do it for ages! I got as far as finding a paper on the topic and reading it and then forgetting all about it. Nice work.
joeyh•6mo ago
This reminds of of a web page that did this for Ithaca NY circa 1995. The page was a static hardcoded shade of grey.
j45•6mo ago
Neat tool, would love to be able to set the location when the registered IP location isn’t accurate.
ryukoposting•6mo ago
Would be cool if it considered current weather conditions. The sky is presently much grayer than what the site showed me.
jaharios•6mo ago
I refreshed the page, enabled js, refreshed again and again and finally I gave up thinking it is not loading because it was hugged to death. While reading the comments here it dawned on me that it was just a black background because it is night outside and the paged worked fine from the start...
jclarkcom•6mo ago
Very cool. We are launching a sensor that mounts on the inside of your window and measure the sky color for a small cone of the sky and transmits this to our skylight and window fixtures inside (see innerscene.com) so they can replicate exactly the same thing indoors. You could potentially use a computer monitor to do this, but it generally doesn't provide great light due to using RGBs instead of wide-spectrum sources.

One issue with the current code is it doesn’t model clouds, haze, or smoke so the rendered sky can differ from what you see outside (numerous HN comments notice this). You can partially correct for this by using semi-realtime satellite imaging but hard to get super accurate which is what pushed us to develop our own sensor. There are various CCT sensors on the market already but they only measure directional+diffuse+reflected light which is typically ~7500k but the sky color goes up to 40,000k.

Here is a plot showing the color of the sky as it changes during the day from real sensor readings. Each one is 30s apart, so it change change quickly. https://www.innerscene.com/built_pages/cs_specsheet/cct/cct_...

A bit more info as well: https://www.innerscene.com/SpecHelp/CircadianSky/cct/cct.htm...

meatjuice•6mo ago
This project looks amazing and fun. However, the website did not seem to take the cloudy weather at my current location into account, which is a bit of a disappointment.
lazystar•6mo ago
sunsetting in the monroe, wa area. only a month left to live out here, gonna miss it dearly
dddgghhbbfblk•6mo ago
I'll have to check this out tomorrow. I can tell you that black is not very accurate for my current conditions (midnight in Manhattan) but curious to see how it does in the day!
ComputerGuru•6mo ago
Ahhh you’re not taking light pollution into account!
natewww•6mo ago
that is really cool, thanks for sharing
kylegalbraith•6mo ago
Tid bits like this are why HN is still the best corner of the internet most of the time.

This is really cool. I’ll probably see if I can make it my new tab background in Chromium.

jama211•6mo ago
Ok this is incredible, it was exactly right, I did a double take!
mcintyre1994•6mo ago
This is really cool! And from skimming your code, TIL about Math.hypot!
tcumulus•6mo ago
Very cool! Might be interesting to combine this with cloud data or sunset forecast data from Sunsethue to create some sort of sky/sunset simulation. Well done!
fastasucan•6mo ago
This might be a stupid question, but is it the background of https://html.energy/html-day/2025/index.html that shows the current sky? I am a bit confused since neither the post or the github repo says so outright.

Edit: I think its this link: https://sky.dlazaro.ca/ OP - put it in the HN post and first on your github repo! Good work.

Biganon•6mo ago
Not often does a project make me think "adorable", and it's a compliment. Just lovely.
leokennis•6mo ago
Should anyone appreciate it, this Shortcut for your iOS/iPadOS device will set your wallpaper to the current sky based on this nice tool:

https://www.icloud.com/shortcuts/c8ba254a0272453cbe39357b144...

Just make sure that your last (or only) iDevice Home Screen is set to type “image”.

CodeVerseEx•6mo ago
Very cool concept. Would be great if there’s an option to tweak the gradient before copying, so devs can match it exactly to their design needs.
chrz•6mo ago
Fully black web page for me here. Well its correct
2OEH8eoCRo0•6mo ago
My sky is blue and orange right now though and your site shows black.
jama211•6mo ago
This would be cool on a fake window for your house, like a screen in a basement
bigwheels•6mo ago
Tried this out now- it's totally gray outside as far as the eye can see, but the sky.dlazaro.ca shows it as clear blue. I wonder where the disconnect / divergence is originating from! Super neat idea in concept :)