Friday, July 29, 2011

User preferences saved with user account

I did a quick upgrade last night. A few bugs were found immediately after the upgrade and needed to be fixed but no serious harm was done.

The upgrade includes revamped session and preferences storage. The user-visible change is that user preferences are now stored in the server backend and attached to your user account if you're logging in when saving the preferences. They will be used on other computers, browsers and mobile devices as long as you're logged in with the same account.

The preferences can still be saved if you're not logged in, in which case they're attached to a browser cookie.

A less visible change is that the settings and session cookies set in the browser are now much shorter - just random keys, instead of containing the whole settings or session data. This makes the HTTP requests smaller, which improves network performance marginally. On a slow mobile connection it might actually make a difference.

I don't have a related photo to attach, so kittens it is again! Buxus and Brassia, aged 6 weeks.

Tuesday, July 26, 2011

New view filters, alerts, out-of-order packet filtering and other features

I've just finished installing a rather large upgrade on The upgrade comes with a couple of noticeable new features which everyone should get familiar with, a bunch of smaller style fixes and some tiny bug fixes. The web service was down for a while due to the database schema changes and engine upgrades. Only very little APRS data was lost - APRS-IS traffic was buffered during the database maintenance and processed later when the database was up again.

Here's a list of the major changes:

Complex but easy filters:

The old filters (APRS, AIS, Items+objects, WX) in the Preferences have been replaced by a whole new Filter tool button on the right side of the tool bar. It's the one which tries to look like a funnel (I'll have to work on the symbol image to make it more obvious).

Let's do a little exercise to get you started!

Deselect the All stations filter, so that no stations are displayed. Then enable the Station type: Weather filter and you'll only see stations transmitting weather data.

Next, continue by enabling Station class: APRS stations. At this point you'll see both APRS stations and weather stations, which doesn't make much sense since all the weather stations are also APRS stations. But it starts to make sense again if you click the red downward-pointing arrow for the weather stations, which throws them to the bottom of the list, in the red "AND NOT" department, effectively removing them from the display.

Now, click on the plus (+) button to add your own fancy filters to the list. For example, it's possible to create a filter which only shows APRS stations using Kenwood radios which are also acting as Digipeaters, but do not have a callsign starting with "OH2". That filter can then be used in the green "display any of these" side of filters (think of logical OR if you're into programming) or the red "but not these" side (think of AND NOT).

Once you're finished designing your favourite filter list, use the Save button to save it to a new named list. The default filter will reset to it's factory settings every time the map opens (so that you'll see something if you get lost with the filters). The filters are saved together with your user account, so you'll need to log in to save them. The upside of this is that you can easily use your preconfigured filters on many computers and even mobile devices!

Personally, I've set up several commonly used filter sets in my named lists, such as "Infra" for network infrastructure: digipeaters, igates, and "Moving" for stations which have their speed larger than 2.

New graphing engine:

Telemetry, weather and station graphs are displayed by a new third-party graphing engine instead of a homebrew one. The new engine reduces load on my servers (and adds some on the web browser's side, but that's OK since there are thousands of those against my 2), generates prettier line graphs, and will enable some really fancy interactive features in the future!

Station activity alerts:

This feature is mainly for digipeater and igate operators. It lets you know by email if your station stops working, or when it starts working again. Very handy especially if you're like me and maintain digipeaters far away from your home and would not otherwise notice when they go "kaput".

Click on the Favourites (star) tool button, then select My stations and bookmarks. Add your digipeaters in the Stations I follow list, and then click Settings for each of them and tune the timings.

Please note that due to APRS-IS duplicate filtering often does not get to know when your igate or digipeater hears a packet and repeats it. It's a good idea to set the "has not heard station" alert for a very long timer such as 24 or 48 hours, and then go down or up from there depending on the amount of false alarms!

An additional duplicate packet filter algorithm:

In addition to the old filtering methods, out-of-order and duplicate packets are now filtered using APRS timestamps embedded in the packets. If a packet comes in that has an older timestamp than the previous packet, it is promptly discarded. This should be a very effective duplicate filter when timestamps are transmitted by the tracker.

The raw packets display can now also display the decoded timestamp when using the Decoded mode.


Since most people come to to look up a station's position, the callsign search box has been moved up on the right-side panel, and the time range selector has been moved down.

The real-time map displays a nice "loading" image until station data has been first received from the servers.

Buttons now have a prettier and consistent style everywhere. Some other layout and style tunings have been applied, too.


The real-time map's content reloading logic has been improved. It should now be more responsive when panning and zooming around. There's still a small bug in there - sometimes stations are not reloaded on the map when the filters are changed at precisely the right time. Oh well.

The sortable tables were not working in many views. Now they are. Click on table column headers to sort, ascending or descending.

PHG overlays are now correctly hidden when zooming out to area activity view.

The duplicate stations API bug was fixed.

As always, some smaller ones were fixed too. I also did some profiling and optimisation of old code, hoping to keep the performance of the code on similar level as before, even though new features were added in the critical code path.

Upgrades of third-party components:

Web server software, some operating system components, database engine, etc.

Post a note on the discussion group when you find a bug - this is such a large upgrade that I'm certain quite a few things don't work quite right from the start.

As usual, there are translations which need to be updated with the new features. Thank you for your ongoing support!

Wednesday, July 6, 2011

Partial network outage, July 5 - July 6 suffered a partial network outage last night (July 5 21.37 UTC - July 6 5.03 UTC). A gigabit Internet uplink was lost for the duration of maintenance by an ISP and the alternative path didn't quite provide all of the Internet's routes over BGP. Investigation continues.

The outage caused trouble for many to view the site, and some APRS data collection problems. The stats page gives a hint of the scale of the problem:

About 50% of the viewers disappeared. It would seem like regular APRS-IS data was collected just fine, but some CWOP data was lost. There are a lot of alternative routes that the data collector can take to get to the APRS-IS, and that seemed to work.

Sorry for the trouble.