The news of https://aprs.fi/ - new features and interesting attractions found in the APRS and AIS worlds.
Sunday, February 17, 2008
Small fixes in the translation tool
This morning I did some small improvements in the aprs.fi translation tool. It now gives some feedback when buttons are pressed (like "Saved changes!"). It works better with strings containing " and ' characters (there was a little escaping bug in the HTML generation). It shows string-specific descriptions and translation hints (which have existed for quite a while for some strings). It also cleans up some extra whitespace from the translated strings, and uses a multi-line editing text box for strings longer than 90 characters.
Thursday, February 14, 2008
Danish and Spanish APRS!
EA4EKS and EA2BVF have worked on a translation of aprs.fi to EspaƱol, while OZ2LPA and OZ5ACU have been translating the site to Dansk. This brings the total amount of languages to 14!
A lot of other people have been contributing updates to the existing languages, too. On behalf of the non-English-speaking 55% of aprs.fi users, a big THANK YOU to everyone involved in the translation work!
Between 14th of January and 13th of February 2008, 45% of aprs.fi visitors preferred the English language.
A lot of other people have been contributing updates to the existing languages, too. On behalf of the non-English-speaking 55% of aprs.fi users, a big THANK YOU to everyone involved in the translation work!
Between 14th of January and 13th of February 2008, 45% of aprs.fi visitors preferred the English language.
Monday, February 11, 2008
Second server in use! Hooray.
The new server has been taken into use just a few minutes ago. This should maintain the high speed and performance of the aprs.fi service while the amount of users keeps increasing. Please drop a comment if I broke something on the way!
The servers are currently sharing load using database replication and DNS round-robin. The setup isn't really highly available or fail-proof. If one server breaks, the service will not function properly until I do corrective actions (remove the broken server from the DNS and possibly start the master APRS data collecting processes on the secondary server, if the primary dies). But at least that'll only take a few minutes to do, instead of a lengthy hardware repairing and backup restoring process.
There's also a third online replica of the database for the purpose of taking database backup snapshots on a third server (thanks ZFS on Solaris 10). So even if erroneous data is propagated over the replication and data is corrupted on all of the running database servers, I'll be able to roll back to an older snapshot and avoid losing all of the history data.
I'll continue working on automatic fail-over - it'd be nice if a hardware problem wouldn't cause much of an outage. I've done this sort of things before at work, so the plan is quite clear, it just takes some time to do it properly.
The servers are currently sharing load using database replication and DNS round-robin. The setup isn't really highly available or fail-proof. If one server breaks, the service will not function properly until I do corrective actions (remove the broken server from the DNS and possibly start the master APRS data collecting processes on the secondary server, if the primary dies). But at least that'll only take a few minutes to do, instead of a lengthy hardware repairing and backup restoring process.
There's also a third online replica of the database for the purpose of taking database backup snapshots on a third server (thanks ZFS on Solaris 10). So even if erroneous data is propagated over the replication and data is corrupted on all of the running database servers, I'll be able to roll back to an older snapshot and avoid losing all of the history data.
I'll continue working on automatic fail-over - it'd be nice if a hardware problem wouldn't cause much of an outage. I've done this sort of things before at work, so the plan is quite clear, it just takes some time to do it properly.
Saturday, February 9, 2008
Telemetry, wildcards and new strings
This morning I installed APRS telemetry support on the production server. Some APRS stations use the telemetry protocol to transmit things like temperature (inside, or measured from the heat sink of a transmitter), battery voltage, or number of transmissions by a digipeater. Some also send states of switches or relays. For example, take a look at the telemetry data transmitted by the digipeater VK5RAC-1, or the DIGI_NED digipeater PI1APA.
I've also implemented wildcard searching in the weather and telemetry views. Should help you in finding weather and telemetry-enabled stations in your area.
These features added some strings which need to be translated. I also did some changes in the weather and info page strings, making it possible to translate some more of them, and to make more proper translations for some languages (more complete sentences translated). I'll continue this task later.
I also installed the new server in a co-location site a couple days ago, and I've been testing it under high load and benchmarking different disk and database configurations. Going to take it into use this weekend, I hope!
I've also implemented wildcard searching in the weather and telemetry views. Should help you in finding weather and telemetry-enabled stations in your area.
These features added some strings which need to be translated. I also did some changes in the weather and info page strings, making it possible to translate some more of them, and to make more proper translations for some languages (more complete sentences translated). I'll continue this task later.
I also installed the new server in a co-location site a couple days ago, and I've been testing it under high load and benchmarking different disk and database configurations. Going to take it into use this weekend, I hope!
Monday, February 4, 2008
Terrain maps and fixed rain graphs
I just added the new Terrain map feature of Google Maps, and changed to the hierarchical map type control (thanks VK2HIM). The Hybrid selection has become a "Show labels" selection under the Satellite map type. The terrain map looks very pretty in the mountains, and offers a less cluttered option elsewhere.
The Ham::APRS::FAP APRS parser module had a bug in weather packet parsing - the "last 24 hours" and "since midnight" rain values were mixed. The bug has been fixed in FAP version 1.02, which has now been installed on aprs.fi.
The Ham::APRS::FAP APRS parser module had a bug in weather packet parsing - the "last 24 hours" and "since midnight" rain values were mixed. The bug has been fixed in FAP version 1.02, which has now been installed on aprs.fi.
Friday, February 1, 2008
Outage: Building redundant setup
I'm taking the database down today for some time. I need to take a new consistent copy of it to enable transaction logging and replication to the new web server and a backup server. Sorry for the trouble.
The new server should be delivered today, by the way.
The new server should be delivered today, by the way.
Tuesday, January 29, 2008
Running SBS-1 BaseStation on Linux

This is slightly off-topic, but you can probably guess why I'm interested in this stuff. There's been discussion on the forums whether you can run BaseStation on Linux, but I couldn't find the answer on the web, so I'm posting it here after finding out myself.
I bought myself an SBS-1 (by Kinetic Avionic Products) for a Christmas present. I've been running the BaseStation software on Windows so far, but that's not fun if you want to run it remotely.
So, tonight I tried to run it in Linux on top of Wine. It worked. Here's how:
1. Install a recent version of wine, and practically any versions of the old but incredibly useful tools nc and cu. On my Debian system this can be done using the command apt-get update && apt-get install wine nc cu. I'm runnig debian testing (lenny, in January 2008). This probably applies to Ubuntu, too.
2. Run some other Windows software with wine first, get it configured on your account and see that it actually runs something successfully.
3. Download the BaseStation CD which contains the driver DLLs. The driver DLLs are not really used, but they have to be present on the system so that BaseStation.exe will run.
4. Extract the DLLs from the CD in a temporary directory, and copy them to the system32 directory of your wine installation:
mkdir tmp && cd tmp
unzip ../BaseStation-1-1-1-119-CD.ZIP '*.dll'
mv *.dll ~/.wine/drive_c/windows/system32/
cd .. && rm -rf tmp
5. Download the latest version of BaseStation (I tried 1.1.1.125).
When wine is properly configured on your system, Firefox will run the wine-safe installer for the EXE file automatically, and basestation will be installed. If this doesn't happen, you might have to run the installer by hand (wine-safe setup.exe). After the installation, the installer will quit. Don't run BaseStation yet.
6. The application apparently cannot talk to the USB bus under wine, so we'll have to do a trick here. Connect the SBS-1 to the USB port of your Linux system, and observe the output of the dmesg command - it should notify you that an USB serial port has been found. On my system it looks like this:
usb 2-2: new full speed USB device using uhci_hcd and address 5
usb 2-2: configuration #1 chosen from 1 choice
ftdi_sio 2-2:1.0: FTDI USB Serial Device converter detected
drivers/usb/serial/ftdi_sio.c: Detected FT232RL
usb 2-2: FTDI USB Serial Device converter now attached to ttyUSB0
Now, the SBS-1 hardware can be reached behind /dev/ttyUSB0 at 921600 bits per second. We could connect to it using the very simple Unix "call up" program cu --nostop -s 921600 -l /dev/ttyUSB0, but we cannot talk the proprietary binary protocol used by the SBS-1 and the BaseStation software. Yet.
7. So, we run cu under another very simple and extremely useful Unix tool, nc, which is the swiss army knife of TCP/IP. We tell nc tolisten on TCP port 19251 using the localhost IP address of 127.0.0.1 (so that it cannot be connected by anyone from the Internet), and to start up the cu program when a connection arrives:
nc -l -s 127.0.0.1 -p 19251 -c "cu --nostop -s 921600 -l
/dev/ttyUSB0"
8. Now, while we have nc waiting for the connection, we can start up BaseStation in another window:
wine .wine/drive_c/Program\ Files/Kinetic/BaseStation/BaseStation.exe
Tell it to connect over the network, the address is 127.0.0.1, and the port is 19251.
There's no reason why you couldn't do this over the Internet, either. You might want to run cu under inetd instead of nc, though, since nc will quit when the connection closes. Remember to set up your firewall / tcp wrappers properly!
Subscribe to:
Posts (Atom)