<feed xmlns='http://www.w3.org/2005/Atom'>
<title>prognosis.git/internal/render/chart.go, branch v0.1.4</title>
<subtitle>hour-by-hour terminal forecast in Go with official IMGW warnings for Polish locations, no API key, no dependencies</subtitle>
<id>https://git.labunix.xyz/prognosis.git/atom?h=v0.1.4</id>
<link rel='self' href='https://git.labunix.xyz/prognosis.git/atom?h=v0.1.4'/>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/prognosis.git/'/>
<updated>2026-08-25T14:09:31Z</updated>
<entry>
<title>chart: label a narrow axis in decimals</title>
<updated>2026-08-25T14:09:31Z</updated>
<author>
<name>Lukasz Kasprzak</name>
<email>lukas@labunix.xyz</email>
</author>
<published>2026-08-25T14:09:31Z</published>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/prognosis.git/commit/?id=fb1d31fdcd5d5c8b31bb098c34143996d47e618f'/>
<id>urn:sha1:fb1d31fdcd5d5c8b31bb098c34143996d47e618f</id>
<content type='text'>
A span of 1.2 degrees rounded to whole degrees printed "15" against both the
middle and bottom rows, so the axis asserted that two rows drawn at different
heights were the same temperature. It reads as a rendering fault, and the scale
becomes useless exactly when the chart is at its most magnified.

Below a two degree span the labels carry one decimal. Two degrees is where
five rows put adjacent labels half a degree apart, which still rounds apart;
below that they collide. A decimal label that would not fit the gutter -- well
below freezing, where the minus sign costs a column -- falls back to whole
degrees, which is wrong but legible and beats shearing the column.

The gutter widens by one to hold "16.0°".
</content>
</entry>
<entry>
<title>Initial commit: prognosis, the Go implementation</title>
<updated>2026-08-13T11:04:10Z</updated>
<author>
<name>Lukasz Kasprzak</name>
<email>lukas@labunix.xyz</email>
</author>
<published>2026-08-13T11:04:10Z</published>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/prognosis.git/commit/?id=e14a7db4ffe3c4e0f15f6b37a980501a8d74d26b'/>
<id>urn:sha1:e14a7db4ffe3c4e0f15f6b37a980501a8d74d26b</id>
<content type='text'>
An hour-by-hour forecast for the terminal, with official IMGW warnings for
Polish locations. Replaces the Python version, whose cache file format it
keeps so the two can coexist until this reaches parity.

Open-Meteo provides the forecast, geocoding and pollen; GUGiK turns
coordinates into a TERYT powiat code; IMGW supplies the warnings, filtered
to that powiat rather than the whole country. Only the two lookups that
never change are cached. Forecasts never are.

Silence is never allowed to read as all-clear: "no warnings in force" and
"the check failed" are reported as distinct states.

Place names are resolved without guessing. A name matching several places
is refused with a numbered list carrying each candidate's region and
coordinates, and -pick N chooses one and remembers it. A stray positional
beside -l is an error, so an unquoted "Wiry, PL" cannot silently resolve to
somewhere else.

The cache is written one entry per line with sorted keys, and treated as
disposable but not worthless: an entry that will not parse is skipped and
the rest kept, and a file that will not parse at all is moved to
cache.json.bad rather than overwritten.

No third-party dependencies. `make ci` is the gate: gofmt clean, vet, tests.
</content>
</entry>
</feed>
