[MacPorts] #72625: hamclock: make a port for Hamclock project
MacPorts
noreply at macports.org
Fri Jun 27 19:30:14 UTC 2025
#72625: hamclock: make a port for Hamclock project
-----------------------+--------------------
Reporter: JDLH | Owner: (none)
Type: request | Status: new
Priority: Normal | Milestone:
Component: ports | Version:
Resolution: | Keywords:
Port: hamclock |
-----------------------+--------------------
Comment (by pidloop):
Oh absolutely, dynamic sizing would be great, and is one of the most
popular requests I get. But because HamClock began life on a tiny embedded
environment it would be almost a complete rewrite.
All of the images, maps and fonts are stored as pointers that get aliased
to memory blocks at compile time. To do this at runtime would mean
''everything'' for ''all'' sizes would have to be in memory, along with
corresponding changes to temporary storage array sizes that come and go
and must match. So even the smallest 800x480 would have to carry
everything for 1600x960, 2400x1440 and 3200x920 images etc, which would
prevent running on the smaller boards such as Raspberry Pis.
There's also the issue of graphics resolution. HamClock draws all its
graphics by itself, it uses no libraries. So changing sizes also requires
changing resolutions for the Bresenham algorithms, adapting image pixel
resolutions, the home-grown techniques for jaggie reductions, and more, on
the fly.
Another issue is that hamclock sends requests back to my server for all
the real-time images and data. The replies are tailored to match the
resolutions of the requesting size. If the request sizes from a given IP
were to change dynamically, the backend caching algorithms would break
causing increased load on my server. I already have to use a 16 core
monster with 8 TB of RAM in order to handle the 10k hamclocks running out
there every day. Plus, there are clocks that have been running for several
years, so I would also need to maintain the existing serving mechanisms
while growing the new set in parallel, further impacting performance.
Since I pay for the server out of my own pocket I'm not keen to require a
larger server.
Would I architect it this way if I started today? No way! But such
contortions are not so rare for a program that has morphed several times
over a decade.
In short: easy to ask, hard to do.
--
Ticket URL: <https://trac.macports.org/ticket/72625#comment:14>
MacPorts <https://www.macports.org/>
Ports system for macOS
More information about the macports-tickets
mailing list