https://www.nats.aero/news/nats-report-into-air-traffic-cont...
Couldn't agree more, not even interested in debating it
And it's mostly a holdover from legacy systems airlines are entrenched in, so there isn't much else anyone can do here short of completely reinventing the mainframe reservation systems and heavily refactoring all the pieces that depend on it.
This is commonly called "software maintenance". I believe that most places have contracts to keep software up to date for changing specifications/operating systems.
Given that the industry has rejected the natural but very expensive solution, and that airlines exist in a connected space, this information is shared with partners and external parties so they can't just change their internal systems, it doesn't seem like there are too many solutions.
One solution could be to assign multiple airline codes per airline, but I'm not sure of the downsides.
Do you have a solution you think would work?
You'll regret using natural keys https://news.ycombinator.com/item?id=40580549 (554 comments)
It is, and from what I hear it's routinely causing hiccups in the German freight train network with its sometimes really ridiculous delays that sometimes can add up to > 24 hours.
I understand the sentiment, but in this case, someone is trying to solve for constraints they didn't invent.
Flight number was fixed to 4 digits long ago and propagates out to a lot of different systems, many not in the same company as the airline, also many being government entities.
So they don't have a lot of great choices.
Passengers don't want to see "multiple airlines" in their itinerary. They wonder if the baggage allowances are the same, and if those bags will make it all the way to the final destination. They wonder if they'll get miles on their "main" airline for the whole trip, or if it will be broken up between different loyalty programs. They wonder if the connection is actually doable time-wise, and if there's a delay, will the airlines work together to either hold the next leg for some amount of time, or rebook without hassles and fuss and each airline pointing at the other, claiming it's not their responsibility.
Codeshares solve all these problems.
Honestly codeshares suck regardless. If I chose an airline it’s because I did not want to deal with their annoying competitors.
So the ego thing is somewhat true, but that decision happened long ago, and already created tendrils that are hard to unwind.
1: If I've paid on a non budget airlines _site_ (like Lufthansa,Air France,SAS,etc) and then see another livery on the plane I'm boarding that I'm not expecting I'd be slightly disappointed and lose trust in the selling airline regardless of any codeshare. If I see when ordering on the SAS site that the second leg on a route is handled by Lufthansa I'm not gonna worry.
2: Baggage allowance is clearly stated when ordering tickets online from a serious airline (because they love to show low prices for no checked in baggage and scrounge you for any extras).
3: I was actually wondering about that on a recent flight so I kept an eye on details and the baggage tag receipt I got clearly stated the route I was flying so I knew the baggage would end up where needed.
4: Bonus program points are usually stated when ordering.
5: The US should just follow the EU lead and harmonize rules a bit (maybe there's already some basic rules in place?), EC 261 has codified some basic rules to alleviate traveler worries in terms of responsibilities when it comes to delays and cancellations. (1)
It's 2024 and we really don't need to pile on bad cludges upon 1960s solutions to keep things working.
And yes, yesterday or today might've been the time to start a process to extent the flight code system within a 20 year horizon, but to extend it in a hurry because of airlines duplicating crap with codeshares is just silly.
1: https://europa.eu/youreurope/citizens/travel/passenger-right...
Sure, though, those fields (marketing carrier/flight + operating carrier/flight) drive things like what the kiosk or agent charges you. Say you booked on AA, but part of your travel was a codeshare on BA. That integration is how all those terms and conditions get followed. Why you pay the AA $50 overweight charge for your big bag rather than the BA $65 charge. Similar for refunds and loyalty programs. Take loyalty...the points aren't awarded until you fly, via a "lift" message. And if it doesn't have the right marketing carrier + flight number, that "lift" message doesn't get processed.
Yes, it's old and rooted in the 60's. And yes, it's got issues. Nobody is selling it as elegant. Just that it serves useful functions now, and that it's ensnared in enough separate internal and external systems that replacing it with something better is not trivial.
I'm sure it sucks that it's "four digits only" but the air travel industry isn't immune from changing specifications. I believe ancient cultures called this software maintenance.
Recycling unique IDs (more precisely: changing the underlying thing the ID points to) is not impossible; there’s lots of pathological failure modes; for certain ID-spaces it’s kinda a required use case; so we have to deal with it.
How many 192.168.1.1 devices are out there? How many different distinct physical boxes respond to traffic going to 1.1.1.1?
There’s exceptions like broadcast IPs, but the point is that it is a system for uniquely locating devices and listening OS processes with IDs routinely shifting around.
So which globally unique box is 192.168.1.1:443? Can you point to exactly one device out there with that IP:PORT combo? There's probably hundreds of millions of that IP:Port combination currently running and listening.
Which globally unique box is 8.8.8.8:53? You think there's seriously just one network adapter listening for traffic at 1.1.1.1:53? These aren't "broadcast IPs".
https://en.wikipedia.org/wiki/Broadcast_address
And even then, "ultimately associated with a single physical network interface on a device" isn't correct either. You can have multiple physical interfaces listening on the same IP and end up with the same ports.
My Macbook Pro currently has unique IP + Port, associated with a single process listening to it over NAT and packets you send are routed to its network interface. Next week, someone else’s laptop could have that same IP + Port. That’s the main idea here, not these exceptions.
Only on really crappy NAT implementations. My home router can have hundreds of thousands of NAT states, and yet there are only ~61k high number ports. How do you think that works?
Because it is not just "external IP at this port goes to this LAN host". Its the whole session information, SRC_PORT, DEST_PORT, SRC_IP, DEST_IP, all get figured into it.
At this moment there are several NAT states in my home router that share the same public IP:PORT combination, going to different LAN IP:PORT combinations.
An IP address is not globally unique. An IP:PORT is not globally unique. Treating them as globally unique shows a misunderstanding of networking concepts. They're often unique to a single host, but that's not a requirement.
Once again, do you really think there's a single network adapter out there that has 8.8.8.8:53?
The reason it's not unique (using my rudamentry understanding of networking) is because multiple routers can broadcast the same IP so devices can use the closest router.
However I think it's fair to say IP address are intended to be unique to an org while private ips are not.
Sure, but the person I'm replying to wasn't making a distinction here. They're just saying, "Have you ever changed the static IP address of a computer", where does that exclude RFC1918 IP addresses? I'm right for the right reasons IRT to the person I'm replying to. There are IP addresses which are absolutely not globally unique in any way, shape, or form by design.
> I think it's fair to say [public] IP address are intended to be unique to an org while private ips are not.
"Unique to an org", that's massively different from "globally unique" which is what the person I replied to suggested.
> multiple routers can broadcast the same IP so devices can use the closest router.
100% correct here, that's the biggest reason why you'd have an IP address shared among a lot of different devices.
I’ve been working in tech for 20 years, am coming off a year-long sabbatical, and for the past couple of months have been struggling with the feeling that the joy is gone and I should consider a radical career change.
Reading (what feels to me as) the aggressive pedantry of parent commenter in this thread is giving me a straight up anxiety attack. I’m not sure I have it in me anymore to be in meetings with people whose brains work this way.
Is it like this in every industry or is it more concentrated in tech? I don’t know who’s going to see this, but if you have any perspective or feedback you’d like to share, I’m all ears.
IP addresses are not globally unique. IP:PORT is not globally unique. Kit Harrington played Jon Snow in the HBO series Game of Thrones. These are just cold, hard, facts.
Looking for real feedback here, as I don't really want to give anyone panic attacks, but what would you suggest I say to posts attempting to correct me saying I'm wrong when I know they're factually incorrect? Just accept the falsehoods?
> but what would you suggest I say to posts attempting to correct me saying I'm wrong when I know they're factually incorrect? Just accept the falsehoods?
If you find a good answer to this please let me know.
I've read books on this topic, and they say to come at the problem from an empathetic view point asking questions and trying to understand the person, however I suggest that you simply dont waste your time, you can't fix peoples broken understanding.
A lot of people (Americans especially, I guess due to their Silicon Valley) think you need to work in tech to work in tech. There are tech jobs in every industry, both IT and other types of tech. I recommend not being in the tech industry - working for a manufacturer with embedded systems or doing IT for a finance company is a lot better for your mental health.
if you take someone elses public IPv4 address and they're using it, neither one of you will be functional, and they will come knocking on your door.
Sure, but if I have the IP address 1.2.3.4 I can have lots of unique physical things have that publicly routable IP address and have them all work if I do it right.
For example:
https://www.southwest.com/air/flight-status/path.html?depart...
There won't also be a SW981 today that say takes off from HOU to OKC.
Those shorter codes will necessarily be reused, it's just a question of the time interval between re-uses of any particular code.
I faintly recall seeing two Southwest flights from ORD to BWI that had the same code a couple years ago, so I decided to look it up. And yes, it's a thing: Flight 1555 from ORD to BWI departs at 4PM today, and flight 1555 from ORD to BWI departs at 4:20PM tomorrow.
I'm curious, can anyone find a re-used code on a shorter time interval than that? It seems like 24 hours is perfectly reasonable, but how narrow can the window be? 12 hours? 6?
My mother recently had an itinerary where both her flights were this flight - the PHL-ATL leg on a Sunday and the ATL-PHL leg on the following Saturday.
(It looks like as of Tuesday AA 1992 becomes a DFW-SEA-DFW flight, but it's the same sort of thing.)
I figure this isn't a problem as long as the two legs are flown by the same plane. But what if the PHL-ATL flight were delayed and American decided to fly the ATL-PHL flight as scheduled with a different plane (say because lots of people booked on that flight had connections at PHL?) That seems like it could create trouble.
Which uses the last 2 numbers of the flight number, and an alphabetical character. BA use this on a lot of transatlantic type flights where delays etc can be an issue.
Unless the PHL-ATL flight is more than 40 minutes late, I don't think you'd necessarily have two planes moving through air traffic control with the same code at the same time. While the PHL-ATL flight lands and goes to its terminal, the ATL-PHL plane can be boarded, cargo can be loaded, and such. If PHL-ATL is less than 40 minutes late, you wouldn't even cause a delay for the ATL-PHL flight.
There is. It's called the Globally Unique Flight Identifier (GUFI), and it's essentially a UUIDv4[1].
[1]: https://docs.fixm.aero/#/general-guidance/flight_identificat...
> The `Aircraft Identification` is NOT an identifier of an aircraft. It is an identifier of a flight.
> There is. It's called the Globally Unique Flight Identifier (GUFI), and it's essentially a UUIDv4[1].
Great, step one cleared.
Now have all the legacy systems everywhere that use 4-digit flight numbers been updated or replaced?
It's a very top-down initiative by ICAO and all the large aviation authorities—quite unlike the rest of the software development industry.
Frankly speaking ATC is the only thing that really matters in the context of flight safety—ticketing, terminal operations, etc don't (and don't need to) deal with FIXM.
Overall seems like a project of huge size and somewhat unknown reach. Not my domain, but I would imagine all kinds of ground support systems to have the four letter flight numbers baked deep into their assumptions. And not only direct support like fuel, cleaning, work shift scheduling, but also logistics systems for cargo, military systems, myriad of ticketing systems etc.
Undoubtedly we’ll push the issue forward for another 10 years before realizing that the next best time to start was today :/
At least that's what I feel like I normally see.
It rarely causes problems, but very occasionally does.
I assume that in theory any given train #/station/date is unique, but given Amtrak's notorious delays, I'm sure that theory has been disproven at least once.
Either way, when they talk about re-using flight numbers on the same day, what they mean is they create multi-stop flights to use the same number for each segment instead.
So you'll see flights like, hypothetically...
> AA 1325 ORD-LGA
> AA 1351 LGA-YUL
> AA 1352 YUL-LGA
> AA 1326 LGA-YUL
Getting converted into a single flight number.
> AA 1325 ORD-LGA-YUL-LGA-ORD
Basically converting this to a flight from Chicago to Chicago via New York and Montreal nets them a 4:1 reduction in numbers used.
You can still book each segment separately, and if they generally book the same plane, say some Envoy Air regional jet, for all four segments, there's little risk that irregular operations will lead to two planes in the air at the same time with the same number. Worst case they can give that one segment a new flight number for that day.
They've been doing this a lot in the last few years, especially on regional flights, and especially in the northeast where there's a ton of short hops.
[edit] If they want a bunch of their flight numbers back they can stop codesharing and switch back to relying on interline ticketing and sell the operating carriers flight number. I can't really think of anything good that's come of codesharing to individual passengers.
Why do you find that remarkable? That's just the same flight departing at slightly different times on two different days.
And, technically, the two flights 1555 in my example aren't the same - one departed at 4:00, and the other at 4:20. Both flights were on-time, so this wasn't a scheduling issue delaying one or the other. 20 minutes isn't a big difference, but it is still a difference. How big does the difference have to be to make Southwest assign two different codes?
Even more philosophically asinine, what do we even mean when we say two flights are "the same?" If Southwest thinks those two flights are the same, then clearly departure time only matters within a certain fudge factor. So that's one part of the picture. Do the make and model of plane need to be the same? Does it need to be the very same physical airplane?
Are any of these questions important to my everyday life? No! Are they interesting? Absolutely!
Also, airlines regularly make minor tweaks to their schedules. It's possible that what you saw was one of those tweaks taking effect.
You can change the aircraft and the flight code stays the same. Many flight codes happen on a regular schedule, like daily. But the same flight path and pattern at a different time on the same day will get a different flight code.
Some patterns have many flights per day along the same path — maybe ten or more. But they each get a different flight code.
All of this is within a single airline or codeshare, of course. Two different airlines can use the same four digit set of numbers for totally different flights, because the full flight code includes both the airline designator and the four digit number.
It's interesting that this is called out, because there are frequently at multiple flights in the air with the same flight number
QF1 / QF2 is now over 24 hours, and has daily flights. It seems pretty feasible to have the SIN-LHR leg be delayed just enough so there's two SIN-LHR QF1s in the air at the same time.
Singapore Airlines has some 19 hour flights. Qantas hopes to have a 22 hour flight 'soon'. Very feasible that these can be delayed just long enough so there's two of the flights in the air at the same time.
Air Canada will renumber a daily flight if the delay goes past midnight (to avoid having two departures with the same number on the same day). I doubt it’s just a courtesy, but an incompatibility with their (or enough airports’ systems).
Mental note to not work for you.
This sounds pretty messed up to me. Someone makes a suggestion or throws out an idea you don’t like so you’re gonna essentially cut them out of your professional life or even fire them? Am I reading this right?
In some instances it’s simply because they are extremely junior and they can be taught, but most instances it’s because they have a habit of shortcuts.
Now that I think of it, this would make a great interview question.
They've competing constraints here: they need all flights to be uniquely identified while in the air, but also all flight identifiers need to be easily expressed over audio. So, even switching to e.g. hexadecimal could be difficult, because "A" can sound like "8". So maybe we use phonetic alphabet for those digits?
Oh but wait, this is to say nothing of the devices actually tasked with transmitting/receiving this info. If the software engineers correctly identified the risk here, then the flight numbers are being stored as two 16-bit integers inside the firmware, so there's plenty of headspace. But if not (say, they only gave 14 bits to the flight number, and 10 bits to the airline designator), then the firmware has to be updated. The FAA lists 648 air traffic control installations in the US, covering 19,000+ American airports. For what are probably obvious reasons, the lions's share of the equipment is not set up for firmware updates via a simple push mechanic, if its setup for remote update at all.
All of this to say, I agree, its dumb, but when this stuff was invented, the prospect of almost 20,000 airports in the US (so, probably on the order of 100,000 globally) likely seemed impossible. Future-proofing has a physical cost, and at the time, it may have been literally impossible to calculate the true cost.
There's an EMR/EHR we use at my employer that reuses UUIDs. If an appointment is moved/rescheduled, the UUID is reused for that appointment meaning the UUID is no longer UU. It causes major issues with other apps that interact with the EMR/EHR, to the point we have to educate users to cancel and create new rather than rescheduling appointments.
Is it the id of the appointment at that time or is it the id for the appoint meant.
Seems like the originator chose the latter and the others the former.
We moved the system towards using arrays which are filled with object data and the index of the object in the array is now the id… the 32-bit ids were of course 4x smaller.
All this being said, we do not claim the objects to be “globally unique”.
Edit: if I could go back in time though, I still might give this pattern consideration https://lucassardois.medium.com/generational-indices-guide-8...
This sounds like it's calling for trouble!
Whenever I hear that any IDs could be "recycled", I make a mental note to replace the person making such a proposal from all teams that I am involved in.
The worst is I once was put to work on a system where they even recycled GUIDs... I thought "which part of GUID do you not understand, the G part or the U part?" (from which it follows they also don't really understand what ID means)...