News for hackers. Stuff that matters.
Re:Show HN: I made a website to find best bus seat to avoid ... by qurashee on Wednesday January 17, 2024 @01:47AM (#39024115)
Twenty-three years ago, during my daily trips to the university campus, I had the exact same idea. However, I became distracted by calculating the position of the sun and delved into astronomical algorithms, which led me to never complete it. Kudos to you, that's really impressive!
Re:Show HN: I made a website to find best bus seat to avoid ... by addandsubtract on Wednesday January 17, 2024 @04:46AM (#39025593)
Getting lost on the 0.1% edge cases or improvements is why I never finish side projects, either.
Re:Show HN: I made a website to find best bus seat to avoid ... by berkes on Wednesday January 17, 2024 @05:08AM (#39025755)
I don't always manage to adhere to my own advise here. But talking to "customers" really solves this.

Half these customers can't be bothered by the edge cases that I've been poring over for nights. The other half puts forward edge cases that I've never been aware of. Some of which are critical to their work-flow. Many are implemented in mere minutes. "Wow. That saves us 30 minutes typing over prices, every day!".

As an engineer I love to find solutions. But as an entrepeneur I really must understand the problem and scope. that 0.1% edge cases is hardly ever part of the success.

Re:Show HN: I made a website to find best bus seat to avoid ... by cdong on Wednesday January 17, 2024 @11:35AM (#39029990)
Thanks for posting this, honestly the 0.1% scare me sometimes on technical project. I think you're right, just gotta talk to my customers directly if they even care about it.
Re:Show HN: I made a website to find best bus seat to avoid ... by chippiewill on Wednesday January 17, 2024 @06:59AM (#39026568)
I don't think getting the position of the sun is an edge case, it's a fundamental capability for the product to work at all
Re:Show HN: I made a website to find best bus seat to avoid ... by 83457 on Wednesday January 17, 2024 @08:06AM (#39027108)
I believe they meant edge cases when dealing with sun position calculations or maybe other things, not that the sun position is an edge case.
Re:Show HN: I made a website to find best bus seat to avoid ... by im3w1l on Wednesday January 17, 2024 @08:34AM (#39027422)
You could probably make a lookup table that works "well enough" in like a few hours.
Re:Show HN: I made a website to find best bus seat to avoid ... by madcaptenor on Wednesday January 17, 2024 @09:16AM (#39027938)
You could probably make it in a few minutes - the direction of the sun is, to a first approximation, 15 degrees times the number of hours it is after midnight. This leads to a trick for using an analog watch as a compass:

https://www.citizenwatch-global.com/support/exterior/directi...

https://www.watchaffinity.co.uk/blog/how-to-use-your-watch-a...

This is more prone to errors closer to the equator and in the summer (https://possiblywrong.wordpress.com/2012/01/25/using-a-watch...) but should be good enough for picking a side of the bus.

(This is all in the northern hemisphere; in the southern hemisphere the sun goes the other way, so change the sign on everything.)

Re:Show HN: I made a website to find best bus seat to avoid ... by shagie on Wednesday January 17, 2024 @09:36AM (#39028250)
The equation of time gets in there too if I recall correctly - https://en.wikipedia.org/wiki/Equation_of_time

> The equation of time describes the discrepancy between two kinds of solar time. The word equation is used in the medieval sense of "reconciliation of a difference". The two times that differ are the apparent solar time, which directly tracks the diurnal motion of the Sun, and mean solar time, which tracks a theoretical mean Sun with uniform motion along the celestial equator. Apparent solar time can be obtained by measurement of the current position (hour angle) of the Sun, as indicated (with limited accuracy) by a sundial. Mean solar time, for the same place, would be the time indicated by a steady clock set so that over the year its differences from apparent solar time would have a mean of zero.

And this gets into a neat part of the Clock of the Long Now and a cam needed to keep track of that over 10,000 years. https://longnow.org/ideas/the-equation-of-time-cam-keeping-g...

Re:Show HN: I made a website to find best bus seat to avoid ... by madcaptenor on Wednesday January 17, 2024 @09:54AM (#39028511)
The equation of time would be in there! But the largest that gets is about 16 minutes, corresponding to a 4-degree error in position, and there are much bigger sources of error. But thanks for the link to the Clock of the Long Now!
Re:Show HN: I made a website to find best bus seat to avoid ... by ngcazz on Wednesday January 17, 2024 @05:09AM (#39025759)
Writing the level editor for my raycaster is why I never wrote my raycaster
Re:Show HN: I made a website to find best bus seat to avoid ... by Amithv on Wednesday January 17, 2024 @07:18AM (#39026706)
The hard part was obtaining information such as solar azimuth, altitude, declination, hour angle, etc without using external APIs. Spent around 5 days implementing backend.
Re:Show HN: I made a website to find best bus seat to avoid ... by antgiant on Wednesday January 17, 2024 @11:00AM (#39029494)
Way too late now, but to help others this fancy Excel sheet provided by NOAA is awesome! It implements all of these equations in Excel and is pretty easily portable to your programming language of choice. https://gml.noaa.gov/grad/solcalc/calcdetails.html

P.S. Using this has made it clear to me how bad most sunrise/sunset calculators actually are.

Re:Show HN: I made a website to find best bus seat to avoid ... by grecy on Wednesday January 17, 2024 @01:33PM (#39031553)
> P.S. Using this has made it clear to me how bad most sunrise/sunset calculators actually are.

That may just be a function of how you define "sunrise" and "sunset". It is never as simple as "when the sun hits the horizon", but something about some number of arc minutes from something something.

Re:Show HN: I made a website to find best bus seat to avoid ... by wizzwizz4 on Wednesday January 17, 2024 @01:52PM (#39031787)
Dependent on the refractive index, which depends on air density and temperature and humidity too; and we have to integrate over the region between the horizon and the upper atmosphere (diagonally, of course)…
Re:Show HN: I made a website to find best bus seat to avoid ... by grecy on Wednesday January 17, 2024 @06:21PM (#39035049)
Haha, thanks ,yep. I learned all this when I lived in the Yukon and sunset takes about 2 hours...
Re:Show HN: I made a website to find best bus seat to avoid ... by antgiant on Friday January 19, 2024 @03:14PM (#39060472)
To be clear I was complaining that basically everyone calculates “sunrise” and “sunset” differently. If you check half a dozen different “sunset” calculators you will get a surprisingly wide variation in the times they provide. At least where I live the error seems to average 5-10 minutes.
Re:Show HN: I made a website to find best bus seat to avoid ... by grecy on Friday January 19, 2024 @08:19PM (#39063647)
> At least where I live the error seems to average 5-10 minutes

And what I meant was you are not seeing "error", it's just a difference in definition.

Re:Show HN: I made a website to find best bus seat to avoid ... by Gorgor on Wednesday January 17, 2024 @01:29PM (#39031495)
Calculating the solar position is also pretty important when simulating power production of photovoltaics plants. So, the Python library pvlib has nice functions for working with this: https://pvlib-python.readthedocs.io/en/stable/reference/sola...
Re:Show HN: I made a website to find best bus seat to avoid ... by manchego on Wednesday January 17, 2024 @03:57PM (#39033340)
For anyone wanting to do this calculation yourself, this site is really good: https://www.aa.quae.nl/en/reken/zonpositie.html

I've previously used the formulas on this site to calculate the altitude/azimuth of the Sun and all the planets from a given lat/long/time on Earth.

Re:Show HN: I made a website to find best bus seat to avoid ... by tppiotrowski on Wednesday January 17, 2024 @06:38PM (#39035219)
I'm not sure what you mean by external APIs but is there a reason you're not using SunCalc[1] on the client to process the route after it's returned from the routing engine?

[1] https://www.npmjs.com/package/suncalc