Getting underway with the "move my #CGHMN server to real hardware" project. The poll I posted a few days ago said y'all wanted me to run OpenBSD 3.0, but I found that it didn't work well with my hardware so I settled for Linux. Although I'm doing something interesting: I'm running #LinuxFromScratch! Specifically LFS 3.3. After solving the performance problems I was having with the VIA C3 CPU, the bottleneck at this point seems to be the CF card I'm using for storage.

#RetroComputing

I'm considering moving my main #CGHMN server from a QEMU VM to some real vintage hardware. I'm considering two OS options:

* OpenBSD 3.0: current VM OS, has some novelty value, and I own a physical copy
* Slackware 8.1: more practical benefits, easier to find software and docs for

What do you think, #RetroComputing Fedi? 

OpenBSD 3.0 🐡
62.5%
Slackware 8.1 🐧
37.5%
Poll ended at .

Tomorrow's Weather on Yesterday's Computers

For most of the last month, I've been working on a retro-friendly weather forecast website for #CGHMN. I decided to develop the site itself using a modern LAMP stack due to the need to call modern APIs for weather data, although the output is pure HTML 3.2 without a single line of JavaScript.

Before I wrote any code, I commissioned my friend @[email protected] to make a logo for the site. Someone on Fedi suggested a retro computer with an umbrella, so we went with that. I used the Google color emoji set for placeholder art to represent various weather conditions with the expectation of replacing them with original work later. (as I write this, @[email protected] has offered to make some)

I decided to use the Open-Meteo API for forecast data. They don't provide local observation data though; their current conditions are model estimates. I wanted to provide accurate info, so I figured my best bet would be to pull and parse METAR reports from the US's NOAA. I set up a MariaDB database to hold a list of all the available weather stations with their coordinates (from OurAirports ) and most recent report, and made a cronjob to update them all every hour. I used Safran Cassiopée's php-metar-decoder to handle decoding, and wrote a little function to convert the current conditions reported to a generally-equivalent WMO 4677 code.

Since Open-Meteo needs a set of geographic coordinates to get local forecasts, I needed a geocoding solution. They offer a geocoding API based on GeoNames data, but I wasn't entirely happy with it. I ended up loading the GeoNames datasets directly into my MariaDB server and setting up the code to query that. This was the first time I'd dealt with a ~5 million-line database, so I had to learn a bit about indexing and optimization to get it to perform decently.

Next, I wanted to have a list of current weather conditions for major world cities on the landing page. I decided to include six cities from each continent, though it was a bit tricky to determine which ones to pick. I asked Fedi for some recommendations. The end goal was to give an at-a-glance summary of weather around the globe. Of course, in addition to picking which cities to use, in most cases I also had to figure out which airport to take a representative report from. I generally went with whatever was closest to the city center, rather than the largest or busiest.

With current and future weather settled, the next thing I wanted to add was radar. The need to work worldwide complicated things but some of the folks in the CGHMN IRC chat pointed me to Rain Viewer, which offers a free API. It's a bit slow but it did what I needed. They only provide the radar data itself though, so I was still on my own to come up with a base map. For that I chose Thunderforest, who provide an API based on OpenStreetMap data. Thankfully both APIs used the same arguments for location and scale factor so they meshed together well.

I experimented with a few different layouts for the forecast info, first trying a table with days as rows and hours as columns, then a format suggested by Loganius on CGHMN with days as columns, before ultimately settling on a simple row of daily summaries. To provide detail, I set up a separate page with a set of graphs showing hourly forecast data for a three-day period. I used PHPlot to draw the graphs server-side. The library hasn't been updated since 2015 but it still works with PHP 8.4, surprisingly enough. I based the layout of the graphs on the ones on the US National Weather Service's site. Most of the plotting was handled automatically by PHPlot but I had to write a few custom callbacks for the wind barbs and nighttime indicators.

At this point the site is essentially done, though I've been thinking about other meteorological information I could provide. It all depends on what I'm able to find free or reasonably-priced APIs for. I'm a bit inspired by the NCAR Research Applications Laboratory site, though that's strongly US-centric and I'm aiming for world coverage.

#blog
@camless Yep! It's a weather forecast site for vintage computers. http://weather.retro on #CGHMN

🟢 PurpleJillybeans just went live on Owncast!

Quake 3 Arena (1999) | Playing on CGHMN!

#owncast #streaming #goinglive #livenow #videogames #fedilive #RetroGaming #CGHMN #LinuxGaming

https://owncast.n8fq.org

Upcoming #RetroGaming events!

* TONIGHT, 0100 UTC/9 PM EDT: #Quake3Arena on #CGHMN! We'll be playing version 1.16n and there's a possibility some folks on #Dreamcast will join in!

* SATURDAY 11 April, 1900 UTC/7 PM CEST: #UnrealTournament #UT99 for #FediverseFragNight!

One of the network goals for #CGHMN has been better global availability. We put a server in the US, Europe and Australia. You connect to your closest node and benefit from less latency to local peers and less transit latency from a datacenter backbone versus your ISP's cheap as fuck peering

Except for some reason OVH *will not rent* servers out of their Sydney datacenter to Americans. Only Australians

Why the fuck they'd rather have servers sit powered off not making money is beyond me, but

So, lots of PCs and a few Macs on #CGHMN so far. Has anyone gotten on with their #Amiga or #AtariST yet?
✔️ 🗻

#RetroComputing

I have it up on my #CGHMN site if anyone wants to play with it there:

http://www.n8fq.retro/java_metars

It's still getting its data from NCAR's server for now (updated half-hourly with a cronjob) but I'll eventually work on REing it and ingesting from a more permanent source.

My latest frivolous #RetroComputing project: a #Kiwix ZIM reader for vintage web browsers.

If you're curious, it's on #CGHMN at http://kiwix.n8fq.retro

Edit: Source at https://codeberg.org/PurpleJillybeans/zimget