
Flight stats, entertainment, and trying to crack Widevine - jonluca
https://blog.jonlu.ca/posts/aa-tracker
======
UI_at_80x24
This is the very long tail of non-metric conversion that drives me insane.

This date format is unforgivable: "td_id_fltdata_date": "00181219",

(1) add in leading 00 to allow for Y2k expansion (and then ignore it)

(2) DDMMYY This is unnecessarily "difficult" for a human and a computer to
sort and parse. Using ALL the same number of digits and following ISO 8601
already solves this (and with the padding 00's you don't need to touch this
part of the software for 7900 more years!)

20191218 - Done. This can only be a holdover from a pre-PC era.

Some industries move at a glacial pace when updating standards and tools. The
risk to lives because of screwups (i.e. a faulty radar at Air Traffic Control)
is too great to do without sufficient study and experimentation. But this can
only be an unwillingness to change.

~~~
GhettoMaestro
Props to you for citing ISO 8601. Most folks don’t care :(

~~~
beefhash
It doesn't help that getting a copy of the actual standard costs an arm and a
leg[1,2], especially if you want both parts of the 2019 edition.

[1]
[https://www.iso.org/standard/70907.html](https://www.iso.org/standard/70907.html)

[2]
[https://www.iso.org/standard/70908.html](https://www.iso.org/standard/70908.html)

~~~
ChrisSD
To be fair nobody* actually uses final ISO standards even if they refer to
them. I think JPEG is an example of where the "draft" became the de facto
official standard because that's what everybody used instead of paying for the
actual standard.

------
o-__-o
Panasonic holds an almost monopoly on aircraft inflight entertainment,
especially on widebody planes. They run redboot Linux and have a pretty strict
firewall between the plane and computer. All of what the author did was
expected by the Panasonic devs hence the disclaimer.

Ads-b carries a lot of this data (at a lower interval) and is available to
anyone with an antenna. Sites like FlightAware will republish it as graphs or
maps. There also exist apps that take ads-b data and renders flight data in a
google earth type view.

A part of me is really excited that we live in this time, but I’m living in
constant fear that open data will disappear one day, so enjoy while you can!

~~~
lima
> Panasonic holds an almost monopoly on aircraft inflight entertainment,
> especially on widebody planes. They run redboot Linux and have a pretty
> strict firewall between the plane and computer. All of what the author did
> was expected by the Panasonic devs hence the disclaimer.

Probably got tired of people reporting it as a vulnerability and added the
disclaimer.

~~~
o-__-o
Fun fact: a gentleman on a united flight found this data and tweeted saying he
hacked the plane. An investigation kicked off and this disclaimer was added.

------
nayuki
> I’ve never dealt with lat/long being formatted this way, so if you know how
> to parse it let me know!

I interpret departure_latitude = 39.525° N, departure_longitude = 75.135° W.
Google Maps shows this to be Parvin State Park near Philadelphia.

Looking at your big JSON dump, I noticed these fields:

    
    
        "td_id_gmt_offset_departure": "80005.00",
        "td_id_gmt_offset_destination": "00001.00",
    

This suggests that a leading 8 (strangely in decimal rather than hex?) means
negative sign. So your departure time zone was UTC-5 and your destination time
zone was UTC+1.

~~~
DocOtak
Almost, it is actually a degree concatenated with decimal minutes: 39525 ->
39° 52.5'N; 75135 -> 75° 13.5'W

~~~
jsjohnst
Are we sure that:

00039525 doesn’t become 00°03’95.25”

And

80075135 doesn’t become 80°07’51.35”

I’m not an expert in this field, but that seems to make sense to me. Very
possibly I’m entirely wrong too.

~~~
m11a
The two parent comments seem correct.

The 8 is a negative. i.e. it turns N into S, and E into W.

The last 5 digits are in DDM format, the first two being degrees, and the last
3 being XX.X minutes.

You can verify this using
[https://www.pgc.umn.edu/apps/convert](https://www.pgc.umn.edu/apps/convert)
and plugging in the departure and arrival airport coordinates. The arrival
long/lat matches up with the exact coordinates for AMS airport in the same
format. This isn't true if you interpret the coordinates in another standard
way from what I can see.

Edit: Your interpretation would suggest that PHL airport is in the Indian
Ocean.

~~~
jsjohnst
> Your interpretation would suggest that PHL airport is in the Indian Ocean.

Depends on how you use the numbers. If you assume the ~0° as W and the ~80° as
N, that puts it over Greenland, which can be on the flight path between Philly
and Amsterdam.

I missed the context of it being the specific coordinates of the airport,
rather than on the flight path between, otherwise I’d have probably came to
the correct conclusion on formatting like you did. Ty!

------
kozak
Would be cool to be able to see some kind of a "geek passenger instrument
panel" with this information during flight. This would definitely influence my
choice of an airline.

~~~
jonluca
Yeah for a while a few years back some airlines would include the camera view
of the aircraft from the in seat screen.

With the transition to wifi entertainment that seems to have been lost, but
would be pretty interesting to make a timelapse or be able to create a
personalized dashboard from the raw data.

~~~
elygre
That, and sometimes you could listen in on the radio traffic.

Which was awesome until that time across Newfoundland, when someone started
asking about the heavy turbulence. The other aircraft in the vicinity had no
consolidation, recommending to “strap’em in and ride it through”. I spent the
next several hours waiting for my worst flight, which never even happened.

------
progman32
Found the same thing a few years ago. Was a fun pastime getting the eta up on
my desktop environment's status bar without having internet based
documentation. From memory I used curl and jq.

------
rkochman
"...what the weight on the wheels is..."

Small nit, but weight-on-wheels is also a boolean.

------
ebbflowgo
Neat to see the altitude over time graph

~~~
aivisol
Which fluctuates only within some 25feet range, not bad at all.

~~~
huffmsa
Which is just about 1.5x the external height of the fuselage.

~~~
Gunax
I have always been shocked how accurate altimeters are. Although I understand
the math and physics, I am intuitively shocked that a device can measure
differences of 10 meters.

------
layoutIfNeeded
The graphs are not loaded on iOS.

~~~
jonluca
Interesting, you're right. I wonder why - They're just `iframe`s from Google
Sheets - no custom rendering or html.

I'll do some research, thanks for pointing it out.

Update: added a fallback to images using:

``` const iOS = /iPad|iPhone|iPod/.test(navigator.userAgent) &&
!window.MSStream;

// iOS doesn't load google sheets embeds for some reason :/ if(iOS){ const
toReplace = document.querySelectorAll('.aa-image'); for(const image of
toReplace){ const imageUrl = image.id; image.outerHTML = `{% include
image.html file="${imageUrl}" alt="${imageUrl}" %}` } } ```

~~~
chucksmash
Perhaps clickjacking countermeasures[1].

[1]:
[https://cheatsheetseries.owasp.org/cheatsheets/Clickjacking_...](https://cheatsheetseries.owasp.org/cheatsheets/Clickjacking_Defense_Cheat_Sheet.html)

------
niix
This is rad.

