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 aprs.fi. 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 aprs.fi 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.

Facelifts:

Since most people come to aprs.fi 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.

Bugfixes:

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

aprs.fi 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: http://aprs.fi/stats/daily

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.

Wednesday, June 22, 2011

Map of the APRS-IS

Have you ever wondered what the APRS-IS looks like? Well, here you go (click on the link, 1.2 megabytes, 3154 x 3072 PNG image):

Map of the APRS-IS

  • Servers with less than 5 clients are not shown.
  • Only servers running javAPRSSrvr are shown.
  • Darker colour indicates more clients connected.
  • Green servers are core servers, orange ones are T2 hubs, red ones have a T2* name (most of them belong to the Tier2 network), purple ones are WXQA servers, the rest of them are blue.
  • Inter-server links between hubs and core servers are blue, the rest of the links are green.
Another project I'm working on: we've got 6 ocicat kittens!  I've set up a live kitten camera. Cheap Chinese webcam (foscam) + ffmpeg + ffserver does the trick.


    Sunday, June 5, 2011

    Wed 8 June: World IPv6 Day

    On 8 June, 2011, Google, Facebook, Yahoo!, Akamai and Limelight Networks will be amongst some of the major organisations that will offer their content over IPv6 for a 24-hour “test flight”. The goal of the Test Flight Day is to motivate organizations across the industry – Internet service providers, hardware makers, operating system vendors and web companies – to prepare their services for IPv6 to ensure a successful transition as IPv4 addresses run out. (source: World IPv6 day)

    I'm happy to announce that aprs.fi is also taking part in this experiment, where IPv6 support is suddenly enabled for a large amount of high-profile web sites. Please note that IPv4 support will not be disabled during the experiment. I'm only adding the IPv6 AAAA DNS records for the main aprs.fi site, instead of having it as a separate entry on ipv6.aprs.fi.

    If you find that aprs.fi stops working for you on Wednesday (give or take a day to allow for timezone differences), you'll also soon find a large number of other sites not working. Your network operator's network does not support web sites which provide service to both IPv4 and IPv6 users. According to statistics made by Wikimedia on the Wikipedia site, this will hit about 0.3% of users. If you happen to belong to this group, it's important for your network operator to realize that this will eventually become a permanent situation. Your network needs a little fixing.

    You can prepare for the World IPv6 day by visiting one of these two testing sites: simple "OMG" version and verbose.

    More information about the event on the World IPv6 day site. Happy IPv6 day, everyone!

    Saturday, June 4, 2011

    New map viewers record


    Yesterday afternoon aprs.fi made a new record: there were well over 3000 users viewing the real-time map at the same time. Almost all of them were displaying the embedded map on the Copenhagen Suborbitals Launch Campaign June 2011 page. The guys built a rocket, capable of taking 1 man to the edge of the space, and did their first successful test flight yesterday. Awesome.



    The launch campaing page's embedded APRS map shows the position of the Sputnik launch platform. The platform hosts a custom APRS tracker designed and built by OZ1EKD and OZ7HVO.

    I was happy to see that aprs.fi did well with the larger amount of visitors. They were all looking at the same station, and the caching worked well - the database really didn't get any additional queries due to the amount of viewers. I was able to find some spots where additional optimization would be useful and could take down the CPU usage of the web service considerably. Here are some graphs from one of the two servers:

    Sunday, May 15, 2011

    aprs.fi caps & shirts


    Just in time for the trip to Dayton Hamvention. :) I wonder if anyone would like to actually buy these?