Hacker News new | past | comments | ask | show | jobs | submit login
Airlines are running out of 4-digit flight numbers (viewfromthewing.com)
282 points by jshprentz 4 months ago | hide | past | favorite | 444 comments



Clearly the successor solution is to use eight groups of four hexadecimal digits each, separated by colons. Then each individual seat and peanut could be addressed to it's final destination.

More seriously the solution suggested of giving the 3 companies other unused prefixes like D* U* and A* to use with their codeshares and non rev flights to start seems the easiest.


Done forget to have a secondary identifier to further divide the seat. I recommend using a short to represent the 65536 possible slices a seat can split.

Then on the ticket, there would be an extension section that tells you the alias of the person that is about to board. We can call it SNI or Sitter Name Indicator. Another section could be an indicator if the rider is alive when boarding. We can call the extension a heartbeat extension.


Given the history of airlines I'm not quite sure if you're joking or not. Sounds plausible ngl


It's ipv6 :)


I know explaining a joke always makes it super funny, but… this is a NetEng joke about IPv6 being overbuilt.


Router: Do you want to hear an IPv6 joke

IPv4_Device: Yea

Router: I'm sorry, you wouldn't get it.


IPv6 is seen and used directly by professionals, not the general public. Overbuilding it in the sense being mocked made sense.


The funny thing is that IPv6 is used more by general public more than professionals. Public doesn't notice that their mobile network is IPv6, or that there home internet also supports it. It is the professionals that are dragging feet upgrading the business networks.

More people access Google with IPv6 on weekends, currently 46%, than on weekdays, 43%. Presumably because mobile and home networks are more likely to be IPv6 than offices.


No, IPv6 is the underlying technology behind the general consumers' internet connections, but the general public is not using IPv6. The general public has no idea what IPv6 is.

I.e. IPv6 is used by the general public, but the general public is not using IPv6.


By that same token the general public is also not using IPv4. The general public doesn't care, so long as TikTok and Facebook appear on their mobile devices.


When you are driving are you using a throttle body?


When I drive my work van I use a throttle body, when I drive my car I use a carburettor. From my point of view as a user, I'm just driving a vehicle. The point is that users see a holistic system and neither know nor care about the underlying implementation details.


  > The point is that users see a holistic system and neither know nor care about the underlying implementation details.
Yes, this is my point too. End users are not "using IPv6" even if that protocol is in use to transfer their data.


Which explains why professionals have so eagerly adopted it over the last two decades


Reminds me of the line that network engineers love implementing IPv6 so much they have been doing it for years


We could also have bumped 255.255.255.255 to 999.999.999.999 = 1 trillion IP addresses, easy-to-remember and backward compatibility with legacy devices.

Modern clients and servers get IP addresses in these new whole IP ranges and can communicate together.

Relatively easy to adapt the code of modern software also since it's about removing a restriction from a client-perspective.

Load-balancers and legacy clients use IP addresses from the old pool.

If you have Windows XP you can communicate only to legacy IPv4 (in practice only loadbalancers from Cloudflare, GCP, AWS and co) and your other legacy stuff. Others happily communicate together.

But no, we got this wonderful IPv6.

Sad because it was really doable, theoretical maximum below 512 GB of memory for routers to store the whole routing table, it's manageable, versus the 2.176×10^22 exabytes (!) of IPv6.


Bad idea, then all the fake IP addresses on Law&order and co would suddenly be valid.


I'm guessing everyone downvotes you for the very strange implication that most software stores IP addresses in ASCII. All networking APIs I'm aware of expect IPv4 addresses as a DWORD.


This is the point, instead of rewriting a full stack, I would rather change the prototype of these APIs.

To store 999.999.999.999, then you are totally fine with a 64-bits INT (QWORD), and there is no struggle to backward-compatibility store a 32-bits INT (DWORD) into it.

It's more of a matter of doing #ifdef IPV4_EXTENDED #define DWORD QWORD #endif

and add an extra IP field inside the IP header packet itself that says, "this is the IPV4_EXTENDED DESTINATION 5-bytes IP", and the previous field is marked a legacy/deprecated.

In fact, it's quite convenient, since we are all INT64, sockaddr_in would largely fit in an INT64 for both IP itself and the other elements that are in the struct.

https://man7.org/linux/man-pages/man3/sockaddr.3type.html

5 bytes for the sin_addr field is enough to store until 999.999.999.999.

Gives you 3 bytes to store the port etc.

The networking APIs guys could be drinking cocktails at the bar by now, if they would change these types.

There is backward compatibility and smaller effort for a great impact, and this is beautiful.

It's actually beneficial for the majority of developers.

From the developer of Windows, to the developer of Age of Empires, to the developer of a CRUD app on the web (who stores IP addresses as a string or as an int), they wouldn't see too much struggle to port to int64.

Less than having to build a full new IPv6 experience.

In practice, client apps, at the time you open a new socket, if your lib says it wants an INT32 or an INT64 it doesn't matter for the developer of that app, since type is automatically casted.

time() had a similar situation.

We migrated by adding new bytes, we didn't redefine the concept of time.

From a developer-experience, "link to the latest version of the network library, oh btw, connect() accepts an int64" and remove the UI restriction of 255.

It could even be possible to give compatibility to very old software that we lost source-code from by overriding the network layer with LD_LIBRARY_PRELOAD or equivalent, and patch these softwares by manually NOP the right JGE instruction (the asm code for " >= " ) that checks if we are over 255.


So you need to send a message from your host 5.6.7.8 to one of these newly enabled hosts 500.600.700.800. You update the software on your host, and your target's ISP is updated, and your target updates, and we'll even hand wave and assume your ISP is updated despite apparently having enough legacy addresses to allocate you one.

The message goes out to your ISP router, who then sends it to their upstream ISP, who looks at the IP message, doesn't understand whatever header you've shoved the extended address in, and discards it. Then what's in your standard, backwards compatible 32 bit field? The start of the address? Does your packet go to some other random host on the internet? A placeholder address like all 0s? Does your message get discarded?

How do you convince that middleman to update their hardware? They have no benefit from it? This is the situation IPv6 was in for decades until their literally were not enough IPv4 addresses which finally lit a fire under companies to start enabling it.


(I'm not pushing this idea to the max, I mean, now IPv6 is here so we'll just go with it, but this is for the mental and engineering exercise).

To answer your question, in my model, the legacy IPv4 field contains the IP addresses of "IPv4 to IPv4 Extended bridges".

Let's imagine you want to connect to [example.com]:

Clients who speak IPv4 Extended and their ISP is compatible, get the IPv4 Extended answer:

425.223.231.123 A+ example.com

and directly to it

Clients who speak IPv4 Extended but don't have an IPv4 Extended compatible ISP, add that extra IPv4 Extended header and speak to the bridges.

425.223.231.123 A+ example.com

34.23.12.2 BR example.com (the bridge)

Clients who speak IPv4 only but don't speak IPv4 Extended don't have to think about IPv4 Extended at all, since they will go through the usual layer-7 (typically HTTP) reverse-proxy, or a routing based on rules (ip/port pair).

Cloudflare does search large scale reverse proxies, it works fine in practice.

If someone has an incentive to run such bridges or reverse proxies solution, first it's yourself, to save your preciouses IPv4.

To the end user the promise is "you will connect faster to the internet if you are in native IPv4 Extended (because you skip these intermediate bridges)"

We actually have a nice mechanism that we could reuse for knowing which bridges to use, it's reverse DNS lookup.

https://www.cloudflare.com/learning/dns/glossary/reverse-dns...

In reality this intermediate state with the bridge, is not even necessary, so the migration could be even easier.


> In practice, client apps, at the time you open a new socket, if your lib says it wants an INT32 or an INT64 it doesn't matter for the developer of that app, since type is automatically casted.

A lot of networking gear is far closer to an ASIC than a general-purpose CPU, so you can't "just change it to int64". They were built to process 32-bit addresses, and are unlikely to be able to swap to 64-bit without enormous performance penalties.

E.g. routing tables would balloon in size, which in practice means that you can store far fewer routes. Ignoring changes in the size of the netmask, it's 4x the size to store 64-bit address pairs, so your route tables are a quarter the size they used to be.

The hardware refresh requirements are a big part of the reason why IPv6 rollout is so slow, and your proposal doesn't avoid that. Getting the software side of things to play nice has always been the easy part of this, even in IPv6.

> It could even be possible to give compatibility to very old software that we lost source-code from by overriding the network layer with LD_LIBRARY_PRELOAD or equivalent, and patch these softwares by manually NOP the right JGE instruction (the asm code for " >= " ) that checks if we are over 255.

In IPv6 land, you just encapsulate IPv4 in IPv6 [1]. It's a lot cleaner than jankily trying to override instructions, especially when the relevant code may run on your NIC rather than your CPU and require kernel firmware patches (or, god forbid, custom NIC firmware) to implement.

1: https://en.wikipedia.org/wiki/6to4


and what about the protocol bytes that go over the wire - you know, the most important and hardest to change part?

There've been several proposals to make "IPv4 but bigger addresses". All of them are just as hard to deploy as IPv6. You still need to upgrade all your routers and you still need to run two parallel networks.


You do realize sockaddr_in is an abstraction for data structure here, yes?

https://datatracker.ietf.org/doc/html/rfc791#page-11

Where is that new address going in the header?

If it's going in the same spot in the packet header as the current IPv4 address, how do you make sure that the 20-30 routers owned by 3 different companies that are likely to be between your computer and the destination computer exhibit a behavior that is consistent with moving packet closer to the destination?

(If they don't, you've just made a version of IPv6 that is worse-- it's missing the last 30 years of IPv6 implementation.)


It's written above, bridge destination address in the "legacy" IPv4 destination header, and that bridge can be figured out by looking up the reverse dns entries on a IPv4 Extended IP, until the user is natively using an IPv4 Extended network.

This brings the packet closer to the destination.

The new address goes into the Options field, you can store lot of data there (somewhere up-to-60 bytes, and we need 1 or 2 byte actually).

Reminder: The goal is to add one-byte to have more IP addresses, not rewrite the whole internet.

Here it looks like the guys wanted to fix that IP allocation problem, and then they went all-in, and decided to rewrite everything at the same time.

It's ok, and even a good idea in theory, but network administrators don't like to be pressured "in emergency" into upgrading to this solution.

The practice shows that people rather prefer doing NAT than IPv6.


IPv6 hasn't failed to be adopted due to being over engineered. Its failed to be adopted because breaking changes are hard.


> IPv6 is seen and used directly by professionals, not the general public

Yes, that's the problem. It's unusable on your fucking home network.

Please, don't post again the 10 "concise" 50+ page documents that you "just" need to read to set up ipv6...


I don't really understand. My router gives me an IPv6 address...


Do your devices behind the router get IPv6 addresses, or just the router itself?

I wouldn't be super surprised to see routers getting IPv6 addresses and doing a 6in4 NAT, so devices behind the router get IPv4 addresses.

I would be surprised and impressed if your devices were actually getting public IPv6 addresses.

IPv6 can be kind of unwieldy, but the bigger issue to me is that old and/or very cheap clients (like bargain-bin AliExpress IoT stuff) may not support IPv6 at all.

I believe you can run DHCP for both and let the client pick one, but then you're into running dual-stack routers, and I would be very surprised if ISPs had any interest in supporting them for home use.

I may well be wrong, though. I haven't looked into it in a few years, because my ISP doesn't support it.


edit: Okay I thought it did but apparently my router doesn't assign publically routable IPv6 addresses by default. I found a setting that would enable this though. Gonna leave it off for security reasons, but it's just a toggle, so still seems pretty easy. Also my local interface apparently has an (unrouted) ip in the same subnet as my router's public address, and I'm not sure how it got it.


Every device on my LAN that responds to Bonjour on `.local` uses link-local IPv6 without me having had to do any configuration or put any thought into it whatsoever. ¯\_(ツ)_/¯

EDIT - Oh, you’re talking about public IPv6… similarly, my router (a TP-Link Archer 1200) gets assigned a prefix by my ISP, which it then auto-assigns inside devices IPs from, again without any explicit configuration or intervention on my part. Super easy.


Do you understand on what basis? Do you know enough to assign addresses in a way that you, not your router, wants?

Can you ssh/other forms of remote into any machine that accepts ssh on your local network using only ipv6?

Can you redirect ports to specific local machines using only ipv6 (that implies they keep constant addresses)?

Can you easily switch between two internet connections going through different routers that are plugged into the same switch for any machine on your local network using only ipv6?

Speaking of which, since the ISP decides on the addresses behind your NAT, can two separate ipv6 internet connections even exist on a local network?

This is all easily doable with ipv4 in like two afternoons without setting up anything beyond perhaps a dhcp server and some firewall rules. How many additional services do you need to do that with ipv6? And how enterprisey are they?


Do not "ssh/other forms of remote" using ip addresses. Use domain names or local domain. It is easier to remember, is more secure (if configured in DNS), and less prone to errors.

> Can you redirect ports to specific local machines using only ipv6 (that implies they keep constant addresses)?

Yes. Use domain names in configuration files. It more robust, easier to read, and is better protected against network changes on the local network.

I have been part of multiple ISP changes and searching through configuration files for ISP specific IP address ranges is never fun. It wastes time and is prone to errors. In enterprise settings domain names rarely changes and even when they do, the old primary name are usually retained for backward compatibility. An ISP can get replaced fairly quickly if an alternative is cheaper or provide a better service.

> Can you easily switch between two internet connections going through different routers that are plugged into the same switch for any machine on your local network using only ipv6?

Are you talking about BGP? BGP is a fairly complex protocol and uses some archaic configuration syntax, but even so there are generally no differences between ipv4 and ipv6. It is the same pain making sure both ipv4 and ipv6 switch between the two routes correctly.


> It is easier to remember

I have absolutely no problem remembering the last byte of any machine on my network. Because that's all it takes with ipv4 on a sorta complex home network, no need for extra services.

> Are you talking about BGP?

No, with ipv4 i can just change the default route :)

Everything is NATed behind the two routers so changing the default route changes which connection that machine uses. You're thinking enterprise, and then ipv6 becomes ... fine. I just have a hack that works fine for me.


> Do you know enough to assign addresses in a way that you, not your router, wants?

If I want to manually assign addresses it's still pretty simple, but in the end I normally just don't care. I don't want to know what IP my printer is, I just want to reach it. Which isn't a challenge at all. Even for things at my home that are IPv4 only they're practically all DHCP. Because there's little reason to ever really care about something's address.

> Can you ssh/other forms of remote into any machine that accepts ssh on your local network using only ipv6?

I have no problems reaching any host on any of my networks even if they're running only IPv6. It's nice too because I can trivially reach any port I want globally as well with a basic firewall change. Even better I can have one host have many IP addresses with different services bound to each address if I want.

> Can you redirect ports to specific local machines using only ipv6 (that implies they keep constant addresses)?

Why do any port redirection at all? Just set the firewall rule and things can hit it. And yeah, they can keep constant addresses. They can have dozens, hundreds of static host addresses if I want.

> Can you easily switch between two internet connections going through different routers that are plugged into the same switch for any machine on your local network using only ipv6?

If that's something you're really wanting, Network Prefix Translation can be done pretty easily. But the vast majority of home users aren't using dual WAN anyways.

> This is all easily doable with ipv4 in like two afternoons

Sounds like your setup with IPv4 took more work than mine with IPv6, as mine only took me an hour or so while yours took multiple days.


> as mine only took me an hour or so while yours took multiple days.

Yeah, because the first time I had no idea what I was doing, except vague feelings about ipv4 works. Did you factor in your pre existing ipv6 knowledge when you counted just an hour?

> Network Prefix Translation can be done pretty easily.

What's "easily"? How many services do I need to setup? Some other helpful HNer tried to explain to me once and the list was like 2 or 3 daemons in addition to dhcp, firewall etc.

Do you set up complex ipv6 networks at work?


> Do you set up complex ipv6 networks at work?

Your standard was "It's unusable on your fucking home network."

I've set up and managed IPv6 at work before, yes. I don't know if I'd call them "complex" networks though. Either way I set it up at home several years before. And I had been running IPv6 at home before I even bothered setting it up in a way I wanted, as my ISP's box previously had a decently competent SLAAC and IPv6 firewall setup in their CPE router. So that took me 0 minutes of time past plugging it in.

As for this disdain of running such complicated systems like "DNS", so many things support mDNS these days and plenty of home routers will automatically update their local DNS with DHCP entries. I didn't have to manually configure a DNS entry for my printer, I just gave it the hostname "brother" when I first set it up and now when I need to add it, I just do "brother" on a new computer and boom it finds it wherever it is. If I want to check the toner level, I open a browser and go to http://brother and its there. And even though I've radically changed my networking setups over the years, all my configurations pointing to "brother" still just work.

> What's "easily"?

https://docs.netgate.com/pfsense/en/latest/nat/npt.html

There's seven configuration options here including the Disable/Enable checkbox and a description field.

If you're using ip6tables on your router, it is just two commands for a POSTROUTING and PREROUTING nat rules.

  ip6tables -t nat -A POSTROUTING -o eth0.99 -j NETMAP --to 2607:xxx::/64 -s fd12:3456::/64
  ip6tables -t nat -A PREROUTING -i eth0.99 -j NETMAP -d 2607:xxx::/64 --to fd12:3456::/64
But hey just complain about how it's just impossible and takes so much work instead of actually learning new things.

From the sibling comment:

> No, with ipv4 i can just change the default route :)

Are you suggesting you're running around and changing the default route on all the devices on your network when a gateway goes down? What a nightmare. Just have your router have multiple WAN connections and have it do the failover for you.

> I have absolutely no problem remembering the last byte of any machine on my network

If you want, you can do the same with IPv6. You could set your stuff to have your IP addresses be fd12:3456::1, then fd12:3456::2, then fd12:3456::3, then fd12:3456::4, then fd12:3456::5, etc. Remembering 123456 as your home ULA prefix isn't too challenging, is it? You can then set up an NPT rule like the one above on your router to translate this prefix fd12:3456::/64 with whatever your public prefix is from your ISP. Most wouldn't do this though, as its essentially the Fisher Price of networking designs.


> As for this disdain of running such complicated systems like "DNS"

Disdain? I run a few bind instances for my own domains. On rented servers where they belong. I'm just opposed to having one required for my local network.

> https://docs.netgate.com/pfsense/en/latest/nat/npt.html

"NPt makes perfect sense for SOHO IPv6 Multi-WAN deployments." Wait, they agree with me. That there are SOHO IPv6 Multi-WAN deployments. Who would have thought?

> running around and changing the default route on all the devices on your network when a gateway goes down? What a nightmare. Just have your router have multiple WAN connections and have it do the failover for you.

It used to be that but I don't think any of my internets has failed since like 2010... mostly keeping them out of inertia. So I've never felt the need to fix the manual failover. It's not all devices anyway, just the one I'm using at the moment.

> But hey just complain about how it's just impossible and takes so much work instead of actually learning new things.

Too many new things to be exact. Most of them needless. However either people have figured out by now how to work around the ipv6 commitee to simplify things, or they were always there but whoever tried to explain ipv6 to me before had a fetish for enterprise solutions. I distinctly remember being told I need to set up at least 2-3 extra services for my dual wan setup.

Your answers are almost devoid of acronyms and "helper" services that i need to set up and learn because it sounds professional. You almost only included firewall rules :)

This was not my opinion of ipv6 before. Maybe I'll give it a chance in the future. My current setup still works "just fine" though so I need to be very bored to fuck it up.


> "NPt makes perfect sense for SOHO IPv6 Multi-WAN deployments." Wait, they agree with me.

Well yeah, without implementing BGP and controlling your public prefixes its the only way to have multi-WAN deployments, and chances are home users aren't messing with BGP. Most users will get by fine just adopting their WAN-issued prefixes.

> I don't think any of my internets has failed since like 2010... mostly keeping them out of inertia.

So next time you do some big network maintenance just drop your redundant WAN connection, sounds like you haven't really needed it in 14 years (imagine the thousands of dollars you'll save not keeping it another decade and a half!). Just adopt whatever public prefix you have, and life will be simple.

> Your answers are almost devoid of acronyms and "helper" services

Largely because there aren't really many "helper" services needed if you're willing to adopt some pretty basic network designs. Add DNS/mDNS, and suddenly you don't need to care about the specific numbers of things. Just accept SLAAC, which comes with any Linux/BSD distro/MacOS/Windows/whatever IPv6 embedded stack you've got comes out of the box for the last decade+, and suddenly you'll get publicly routable IP addresses. If you want to access SSH on a box, add a firewall rule for its IP and register its IP in a public DNS, and suddenly its accessible anywhere. You can make any host in your network accessible if you want to. Its nice.

> This was not my opinion of ipv6 before. Maybe I'll give it a chance in the future.

I get there's a lot of new acronyms with it digging deep in docs. I get it sounds like there's a million ways to deploy it. There's a lot to know, if you want to get deep in it. Honestly, if you just kind of loosen your reins a little bit, accept the things that are already shipping on the things you've been running for a decade will just work with the newer dynamic stuff, and adopt DNS, it'll probably be perfectly fine. You probably don't need to install/configure dozens of additional things.


> imagine the thousands of dollars you'll save not keeping it another decade and a half!

Uh well, i'm in eastern europe and the fiber i would give up on is in a package with the cell phones and the tv channels, so i think i wouldn't even notice it missing from the bill. And it's all iptv so I don't think I can have tv without the fiber.

The other pipe is business ish (symmetrical, no restrictions on servers) so I'm not giving up on it, I'm using it to give stuff to customers etc.

> I get there's a lot of new acronyms with it digging deep in docs. I get it sounds like there's a million ways to deploy it.

As i said, last time I asked on some forum (maybe hn, maybe ars technica) i got drowned in acronyms. Most of them for extra daemons to handle ... some config for a larger network, i guess.

And believe it or not, I didn't know until today that you can ignore your ISPs prefix and do address translation with ipv6 :) I thought you use what you get and that's all. Because that was the promise of ipv6 wasn't it? No more NAT.


Do you do all this stuff with IPv4? No... especially not at home.


Yes actually. Think multiple machine home office because i WFH, not consumer "just netflix terminals, 3 phones and a console".


Lots of machines at home and yet having DNS tied to DHCP or running mDNS is too much of a hassle.

I would hate to have to remember even the last octet of all my machines in my house. Instead it's just the simple names. The numbers underneath can all change whenever, it doesn't matter. Until I start calling my kids by an octet a name will be easier to remember instead of "is that north camera 101 or 105 or 113 or..." versus "north-camera.my.net" or "is my pool controller 10.7 or 10.8 or..." Instead it's just pool-pump.my.net.


> Lots of machines at home and yet having DNS tied to DHCP or running mDNS is too much of a hassle.

Yes. I have no problem remembering the numbers. Illegal?


I bet you probably go to this website by visiting https://209.216.230.207 since that's way easier to remember than https://news.ycombinator.com

I mean why would anyone really care to deal with DNS anyways, just a bunch of fluff. Real IT admins just memorize IP addresses. Why would I bother dealing with all that DNS hassle?

If its easier to remember this site by its name, why wouldn't it also be easier to remember what your file share's host is by just remembering its name instead of some collection of digits? Do you remember people by their phone numbers or by their names?

Having functional local DNS is not complicated these days. On tons of systems it comes out of the box, you almost have to go out of your way to not make it work. You need to actively try to not use it.


> I bet you probably go to this website by visiting https://209.216.230.207

What you forget is on your average home network only the last byte matters. The first 3 don't change. It's always 192.168.x.y, x is fixed so you only need to remember the y.


Your average home network has a functional mDNS stack already running.


Mine does not


Where do zone identifiers come into the picture?


> the solution suggested of giving the 3 companies other unused prefixes like D* U* and A* to use with their codeshares

That would have the additional benefit of being able to tell at first glance if your flight is actually flown by the airline you are booking or by someone else. But I'm not sure airlines actually want this to be that obvious...


Why do airlines even need separate flight numbers for codeshare flights? Why not just use the flight number of the operating airline in the booking? IMO it's just confusing for passengers as well.


The marketing carrier, aka the one with the airline code on the ticket becomes liable for certain things in most countries. Codeshare is one way who is responsible is known to outside parties immediately. It also impacts automatic luggage transfers for layovers.

Not to mention, there are bits where if I buy a JAL ticket for AA internationally, I get 2 free checked bags while the same AA sold and operated flight has no free checked bags. The JAL code lets the airline systems quickly determine they can't force you to pay up at the luggage drop-off because you are under the other carrier's rules for the flights.

A lot of this is based on the pre-smartphone age but I don't think there's better solutions that are both computer, person and policy friendly either.


Most airlines already have vastly different baggage rules for different seat classes so I doubt this really needs to be determined by the flight number.


I feel like you have it backwards: that's exactly the point. You buy the flight under the code share flight number, and you buy the seat class based on the code share airline's (not the operator airline's) seat class name. Then the code share airlines baggage rules for that seat class flow into that.


I think the answer is due to money and pride. My guess is that the issue is billing and international relations. Code shares aren’t (often) between airlines that are from the same country. So, if you have a requirement to fly a particular flag carrier, you have greater flexibility. For example if the ticket is funded by the US gov’t, you can still take an Air France flight, but get billed by Delta. Or, for frequent fliers (whom airlines love to target with rewards), you can have miles accumulate with United even if you are taking an Air Canada flight.

But I would think that this change could be made on the backend much easier than trying to add another number to the flight IDs.


I feel the real reason is also why badge engineered cars also exist: market capture.


I mean sure, but all that branding will fall apart once you board the plane and the livery, and everything else is branded by the operating airline anyways.


An application for AR goggles, perhaps.


More jobs for everyone.


Having multiple prefixes per airline doesn't seem trivial, given that this historically wasn't a thing. I could imagine a bazillion code snippets of

    if flightNumber.startsWith(OUR_AIRLINE_CODE)
that might be incredibly painful to fix on short notice.


Searching a large codebase for a constant (like "DL", plus tracing all related variable use if something is assigned this or related value), and replacing the logic is a relatively easy kind of change. Especially in the modern day when we got all those nice semantic analysis and code transformation tools.

Especially if they got proper tests.

Certainly way easier than replacing use of a deprecated API (and people do this kind of stuff all the time).


I think you have an unreasonably optimistic view of the current state of most of these code bases.


At least the pain only has to be dealt with by the companies that wrote code like that?


> More seriously the solution suggested of giving the 3 companies other unused prefixes like D* U* and A* to use with their codeshares and non rev flights to start seems the easiest.

That's exactly it. And what happens in merger situations where they keep operating some of the flights with the letters of the old companies

The A* space seems full, the D* space is almost full though, U* has some space https://en.wikipedia.org/wiki/List_of_airline_codes


If you think it takes a long time for ipv6 to "take over" in the old back bone infrastructure of the internet, trust me you have seen nothing compared to making that kind of change in air travel back bones.


No but wasn't this issue was really obvious? like 4 digits number ending? could be a technology issue if this was invented in the 80's but as time progress the engineers should have seen coming this. and why cant we just use the same set of numbers again? like a flight from toronto to brazil or any part of the world , the flight will always be the same, there will always be a set of people that would want to go brazil from toronto. it will be easier that way to find the flights online and people can even memorize.


The even more simpler solution is to just give up on unique identifiers within an airline and simply give each airplane its own name space. The existing system of a 4 digits can then continue, and all that is required is to use a bunch of translation layers to figure out which airline and which plane corresponds to a specific flight.

Adding a prefix would mean that all software need to change at the same time in order to include the prefix. Adding translation layers can be done on top of existing old software.


Roughly 20 years ago a network engineer I worked with said - "We took a look and IPv4 had everything we want and need but the address space". Why the committees didn't just made it 128 bit and be done with it is beyond me.


They basically did. All the other changes are minor cleanups like getting rid of fields nobody uses, and realigning header bytes.

Except SLAAC, but that wasn't part of the original design anyway. That was an accident when some major vendor implemented SLAAC before it implemented DHCPv6. The plan was to keep DHCP.


The idea that IPv6 is basically just "IPv4 with more address bits" is so wildly incorrect I'm not even sure where to start.


You could start with one of the ways it isn't, apart from minor cleanups, and apart from SLAAC because it was already mentioned.


Just do it right please and make sure every flyer gets at least four last groups and two last digits of the fourth group to themselves. ;)


IPv6 was the worst idea ever and no one can prove me wrong.

The folks that invented it must’ve never had to deal with a mission critical task during a DNS outage, for example.


> Here’s the full answer, along with how they triage the problem – for instance by assigning the same flight number to more than one flight a day (although that means they need for it to be flights that would never both be in the air at the same time, such as where the same plane is used and can’t reasonably be substituted)

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)...


I'm certain each flight has its own completely unique ID buried somewhere in a database. But, shorter codes can be spoken into a radio faster and with lower probability of misinterpretation - both critical features for air traffic control.

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?


> I'm certain each flight has its own completely unique ID buried somewhere in a database

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


This line made me chuckle:

> The `Aircraft Identification` is NOT an identifier of an aircraft. It is an identifier of a flight.


Naming things are hard you know ...


>> I'm certain each flight has its own completely unique ID buried somewhere in a database

> 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?


Like the mechanical displays at various airports across the world pictured in the article?

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.


So we’re already too late by about 20 years to fix the issue properly.

Undoubtedly we’ll push the issue forward for another 10 years before realizing that the next best time to start was today :/


My understanding is that air traffic control is extremely computerised even though direct control is still done over analogue VHF voice radio. The flight numbers are essentially only human-facing (both passenger flight numbers, and ATC callsigns). When flights are handed off between different stations or different flight information regions, their computer representations must conform to the Flight Information Exchange Model (that's the FIXM in the website I linked above).

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.


4-digit flight numbers are for humans, not computers


But humans, who interface with computers, are known to cause trouble.


Humans write the code that makes those computers do things, though. And humans don't always read the standards, docs, or manuals before doing so.


Please tell me it's pronounced "goofy."


It actually is. I interned at a civil aviation authority where I had to implement a GUFI generator, and they all pronounced it 'goofy'.


Flight numbers get changed when airlines re-do their scheduling. It's still a fairly manual process as sometimes the numbers are symbolic.

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.


I thought that airlines that fly the same origin to destination daily at the same time always use the same flight number for that flight each day.

At least that's what I feel like I normally see.


Not always but often.


Yeah, always was being generous. Often is probably an accurate qualifier.


> Flight 1555 from ORD to BWI departs at 4PM today, and flight 1555 from ORD to BWI departs at 4:20PM tomorrow.

Why do you find that remarkable? That's just the same flight departing at slightly different times on two different days.


Let me try to explain: On routes with high frequency flights, airlines will generally issue a different flight number for each unique departure time to a particular destination. E.g. YY500 departing at 9am to LAX on Mon/Wed/Fri and YY502 departing at 9:05am to LAX on Tue/Thu/Sat/Sun. It's unusual to have the same flight number YY500 apply to either the 9am or 9:05am flight. But if there is no collision (i.e. 9am and 9:05 doesn't operate on the same days) it seems a sensible optimization to reuse the flight numbers. It's just not very common practice in the airlines I regularly fly with (NZ, QF, JQ etc) so can understand why it seems remarkable. Air New Zealand for example only 'reuses' flight numbers for their flagship (e.g. NZ1, NZ2, NZ3, etc) flights whereas their NZ5xx NZ6xx series flights for high frequency domestic flights generally are unique in respect to departure times and rarely do they reuse a flight number for a different departure time.


Flight # of Theseus?


Like I said, 1 day of separation doesn't seem like anything remarkable, but it begs the question: do the numbers get reused for the same flight on shorter intervals than a day? If so, when? Even more interesting, why?

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!


I've seen situations in the past where the same flight number referred to multiple flights between endpoints that had no apparent relationship to each other. I've also seen a single flight number refer to a flight from A to B to C, but used a different aircraft to get from A to B than from B to C. I can't find any examples at the moment though so maybe the airlines have stopped that particular insanity.

Also, airlines regularly make minor tweaks to their schedules. It's possible that what you saw was one of those tweaks taking effect.


Short flights out-and-back from a hub can have the same number on the two legs. An example is AA 1992, which today departs PHL 3:06 PM, arrives ATL 5:17 PM, departs ATL 5:57 PM, arrives back at PHL 8:05 PM. (All times US Eastern.)

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.


> But what if the PHL-ATL flight were delayed and American decided to fly the ATL-PHL flight as scheduled with a different plane

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.


To be fair, this problem is semi-solved by European airlines by having callsigns like BAW44W.

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.


If they had to switch to a new plane, wouldn't they also need to refile the flight plan? From what I understand that would be the case, so either a new number would be assigned or the details would be updated in the system. I'm not a pilot, I know a few instrument rated pilots but they're private, not commercial so this may not be the case.


I recently flew SLC-CLT and CLT-SLC, and both flights were DL2070.


I've also seen this on Delta on ATL-PHL. I had guessed it was limited to relatively short flights - because why waste a number on a short flight, and because there's less room for irregularity where you end up with both flights in the air at the same time - but it looks like at least SLC-CLT on Delta and DFW-SEA on American do it.


Tangentially, train 'headcodes' in the UK are not unique for various historical and convenience reasons. They're supposed to be unique within a given 'area' and period of time, but it's not very well specified what either of those are.

It rarely causes problems, but very occasionally does.


This is true in the US as well. For example, all northbound trains on Amtrak's Coast Starlight route are train 14 and all southbound trains on the same route are train 11. There's currently a train 14 west of Los Angeles that originated this morning. Meanwhile train 14 that originated in Los Angeles yesterday is a couple hours from pulling in to Eugene, Oregon. Likewise there's a train 11 that just departed Seattle and another train 11 that's just about to pull in to San Jose.

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.


Flight codes are meant to signify the particular starting point, stops, and destinations that will be made along the way.

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.


There are usually flights from hub to spoke, and spoke to hub, and each one will have the same number. This is within a 24 hour period. 3934 is one such flight between PHX and SEA.


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

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.


Seems to me like an ego issue honestly since the article points out that a large part of the bloat is from codesharing, using the actual operators code feels like an obvious solution unless egos are too fragile.


It's not ego, it's marketing, loyalty, and customer comfort.

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.


That sounds a lot like party-line arguments honestly, maybe rooted in 1960s issues

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


> Baggage allowance is clearly stated when ordering tickets online from a serious airline

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.


Codeshares would solve those problems just as well without a separate flight identifier for every airline.

Honestly codeshares suck regardless. If I chose an airline it’s because I did not want to deal with their annoying competitors.


Part of what marks it as a code share is those marketing carrier/flight and operating carrier/flight fields that get propagated out lots of places internally and externally. If you just up and change those, then your flight listings would look wonky on, say Expedia. Or your reconciliation process to get the revenue in the right place might break, etc. Two examples of which there are many more.

So the ego thing is somewhat true, but that decision happened long ago, and already created tendrils that are hard to unwind.


Sounds like they are artificial constraints.

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.


Yes, they've changed specifications before. Y2K being one example. Artificial seems strong though. I was trying to explain that a single airline can't fix this solely in-house. It would have to be an industry change across airlines, government agencies, third party vendors, etc. So it's not artificial, but it's not trivial either.


Last year the UK ATC system crashed when it "encountered an extremely rare set of circumstances presented by a flight plan that included two identically named, but separate waypoint markers outside of UK airspace".

https://www.nats.aero/news/nats-report-into-air-traffic-cont...


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

Mental note to not work for you.


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.

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?


I feel like it’s completely understandable. There’s a certain kind of person that thoughtlessly makes comments like this, and it extends beyond just ID’s. You do not want them on your team.

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.


Last call for passenger jll29 for flight seven dee eff eff eight two nine one, three eff eight nine, four zero four zero, bee eight see three, bee two zero zero seven six see zero dee dee ee ee.


> although that means they need for it to be flights that would never both be in the air at the same time

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.


I think you do not need 24 hour flights for that. Some flight numbers are used multiple times throughout the day. If one gets delayed too much, then two planes can be in the sky at the same time with the same flight number.


It’s gotta be a big YMMV thing. I wonder if US airlines might do that domestically only but not for international.

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).


The neat thing is that the replaced person frees up their ID which can be reused by the new employee coming in, just easier that way.


You're gonna hate the e.g. Southeast Alaska route names, where the plane arrives from one location, unloads some passengers, loads others, then takes off for another destination entirely (specifically Anchorage->Juneau->Petersburg-Wrangell->Ketchikan->Seattle), and yet it's the same flight number the whole way.

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.


Hey they are inventing NAT. Nice.


Wait, how are they doing that? My mental idea of NAT is that it dyanmically links (address × port) pairs to local addresses. What would be the "port" in the case of flight numbers?


UTC Date + Time of flightplan takeoff


If that would be usable and could be assigned at sufficient precision the flight number would not be necessary at all!


origin,destination tuples.


NAT for airline flight numbers would fix this problem and improve security to boot!


I work on a system where id reuse was necessary due to memory constraints. We were identifying hundreds of thousands of objects using GUIDs and referencing the GUID of course cost the whole 128-bits. All this data also had to be networked.

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


Isn't this what Southwest essentially does? I've been on a Southwest flight that makes four or five stops, all with the same number. But I'm sure no person took more than one stop on the same plane.


No, that's still one flight path just with several stops. So there's not more than one plane in the air with the same number. There's a difference between a flight "continuing on" and an entirely different flight plan. And I dunno, there's probably some percentage of riders who might continue on past a single stop. It's not impossible.

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.


It works well enough for trains too. On those you get to stay onboard for multiple legs though, and I believe that’s quite rare for flights.


I don't think that's even new for the big N us airlines. I noticed about 10 years ago that there were some united flight number used by not really related flights, or for both outbound and inbound for the same city pair.


British Airways frequently has flight in the air at the same time with the same flight number. For ATC these are typically identified with a letter at the end of the flight number like BA 123E or BA 345Y.


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

Couldn't agree more, not even interested in debating it


The misconception here is that Flight numbers are not treated as IDs. A unique key to any flight is the composite of number/origin/departure date.

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.


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


> Couldn't agree more, not even interested in debating it

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?


Flight numbers are already recycled (sometimes on the same day). The proposal is just changing the recycling frequency.


This whole argument reminds me of something. Found it. (Can't believe that was only 2 months ago.)

You'll regret using natural keys https://news.ycombinator.com/item?id=40580549 (554 comments)


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

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.


That seems... fine... to me? It's not a different appointment; the time has just been changed. It feels like that's a bug with the other apps: they are assuming that they can cache all metadata associated with an appointment and that nothing will ever change, but that's a bad assumption.


Well that would depend on what the written specification of that id is.

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.


Have you ever changed the static IP address of a computer? You just “recycled” a “globally unique” ID.

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.


IP addresses (especially IPv4) are not even supposed to be globally unique.

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?


You're right but for the wrong reason. You are referencing the private blocks that are designed for private use. The vast majority are not designed for private use.

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.


> You are referencing the private blocks that are designed for private use.

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.


Real talk.

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.


If someone says, "Tom Hanks played Jon Snow in Game of Thrones", and then you reply "that's incorrect, it was Kit Harrington", and then people say "well it's really Tom Hank's cousin that played him", which is still incorrect, is it aggressive pedantry to point out that's still wrong?

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?


This is the new world we live in, the large group finds 'social correctness' more important than actual correctness.

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


I've had hyper-pedantic arguments in many workplaces, but they're usually focused in tech or other "intellect driven" fields.

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.


Because of NAT, it’s actually “IP + Port#” that is globally unique, and ultimately associated with a single physical network interface on a device (e.g an ethernet port on a PC).

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.


> it’s actually “IP + Port#” that is globally unique

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.

https://en.wikipedia.org/wiki/Link_aggregation


Well the 192 case would probably have an external IP + Port uniquely mapped to it in the router’s NAT table. I think you’re missing the larger point though. No one said IPs are exclusively used as GUIDs. Just that they are used as GUIDs, which they are in the majority of cases, and those GUIDs are re-assigned over time.

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.


> would probably have an external IP + Port uniquely mapped to it in the router’s NAT table.

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?


there are a handful of ranges in IPv4 that are NOT globally unique. You're describing a much smaller set of IP ranges that are designed to be used+reused but not routable.

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.


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

https://en.wikipedia.org/wiki/Anycast


They are most definitely designed to be globally unique, and we fucked it up.


If that was supposed to be the case it's been fucked up since they first gave 19.0.0.0/8 to a car company in 1988, or when IPv4 was originally designed with such a small address range.


> This sounds like it's calling for trouble!

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'm currently working on some airline code. It is amazing how much legacy code written in TPF is there and how restrictive it is. A lot of stuff is designed for straight up screen scraping.


Reuse of identifiers seems to be a theme in aviation https://news.ycombinator.com/item?id=37401864


I love that so many people here think they can think about the problem for 10 seconds and come up with a solution that hasn't already been considered a thousand times and discarded.


Any well-written article should anticipate, ask, and answer the obvious questions. For example: Why not use alphanumeric characters?

And if the answer isn't known by the sources the writer quotes, the writer should say so.


>Why not use alphanumeric characters?

Someone hardcoded that field 50 years ago and it's impossible to change the type. It would be easier to just abandon planes altogether, and set up a parallel transportation system.


I understand that database conversions (especially industry-wide) are hard, but:

> It would be easier to just abandon planes altogether, and set up a parallel transportation system.

Yeah, that might be overdoing it just a bit.


Answered in this comment by “hagbard celine” under the article: https://viewfromthewing.com/airlines-are-running-out-of-flig...


That comment explains the issue but exaggerates the impact. Sure, a change can be made and alphanumeric may not be right. No it won't be anything like the recent Crowdstrike issues. The impact of making a change on downstream systems is solved by planning it out. Communicating the intent and setting a switch over date. Some people may not heed the notices and their systems will crash. That's unfortunate, but just like Y2K or other mandatory updates, it must be done and when a crash happens it will suddenly become very important for that downstream app to issue a patch and at least they will know where/why the break happened.

In terms of datatypes, I like the idea of just going with a 5 digit integer. It seems fairly straightforward to change in most databases/systems. And while having a much smaller upper limit, it's 10x bigger than the limit that's taken us 60 years to reach.

Also, he mentioned no Alphanumeric datatype in Excel Format Cells. It's called General, because it's the default and most of that apps user's don't know what VARCHAR is.


> Some people may not heed the notices and their systems will crash

Some of these systems are indirectly responsible for keeping people safe and alive. This "oh well, you should have paid attention and taken care of it" attitude won't fly.


Nice "won't fly" play on words!

Seriously, this is something that could have been rolled out over the course of years. They could have talked about it at industry conventions and otherwise socialized the idea of updating dependent systems. Are those mission critical systems just willy-nilly connecting to these systems? Or is there some authentication? Because if there's authentication, there's usually some record of contacting the admin of that other system. Like how API service providers know who the owners of API keys are. Make it a required step of their annual FAA filings to certify that they have become 5 digit compliant (or whatever it gets called). If there's a way to make them prove it, make them prove it. If it has to be done to each aircraft, require it.

You get my point, there's so many practical ways to handle this. That's not to say it's easy but it's possible. Even just an audit of systems relying on communications to these legacy system(s) for actual flight operation would be a useful thing that I'd think most airline operators should have documented somewhere.

My thought in that comment was the further way from mission critical systems are the ones that will be more likely to unintentionally ignore the switch over notices and have a crash. At that point we're talking about Kayak.com going down or something that is absolutely not mission critical.

We need to have a way of rationally solving this issue that's not just some throw our hands up and ignore the problem until it's critical type situation. It a reality of our technical world that old stuff will require some breaking updates at some times.


But then at the bottom of the article it said

>They also still have fun with flight numbers for instance running flight 1776 between Philadelphia and Boston; flight 1492 to Columbus; AAA777 to Las Vegas;

AAA777.

Am I missing something?


The "AAA" is a typo, they probably mean "AA777" for American Airlines 777[1].

A far as why the number 777 is amusing, it's gambling. The combination 777 is a jackpot on a slot machine, Additionally AA777 is a great hand (full house) in poker.

[1] https://www.flightaware.com/live/flight/AAL777


Interesting. I thought he was more of a submarine guy.


Very obviously: do not display the hexadecimal code to end users.


So now you have three codes, the old code, a new internal and a new external code.


Two codes.

A competently designed system should be able to convert between "internal" and "external codes" using only trivial string manipulation (e.g. no external dependencies, nor any databases to load at runtime; while adding or removing the code type magic-prefix is trivial; and computing/veriftying/concatenating/trimming any check-digits should also be straightforward, like a CC or VIN check-digit.

...basically, copy what Stripe does (except I wish Stripe would announce a far smaller and reasonable length-limit for their Object-Ids instead of handwaving around a vague reference to needing as 255-char database column - because it messes-up all of my RDBMS query-plans' memory grants because it allocates (N rows * 255 bytes) whereas in reality all of my Stripe Object-Ids are well-under 32 chars in length, _le sigh_.


Just set a reasonable limit and set up a column type change for if you ever have it exceeded?


Don't forget typos


> Why not use alphanumeric characters?

This suggestion is also obviously trivially discarded: it is safe to assume that many, many, many systems expect only numbers in those fields, and will blow up if they encounter letters.


Obviously, the solution is a blockchain and matching cryptocurrency where miners can generate flight IDs which the operators can then buy off of an exchange. I've already pre-mined all convenient and vanity flight IDs for a smooth launch, each ID will be sold at an automated blockchain auction with prices starting at $1000 each. IDs cannot be reused.


Aaaaaaand it's gone.


You're no fun. Obviously any such 10-second solution is unlikely to work in practice. The interesting part is why, specifically a proposed solution won't work; proposing some and having more knowledgeable commenters shoot them down is a way to map out the complexities of the real problem quickly. It's a very good way to learn.


Still, the speculation is more interesting than the mockery of it. If someone is interested in the topic and wasn't invited to the airlines' internal discussions, they are necessarily going to repeat some of those internal discussions.


Yeah, I really don't understand the point of coming to a commenting website where people comment on stories and not expect comments about how they'd do it. Everyone does it at least in their mind, and the speculation as a group is the most fun about reading the news.

What's the point of reading the news if not to muse about "what happens next" or "how we should deal with this" in the story of the humans.

Should we sit there going "Welp, I guess someone knows more about this than me". If we took that attitude you'd never speak about anything.


It's because people don't understand that the problem is not finding a solution, but implementing it. This space is simply a mess, much more than even your normal messy IT.


I think people forget that problems like these have two parts:

- a technical solution that is generally somewhat obvious or at least is picking which of 2 or 3 proposed solution makes the most sense

- a co-ordination problem that will require hundreds of different entities to agree on timelines, rollout plans etc etc

Now, this does happen (Sweden switching traffic side of the road [0] an Y2K) every so often but it's a LOT of work.

0 - https://en.wikipedia.org/wiki/Dagen_H


Agree. This type of article is classic nerd-snipe fodder for the HN masses.


If you like a similar problem to scratch that itch there is also the 37 dogs problem. https://www.youtube.com/watch?v=jMxoGqsmk5Y - a database whose primary id had a maximum of 6 digits, but the id was encoded as roman numerals.


Haha nice, entertaining watch.


But have they considered 5 digit numbers :^)


I can't believe they haven't started using three digits and an emoji.


No checksum???


The emoji is the checksum


Haha, yes. There are always assumptions to make or constraints to consider. But they are also often not obvious, so...

A quote by Fry from Futurama comes to mind:

> Zoidberg: All 6,000 hulls have been breached! > Fry: Oh, the fools! If only they'd built it with 6,001 hulls! When will they learn?


My solution:

Stop codesharing with marketing flight numbers that are useless. Airlines do perfectly fine selling tickets without having the flight marketed by themselves and they can handle inter-airline agreements without it.


Customer behavior is key here. There’s perceived risk with the dreaded “Multiple airlines” option when booking tickets, especially for international flights. No-one wants to find out the hard way that there weren’t agreements or reciprocal status or matching luggage allowances, etc. The code-share is shorthand for “we’re responsible”.


It's safe to assume that if you book on Delta's site then any routings they offer you will have interline agremeent.

Let's say you are traveling from Incheon to Atlanta on a flight with a Delta number. Would you go to the Delta desks to check-in? Maybe... is it a real Delta flight or a flight operated by Korean Air but marketed by Delta? I think getting rid of codesharing would make it much easier for travel novices.


It's also shorthand for "yes, you'll get miles in our plan for this flight".


There are so many agreements for crediting frequent flyer miles that while yes it can help reassure people, there is a million more routes that still credit miles without codeshares to the point where it's useless


It’s the age old problem with software developers.

A problem posited without sufficient solutions is an invitation to them to provide a solution for that problem solving dopamine hit.

Nevermind that nobody has asked for such a thing or whether they’re familiar with the problem space themselves.



Yep. Of course there are ton of solutions that seem better at a glance. More digits! Alphanumeric!

Problem is decades and decades of software with the assumption of 4 digit flight numbers baked in.

My hunch would be an additional airline code would probably be the easiest solution.


There aren't that many solutions. You can go to 5 digit numbers, or use 4 characters with an expanded alphabet, or do nothing. What other solutions could there possibly be?


Change the way you use the numbers


Yes, programmers typically like to do that. Btw, how about using colors?


I have one that I bet the airlines didn’t think about: split them init multiple smaller companies and restore competitive market /s


I don't even understand the point of code-share flight numbers. The first thing I do when I see one is look up the original flight number. Most flight search engines will also show you the original carrier.

Why not just get rid of them and book on the original flight number? Is it needed somehow in their systems to know how a flight was booked or what flights are eligible? Can that be fixed instead of the flight numbers?


Generally in order to ticket an itinerary, there needs to be at least one flight marketed (e.g. with the airline's flight number) by the "plating carrier" whose ticket stock the flights are issued on.

I can't buy an itinerary consisting of just BA238 on aa.com but I can buy AA6981 which is its codeshare. I can also buy an itinerary where I fly AA on BOS-JFK and connect to BA JFK-LHR, because there's at least one AA-marketed flight on the ticket.

The marketing carrier also can affect how the operating carrier gets paid -- codeshares can have different inventory which allows airlines that are partners but not super close to hold back inventory for themselves.


> I can also buy an itinerary where I fly AA on BOS-JFK and connect to BA JFK-LHR, because there's at least one AA-marketed flight on the ticket.

Dunno if that’s a requirement that AA has, but I’ve totally bought 100% Air France metal tickets that don’t even touch US soil on Delta because Delta sold the same itinerary for way less.


You bought them on their DL#### codeshare flight number (what [AA or DL]-marketed means in GP's comment).

I fly a lot of "Delta" flights that are entirely KLM or Republic metal, often buying the Republic flights with Delta points earned on the KLM flights. (NB: the Republic airplanes say “Delta” on the side, while the KLM ones say KLM.)


Aha! That's a very interesting detail!


Generally it's easier to book a trip with legs on different carriers if they have a codeshare arrangement, because you can just do it as a single itinerary through one carrier's web site. Otherwise you often need a travel agent to be able to put together the itinerary (that's not strictly necessary though, just the way they make it work so no technical reason they couldn't just offer non codeshare flight numbers)

The other thing is airline points/status - sometimes you get no status points/miles on non-codeshare partner flight numbers but you do on the codeshare flight numbers.


Also, connections.

If it's a connecting flight, and the incoming flight is running late, then the airline "sorts you out". Basically they know sboit your connection and make a plan.

I've been on a plane out of Heathrow that waited for a 30-min late incoming flight. I've also been on a late flight where my connection has been rebooked for me because we arrived late.

If you book "2 tickets" you're basically a no-show to the first flight, and you're on your own dealing with that airline.


I did that once - book connecting flights on two different tickets - and although I ended up actually making the connection (despite the first flight running 2-3 hours late), the experience was so nerve-racking I swore I’d never do that again. It helped that the flight I was connecting to ended up running late too.

The reason I did it was it was a personal side-trip (to see family) on an international work trip, and although my employer would let me mix work and personal travel on their booking (provided I reimbursed them for the cost of the personal portion), the bureaucracy involved had put me off going down that path.


> provided I reimbursed them for the cost of the personal portion

How does that work, given that the cost of the personal portion isn't independent of the rest of the booking?

I was just looking at a flight plan on kiwi.com that they could book for $900, with the individual legs costing $250, $350, and $500 if booked through the carriers.


They price two itineraries - one with the work part only, the other with both work and personal. They book the combined itinerary and then you reimburse them the differnce


Yep, I’ve done something similar. Flew to a conference for work, then had them fly me to my vacation destination instead of home.

I basically ended up getting a free one-way flight for vacation.


I’m not familiar with Kiwi, but I noticed a comment thread about them on travel.stackexchange.com recently, discussing whether to describe them as “fraud” or just “using booking practices that subject the client to extreme risks”. Be sure to read the fine print on that booking!


The only problem with them is that they will search for and book flights with exactly the maximum luggage allowance that you specify, and they don't make this clear or really point out that you need to specify an amount of luggage corresponding to the amount you'll be taking with you.

They will also show you itineraries that result from booking separate legs of the flight separately, which I'm guessing is what you're referring to. That's not in the fine print; you cannot possibly avoid being made aware when that's happening.


You don't need to be on a codeshare for that to work though, it just needs to be on the same itinerary - the flight numbers can be on different airlines and still on the same itinerary.


Purely speculating, but I always assumed that the rationale for code share flight numbers must have been something technical, e.g. the airline code indicating which airline’s database a given record is located (ticket, bag tracking code etc).

It’s probably not strictly necessary anymore today (as you say, I’m pretty sure I’ve had a ticket across two carries without a codeshare number), but maybe it was at some point?


Do you know of any easy ways to book an arbitrary itinerary across carriers?


I don't know about "arbitrary" but most of my travel I book with something like Expedia ends up being split across carriers without using codeshare numbers. E.g. over Christmas I visited my parents in Australia and the domestic leg to Tokyo was a JL flight number, and international leg was a QF flight number, both on the same itinerary/using the same confirmation code.


A CRS/GDS locator (PNR, the 6-digit alphanumeric code often used to identify tickets, but really only points to a GDSs database entry) and a ticket are not the same thing, though. A PNR can include non-air travel segments like hotels and rental cars too, for example.

That's something very different from a single airline issuing a ticket for a complete itinerary, which importantly makes them responsible for getting you to your final destination in case of missed connections, checking your baggage through etc.

If you still have the confirmations or boarding passes, you could check for the three-digit numeric e-ticket number prefix, which defines which carrier actually issued the ticket.


There was a single ticket number for the itinerary, starting with 081 (Qantas)


JAL (JL) and Quantas (QF) are both members of Oneworld, so they can share itineraries (and things like frequent flyer status and fare class) in a single booking regardless of codeshare.


Sounds like a premium service someone could build. :)


Isn't it entirely dependent on the airlines, what counts as one itinery? How could I contractually obligate them to something they didn't agree to be contractually obligated to?

(BTW: I've had multiairline itineraries many times. I think a lot of airlines are perfectly happy to do it because they can't fly domestic in that country and the domestic airline doesn't fly international. Also, there have been times when I haven't been able to, and I've been worried about it, and I got to the airport for manual checkin, and they've said "oh, i see you have an ongoing flight to such-and-such, do you want me to check you in for the whole journey?")


Nope, they can't, either the GDS allows booking it in which case it's already possible or the GDS doesn't allow booking it and then no app can do it. There are plenty services already which allows you to book the craziest itineraries. Like, ITA Matrix Powertools can construct a clickable link into Orbitz from ITA Matrix searches and it doesn't get crazier than that. There's Bookwithmatrix too.


I guess my question is, is it easier to upgrade the carrier website flight booking engines and mileage programs to deal with the original carrier flight numbers rather than upgrading all of the systems across the industry to deal with a larger name space for flight numbers universally?


Recently, I flew with gf on Etihad from MEL to CDG, via Abu Dhabi. We weren't allowed into the Etihad lounge in Abu Dhabi because even though our flight from there to CDG was an Etihad code, it was codeshare with Air France.

Believe me when I say I was pissed and made sure everybody knew, including the travel agent that booked us that deals with high end corporate travellers.

Etihad lost a bunch of business from AU because of that.


It sounds like the travel agent’s fault for not booking the flight properly. Delta Skyclubs have the marketed and operated by rule, meaning that if you buy and get the ticket issued by Air France then you would have a flight marketed by Air France but Operated by Delta. Of course if this was on a business class ticket you’d have access to any SkyTeam lounges anyways.

Basically your travel agent is incompetent


That's some particular Etihad setup then? When I travel there's often codeshare involved, but as long as the ticket (and the boarding pass shows this) is from the airline I booked with, then I get lounge access (if my ticket allows it) and everything else if there's anything. Doesn't matter if the actual flight is with some other company.


> Why not just get rid of them and book on the original flight number?

That couldn't possibly work, as it will make it more difficult for airlines to play their bullshit games with inventories, differential pricing, status and bonus miles.


Many years ago, I worked on a trading floor.

The legacy trading system (X Windows/Solaris/C++ based) was originally written in a time where market volumes were low so you couldn't have more than 10,000 orders (due to a limit on the size of the order id field).

As volumes increased in the late 2000's, there were days where we were in danger of running out of orders ids.

The fix? The system generated order ids 7 days a week even if trading only happened 5 days so we "borrowed" order ids from Saturday.


> Except they don’t. American Airlines, Delta, and United are running out of flight numbers, and nobody knows what to do about it.

All of the above mentioned airlines are the size they are because of mergers.

Why don’t they use the IATA codes of the airlines they absorbed. For example Delta merged with Northwestern. In addition to DL, they could also use NW. American merged with USAirways. They could use US in addition to AA. United merged with Continental. They could use CO in addition to UA.


>For example Delta merged with Northwestern.

Northwest Airlines.

I'm sorry if I'm pedantic, but Northwest was my childhood airline flying with my dad on many of his business travels and I have many fond memories with them. My Delta SkyMiles account hails from Northwest WorldPerks, opened in 1998!

I might also have a soft spot for Delta because of that too.


Also immortalized in the Hitchcock classic movie "North by Northwest".


AKA Northworst.


I could imagine many legacy systems identifying “their” flights based on the alphanumeric prefix alone (as opposed to doing a database lookup).


Yep. Not only a ton of software would make this assumption, but a ton of human-based processes too.

Lesson: if you make your IDs easily decodable, people will decode them and use them directly instead of whatever API you intended them to use.


That's what happens with requisition numbers for jobs! If they're too short (12345), recruiters remember them, start building manual processes dependent on them, and then when they collide with others on a job board (like Indeed, or if the employer hires an agency to help) you end up needing a parallel identifier...


According to Hyrum's law, this is an API :)


That would be a recipe for confusion among pilots and controllers. They rely on visual sighting of aircraft for some operations and have to maneuver in relation to each other so if the livery doesn't match the IATA code then that increases the risk of error.


Here we are talking about running out of codes due to codeshares; the planes do not identify themselves this way.

But, similar reasons: mixing branding is going to cause confusion (codeshares already do this enough without injecting a “third” airline into the mix).


All the baby AirAsias have virtually identical livery with different codes (FD, QZ, Z2), doesn't seem to be an issue


Since their fleets are based from different home airports, the inflight meal selection is different for FD/QZ/Z2. So, it actually comes in handy for passengers; no surprises.


That’s not really true. The regional carriers like Republic and so on have had a variety of different paint jobs (United Express, American Eagle) and it hasn’t been considered an issue. Not to mention the issue of random call signs like Brickyard and so on.

And regardless of that we’re talking about codeshares anyways.


I'm remembering the ISBN switch, which I thought would throw off some older systems—and it probably did, but it took so long to happen that the transition ended up being pretty smooth. The key element was that for a solid ten years or so, every book had both an old-style and a new-style ISBN (and possibly some still do).

I'm hoping that behind the scenes they really are looking at a better plan than just "work around it", but the workaround can buy them time; and if their operations plan is strong, they'll be able to roll it out very slowly in parallel while all their back-end stuff gets upgraded. (This would require some aspect of the new system to make it immediately distinguishable from the old one, e.g. three-letter airlines or whatever, but that's a minor detail compared to all the other stuff they'd have to work out.) Bonus points if knowing the "old" number lets you algorithmically derive the new one somehow, and vice versa, to make the transition period easier. :)


I still love the bit of book trivia that since 13 digit EAN's start with a country code, you can convert an ISBN-10 into an ISBN-13 by prepending it with the code for "book land" - 978.

(I worked on Library Management Software for 6 years).


You also have to recompute the check digit, of course, for example: 0131103628 -> 9780131103627


Ah yes, you're indeed correct - I forgot that :D

I also used to know what most of the MARC 21 (library interchange format) codes stood for ... but that has now been purged from the memory banks ... except 245 $c - statement of responsibility https://www.loc.gov/marc/bibliographic/bd245.html


> I'm hoping that behind the scenes they really are looking at a better plan than just "work around it",

Airline-IT is mostly just a big pile of workarounds to cope with limitations from 40+ year old systems. I've worked with reservation systems and seen their modernizations through the years. Modern xml-formats shoving megabytes of data for every reservation. They are very wasteful, generously designed with redundant fields, long feature-lists and all kind of annoying shit. But at the end, your whole booking can still drip on the passenger's name being one character too long. Even after decades and multiple iterations of interfaces, at the core the systems today still depend on whatever someone in the 1960s considered as good enough for the US-market.


The entire aviation industry feels like it is in need of a tech stack 100% rebuild.

Systems like Sabre are 60+ years old.


Enormous path dependance.

There's a photo in that article that shows the problem: the flip-tab sign that has space for four numerical digits. I was thinking they could just switch from 0-9 to 0-9A-Z but that photo showed why that would be a disaster.

Plus any solution has to be approved for use worldwide.

Fortunately the two-digit IATA codes have already switched to 0-9A-Z (e.g. JetBlue is B6) so allowing constrained airlines to use two codes should work fine.


True

And that's why they should have started thinking about this 20 years ago (or even before that)

Thinking of something like this: every new development and maintenance should be done with 5 digits in mind. While keeping it backwards compatible for 4 digits


There was no need to have 5 digit codes or more than 0-9 for the flight numbers 20 years ago. Arguably there isn't a need now. It's 3 airlines in the entire world which have this issue because they want to have their own 4000 flights plus codeshare more than 6000 other flights from partner companies.

This is a problem for people inside those 3 airlines to solve within the constraints that the current living world has imposed on them.


Ever hear the saying "If you owe the bank 1 million dollars it's your problem. If you owe the bank 10 billion dollars it's their problem".

You list listed off the largest airlines on the planet of which pretty much every other airline has to interoperate with. This isn't "AA just has to deal with it", it becomes "This is now everyones problem".


Is this anything other than a problem the big 3 have made for themselves for what are essentially marketing reasons?

Is codeshare as a "solution" really the best solution or is it just the best solution that also meets the marketing teams requirements?

Do smaller airlines even care for a solution? Wouldn't a global industry wide solution basically be the big 3 bullying the smaller players to spend tons of money so the big 3 can juice their own mindshare?


Yes I have heard of that saying.

What I am saying is that "the rest of the world" is bigger than AA.


> Plus any solution has to be approved for use worldwide.

I don't see why for instance you could do a slow roll out by using only letters for internal flights of countries that are ready for the switch. If you did that at first only for the USA that would probably leave enough room for Delta and the 2 other companies that need them in the short term. And then you upgrade the rest of north america: Mexico + Canada, then you continue the roll out. I am pretty sure all european countries could coordinate to do the switch at a specific date in the future as well.


I thought of this but you need to be able to book flights in Europe from, say, Mozambique. Flights from Europe may overfly Kazakhstan ATC. And so on. It’s a system.


> I was thinking they could just switch from 0-9 to 0-9A-Z but that photo showed why that would be a disaster.

I guarantee those signs could easily be updated for that. They’re built to allow replacement of each cell and routinely do so since cells break. Switching to 0-9A-Z would take one night for them.


To change the physical tabs, sure. What about whatever drives the tab-switching? Wouldn't surprise me if it's a 1980s solid-state something-or-other with a baked-in 0-9 constraint.


How many airports still have flip-tab signs? Do they need to stay? Aren't they adding to an already noisy area? What's their maintenance cost vs. a LCD? What's their energy consumption vs. a LCD?


>What's their energy consumption vs. a LCD?

Zero when they're not flipping, and close to zero when they are. Even under direct sunlight, to overcome which LCDs need >100W / square meter.


I don’t know about the USA but there are likely millions of them deployed around the world, and working fine.


Same problem on LCD/with the font you use though - those displays are dense, and designed around room for 'AB1234'. Confusing to have it scroll when it already rotates into some other information too.


I think Russia still does.


[flagged]


I do. I was just traveling about a month ago and the gate info had changed on the monitor but not on my phone and this was both ways. I always check the monitor and use that as the system of record over my phone.


I do. "The phone" is just another hassle one doesn't want to take care of on long-distance travel. Paper tickets just work, can't say that for the login for travel / rewards apps when you think you were already logged in when being offline.


I don't disagree, but in 2024 where on earth could you staff large enough team to do such a task with developers that are self-disciplined enough to do it safely?


A collaboration between the US Department of Transportation and the Department of Energy. Lots of solid engineering out of Oak Ridge, Argonne, Sandia Labs. Make it a system owned and operated by the FAA.


> Lots of solid engineering out of Oak Ridge, Argonne, Sandia Labs.

Researchers and academics are quite possibly the last people on earth I would ask to deliver safety-critical software.


Researchers and academics did pretty well on weather models, which are much more important to safety than aviation software, because you can’t just disable severe weather for a few days.


Weather forecasting is a science problem.

Flight codes -- and making sure they don't break systems -- is a software engineering problem.

Different skillsets. I know folks who work at national labs. They have neither the skillset nor the interest to do this kind of work. (I am a researcher)


Strongly agreed. What makes this hard is not something novel algorithmically or in squeezing the last little bit of performance out.

It's the monumental effort of coordination across many, many entities running legacy software and doing so in a way that doesn't take down critical infrastructure in the process.

It's very, very difficult but in a completely different way to building weather modeling systems.


I am curious why you feel that way.


I'm sure every other country on earth will approve of that. This needs to come from IATA, not the FAA.


I don’t have a strong opinion as to which org owns it, as long as it is a neutral non for profit party or other consortium arrangement. IATA did not immediately come to mind, so I appreciate the correction. Upvoted!


More importantly, they wouldn't be able to pay for the talent to pull this off. Also, due to how government contracts work it would almost assuredly end up staffed by eg; Raytheon, Booz Allen, or some other contractor which would hire bottom of the barrel contractors, give them minimal resources, next to no flexibility in requirements, and pocket the money.


Heck, where do you get developers who aren’t convinced it should be rewritten in JavaScript?


In LLM.


I wonder if an LLM could write it in JavaScript using a blockchain.


In the Web 3.0, it probably does. In real life, I wonder …


The problem is more the airlines, IATA and everything else, not so much the reservations systems like Sabre. Those airlines are annoyingly ignorant with their IT, for whatever reason. Sabre&Co. are very active in updating their systems, they could probably any time lift the limitations.


Been done. You need to put in $100 million to be considered serious and get across the table from someone at a carrier. Also helpful to have deep relationships with carriers based on software for other parts of their business.

And then there’s always that risk that some idiotic exec will cancel the project to chase a half billion dollar market instead. I can’t recall where the system needed up being sold to but I’m sure it died an ugly death thereafter. Writing the core in lisp was a risky move.


In 2010, Indian railways switched from a four-digit numbering system to five digits.

They were running out of train numbers.

Indian railways today operates 13,000 trains daily.

There is a PDF that talks about the problem, the solution, exceptions, and a rollout plan.

One fine day, IT systems seamlessly transitioned—-took some time to wipe the old numbers from passengers memories.


I looked up the nickname of the author of the commentary. Now I feel recursion is still running inside my brain


oh man! such a comment ;-)


Do you have a link to the PDF?


I need to fish the exact one but this is the public cover of that

https://indianrailways.gov.in/railwayboard/uploads/directora...


Wouldn't the easy solution be to use two sets of letters for IATA coded flights for the same airline?

Something like "DL1234" and "DZ1234" for Delta?

I know a lot of the two-letter codes are claimed too, and I'm sure there must be some reason this wouldn't work OK, but it would seem like they they would each have at least one code left over from the various airlines they've acquired over the years?

If an American Airlines regional flight started with "TW1234" again, for example, I don't think it would break the world.


It almost certainly would completely break thousands of functions that have those magic letters hard coded into them in fortran, cobol, C or whatever. You might even find that clever people back in the 70s used other ways of representing those letters so you can't even search for them.

I've worked on codebases like this -- I've seen it take a team of engineers years to add a single digit to an ID number in a multi-million LOC mixed language codebase that was written in the 60s.

It's not that it can't be done, it's that it costs millions of dollars and takes years and you're never sure it's actually done because nobody has ever written a single test for the system and if you tried that would take years as well.


But lots of airlines have come and gone or merged over the years and these systems would have already had to deal with new airlines codes?


Probably true. But their own systems internally almost certainly have those magic letters hard coded in thousands of places.


100% facts. They do.

In prior roles, I've worked at 2 of the largest US airlines that have gone through mergers. There are lots of hard-coded letters in decades-old code that help identify what's mainline, regional, and OA (other airline). We're talking everything from reservations (booking) to revenue recognition (flight departure).

It would be no simple feat to upgrade the tech stack. Hell, some of the mergers are still lingering within the systems because airlines wanted to complete it quickly for the passengers. The backend, however, has band-aids all over the place.


And there is so much functional testing that needs to occur on systems boundaries. I'm just thinking of crazy things that happen often enough like luggage getting put on the wrong flight and shipped via another carrier via agreement.


I can start to wrap my head around it a little bit, and if I were handed this task I'd run away screaming.


This solution is so simple it's what they will do. But only after spending millions researching every other solution.


And by "researching" we mean overpaying consultants who will do absolutely nothing useful.


i wanna be a consultant


You can be, the consultancies are hiring. But you need to up your PowerPoint skills.


Half-serious, but where do I get started?



It's honestly really unpleasant spending that much of your life hustling people.

I quit after a year because I hated having to hustle to make payroll.


you can be a consultant!


I get the appeal (and the 60 years of accumulated technical skeletons, and the business and legal necessity) of keeping all of the airline’s segments coded as the same carrier and notionally able to connect to one another. I do wonder, though: in your scheme with a notional “DL” range and a notional “DZ” range, would it be feasible to partition the real-world flight networks in a way that keeps all the tickets as “same-carrier” according to the legacy logic?

That is, could you partition the flight network such that nobody has purchased or ever will purchase a single ticket that spans flights from both ranges? Assuming maybe that a significant number of “backbone” flights (e.g. between hubs) can themselves be “codeshared” between the new DL and DZ ranges. If so, how much new flight number space could you buy, considering the tradeoff between “codeshare all the new DL/DZ flights” and “free up the most new flight numbers”?


That's not such a great solution, it kicks the can down the road and it's super confusing to humans to have the same airline be represented different ways.


As a traveler, I already know the airline name because it's printed on my boarding pass, so I don't really care what two-letter prefix they use; to me it's just another part of the opaque handle they call a flight number.


If only things were always that simple.


It's common in Asia, with regional affiliates like the different AirAsia, LionAir, and VietJet companies having virtually identical branding but different flight prefixes.


I can confirm for AirAsia and Lion Group, and IIRC Ryanair also do this with their UK subsidiary with different flight prefixes and different aircraft registration numbers.


If it's a problem for only 3 airlines in the world, give them a new two letter code, if there are any of those codes left. So airline AA will start using also code ZZ for some of their flights. Travelers will be a little puzzled at first but they'll stop noticing soon.

I sorted the airlines by two letter codes [1] and the list is pretty busy but hex 20 for Space is still available.

[1] https://en.wikipedia.org/wiki/List_of_airline_codes


yup this is the cheapest solution. don't know why anyone would suggest a different approach. i read the DL in delta's computers is hard coded so they can't change it, which could be problematic.


Give the flights a 128 bit number, so we can give each grain of sand on Earth its own flight number.


I'm pretty sure they want to keep flight numbers short because that's how passengers identify their flight. As a passenger, you wouldn't want to be reading signs with 40 digit flight numbers.

Attention passengers, flight 3467548742468759027225995322800483168368 to Dallas is now boarding.


Haha, UUIDs for flights.. that'd be obnoxious.

Maybe use QR-Codes to store/display the UUIDs, and everyone should walk around with Apple helmets (what are they called?) that scan these codes as you walk around in the airport... (Facetious idea)


IPv6 format could at least abbreviate.


::1 is you entering then leaving the terminal immediately.


And here I am frustrated because I have a ticket for flight 3467548742468759027225995322800483168367 but it took 10 minutes for me to find out that you weren't addressing me.


> I'm pretty sure they want to keep flight numbers short because that's how passengers identify their flight.

That wouldn't describe any passenger I've ever known, including myself. We identify our flight by destination and departure time. Airport boards are conveniently sorted by departure time.

In case of a tie, I'd fall back to airline, also indicated separately on the board, but a tie over destination and departure time has never happened.


> Airport boards are conveniently sorted by departure time.

Not true always. Often I see them sorted alphabetically by Destination, then time (in west coast US). Or occasionally (in middle east) by Airline Name & then Time. All Qatar Airlines together. Sometimes even whole LCD Labeled (digitally, on screen) as A-E, F-M etc. and a bit frustrating way, because often I know my flight destination, but not precise time (& sometimes time shifts around), sorted by pure time.


> Not true always

Except that you go on to describe boards being sorted by time? They may also sort by destination or airline, which are the other pieces of information that I noted passengers already know. You can't use an airport without knowing your departure time and airline, and while it's technically possible to use the airport without knowing your destination (sort of... in point of fact, whenever I check in, the clerk invariably asks me where my final destination is), that's not a scenario that's ever going to come up.

Nobody knows their flight number, and therefore they don't use it for any purpose, including the purpose of identifying their flight.

> and a bit frustrating way, because often I know my flight destination, but not precise time (& sometimes time shifts around), sorted by pure time.

What's the frustrating part? If you don't know the precise time, why does that matter? Knowing it to within an hour will unambiguously identify the flight.


In the 1980s, I once boarded a Republic flight from Detroit to Houston. Unfortunately, the flight I paid for from Detroit to Houston was a different (and direct) one.

In Detroit, there was confusion on the plane as someone else had the same seat assignment but they found me another seat. They finally figured out I was on the wrong plane when we landed in Memphis. I was bounced off a full flight and had to wait 8 hours for the next plane to Houston.

Only one of the flight attendants seemed to pay attention to the flight number on my boarding pass.

I was also on a flight once to San Jose, California that had a passenger who was supposed to go to San Jose, Costa Rica.


Do you remember how you ended up getting on that flight?

This is what the logistics look like today for the two cases:

I. (I bought the direct flight)

A. Show up at the airport and check the board for a Republic flight from Detroit to Houston. Learn from the board where the checkin counter is.

B. Check in at that counter ("Final destination: Houston") and be issued a single boarding pass showing the boarding gate.

C. Show up at the gate, which displays information about the flight, including a final destination of Houston.

D. Board.

II. (I bought the cheaper flight with a layover)

A. Show up at the airport and check the board for a Republic flight from Detroit to Memphis. Learn where the checkin counter is. (They're both Republic flights, so this will be the same counter.)

B. Check in at that counter ("Final destination: Houston") and be issued two separate boarding passes, one for a flight from Detroit to Memphis and another for a flight from Memphis to Houston. Only the first one will have a gate number on it.

C. Show up at that gate, which, like the flight board, shows that the flight will be going to Memphis.

D. Board.

The flight number on your boarding pass wouldn't matter, because you'd be trying to board a flight to Memphis using a boarding pass that says you're flying to Houston.

What was different then?


I mostly remember being stuck in Memphis ~40 years ago...

I don't remember what boarding passes looked like then. I assume detachable, printed boarding pass stubs were not yet being used.

I actually started the trip in Grand Rapids, MI where I presumably checked in at the main counter, and received seat assignments for two flights (GRR => DTW, DTW => HOU (Hobby or International). I probably checked a garment bag.

I don't remember the circumstances in Detroit but somehow ended up boarding the Memphis/Houston flight rather than the Houston flight. I don't know if I was at the wrong gate because I read the wrong flight on the monitor, saw a gate with a sign that included Houston, or some other reason. I don't remember any boarding announcement so maybe I had a tight connection.

I then handed my boarding pass to the gate person and boarded the plane. It wasn't until there was a seat conflict in Memphis when a flight attendent noticed my boarding pass did not match this flight.

I suspect it was a one-stop flight rather than a hub-and-spoke connecting flight like I had in Detroit. Maybe the original signage listed both airports. I did not get off the plane in Memphis until the next set of passengers came on and someone said they had my seat. Then finally, an employee finally noticed I was on the wrong flight.

I do remember airline employees discussing that it was a full flight and they considered having someone on an employee ticket give up their seat but in the end they booted me off.

My luggage arrived ahead of me.


This made me chuckle. Some IPv6 zealots are mad!


Sounds like flight GUIDs.


I get constantly baffled at the amount of technical debt that goes on in civil aviation.

The fact that no one just overhauls the system with backward compatibility and sets a deadline for the migration, is just insane for me. All these specific problems are solved, and in production (in freight for instance) for more than 2 decades now. But aviation just goes on with their 70s system.


Trucks are perfectly fine with waiting outside the freight hub if the transportation management software goes down and loses track of everything. A plane in the air is a ticking time bomb that needs to get on the ground before the fuel runs out. Two trucks being just feet away from each other at speed is perfectly fine. Two planes being within half a mile of each other when they shouldn't be is a critical emergency.

Problems in 2D space are amazingly forgiving compared to those that occur in 3D space. The caution civil aviation has is because of the history of flying that is written in blood.


I remember my wife was on a charter flight with 3 initial letters many years ago (in Europe). And when I tried to look up the arrival, many systems could not handle the flight number.

Now slightly unsure whether I did not dream up the whole episode, I did a web search and found https://travel.stackexchange.com/questions/157429/what-is-th...

So IATA seems to have formally introduced that in 1994. (Whether they have abandoned it again later I don't know.) So big airlines could just get a additional 3rd letter(s). The first 2 would not have to change, which makes it easier for humans.


It's more likely that the flight in question was using the three letter ICAO code in its passenger facing flight number. I have never known a three character IATA code to be used despite it technically being within the specification.


I hate out-and-back flight numbers (where they reuse the same flight number for a flight and for its reverse). It makes it really confusing to actually find the flight status and such.

Separately I also find code-sharing slightly confusing, especially if you're trying to find out who's actually operating your flight for things like checkin counter, etc.


You can do it like Easyjet. They have normal easyJet EZY, easyJet Switzerland S.A. EZS, easyJet Europe Gmbh EJU. Problem solved. OK they have a lot fewer planes than United but 99% of their flights are short (<3h) so they probably need similar number of flight numbers


Code-sharing is a headache for customers. Trying to find your flight on a rotating screen is frustrating, and having a different flight number on your ticket compared to the actual flight is just confusing. We should do away with code-share numbers and use the operating airline’s flight number instead.


Obviously the solution is airline code + iata source airport + iata dest airport + airline scheduled flight # for the day/week

UA-LGA-LAX-001

LH-LHR-FRA-012

/obviously/


This also doesn’t take up any more data, the pnrs have this info anyway, it’s just reordering it

UA001 from LGA to LAX

LH012 from LHR to FRA


Anyone who’s worked doing any kind of IT for the aviation industry knows how much of a clusterf*ck the spec for PNR is. Flight codes are the least of the limitations there.


Using Hexadecimal instead gives over 6.5 times as many possibilities in the same 4 characters - should be more than adequate.

I know airline systems have a lot of legacy code so it might be difficult, but at least logistically (having adequate space to print / display them), and for humans to deal with it's not too difficult.


Not sure if I'd want the flight number DEAD.


I wonder if I see an earlier version of this problem - I take the flight BA988 from London to Berlin a few times a year, and in some systems it will appear as BA0988 - possibly because some can handle 3 digit and some neee 4 digit flight numbers.


as you are a person who takes the same flight frequently , wont it be easier having the same flight number ? the flight companies should just make the flight numbers fixed for a fixed route, like local buses.


I'm a little confused by your comment - Airlines do re-use flight numbers - BA988 is always the BA flight from LHR to BER at around 19:30 (i.e. there will be a BA988 today, there was one yesterday, and there will be another tomorrow).

But to be honest, I'd also say it's not that useful for me personally. It's a lot easier to remember your destination and fight-time - (i.e. I'm on the 19:30 to Berlin) than a flight-number, and only once do I think there was ever the potential for confusion).

[You experience may vary, especially if you are are used to flying a busy flight corridor.]


true that


> assigning the same flight number to more than one flight a day (although that means they need for it to be flights that would never both be in the air at the same time, such as where the same plane is used and can’t reasonably be substituted)

I thought this was already common on a lot of airlines. For example, tomorrow, Southwest flight 1861 goes from MDW to DAL from 1:55pm to 4:10pm, then from DAL to SNA from 4:50pm to 5:55pm, then from SNA to PHX from 6:30pm to 7:50pm. I was on two legs of a similar flight a few years ago, and I didn't even have to get off the plane at Love Field.


One should note, this is why SW completely falls apart when mass weather delays or computer systems crashes occur. They have any number of 'serialized' components in their system that are efficient in optimal situations but degrade poorly.


The headline is a bit misleading. Because it's not "airlines" in general, but:

> and it’s really only a problem for three airlines in the world.


It's 3 airlines in the USA that have this problem because they want to add more codeshare flights that other airlines are running.

I don't think there will be enough motivation from the rest of the world to solve this problem any time soon.


American Airlines has the most flights of any airline on the planet. It's kinda like saying "The person that spends $1 a day and the person that spends $1 million a day have the same standing to a business".


A lot of the software used to coordinate this stuff is very ancient at this point. The fix is straightforward from a technical point of view but super complicated to implement because it involves replacing/fixing half a century old software systems in use in thousands of companies across the industry. Probably a lot of cobol and other crap that is still in use for this.


And if you thought flight numbers are complicated, wait until you see what is in the future for PNR codes:

https://www.iata.org/en/programs/airline-distribution/retail...


Record-oriented storage and SABRE strikes again!


Part of the problem is codesharing, you have to use two flight numbers for the same flight. The whole practice is confusing and I don't think it should be allowed, except in the rarest of circumstances. The seat quality is also suspect at best, when you're not directly buying from the operating carrier.


Why are they bothering passengers with flight numbers?

If computers were like airplanes, programmers would show pointers to users.


What would stop the airlines to use more than one airline code? For example for American Airlines not only to use flight numbers like AAxxxx but also ABxxxx. AB is assigned to Air Berlin, which went out of service in 2017.

Edit: A1 seems to be unassigned, which might be even better, to not create confusions.


That's my hunch too (since you can basically forget anything like 5 digit numbers of alphanumeric due to old DBs that can't be migrated easily).

Probably the issue is that lots of assumptions around AA exclusively being American Airlines is baked in somewhere. That said, it seems easier than any of the alternatives (and recycling seems excessively risky and confusing).


Maybe, just maybe the solution is to stop flight code sharing. Having one flight under different numbers is confusing at best and feels misleading. Just imagine giving airlines more space to spam everyone with a magnitude more numbers. Just picture announcement boards at airports…


> So for us, and other two big competitors, we found workarounds for it. And I think the technology investment would be too great…

The is where we all say “not my problem” and don’t give it another thought. Don’t waste your time on these guys.


Maybe the opportunity to raise price really high and save the planet


I like how everyone is looking for technical solutions, where the trivial one is to reduce the number of flights.

It's not like we're not in a climate crisis after all.


They already have a better solution. Did you see AAA777 to Las Vegas. So they are able to add alpha to numerics, when needed. Return flights sharing the number? Why not.


Are you sure that’s a real flight number, and you’re not confusing it with AAL777 (which would be AA’s ICAO code, AA being IATA)?

I don’t think alphanumeric flight numbers are a thing currently.


AF296Q was a flight which crashed in 1988

They are rare though


They are not very rare. Letter suffixes are very common in Europe to avoid potential ambiguity. However they do not change the actual flight number portion. https://www.flightradar24.com/blog/clearing-up-call-sign-con...


Call signs have letters sure, but while I think I’ve seen letters on departure boards they are rare.


Is that meant to be a slot machine reference? "May all your slot machines come up sevens"?


> Did you see AAA777 to Las Vegas.

That's just a typo in the article, the actual flight number is AA777

https://www.airportia.com/flights/aa777/dallas-fort-worth/la...


This software is goign to have a REAL problem in 2038. If they can't add a single digit field, they are going to have a problem with time_t.


I wonder if they have enough 2 digit letters to expand their usages.

Perhaps American Airlines could have both AA & AB, so they would then have 20k flight numbers to use?


Can they switch to a radix of 36 instead of decimal numbers ?


Too much consolidation? Time to split up them again?


Code shares are between airlines that generally operate in different markets.

Delta code sharing with Air France may limit direct competition on the few international routes they share, but in general it is also good for passengers because Delta cannot operate flights wholly within Europe and Air France cannot operate domestic US flights. Code sharing allows a passenger to buy one itinerary complete with rescheduling for missed connections and correctly handled baggage.


It won't be a problem soon as airlines worldwide will obviously be scaling back flights due to climate change, right? ;)

/s (just in case)


The biggest challenge here isn't the tech/standards problem.

It's what this signals for the future of the planet's climate.


Indeed. Just reduce the number of flights already. That should give room in your 4-digit space.


"Four digits ought to be enough for everybody!" ... looks down at his hands...


IPv6 is the answer: now boarding to Salt Lake: DAL:1050:0:0:0:5:600:300c:326


That's easy: fork the airline. Or have you run out of 2 letters too?


Stupid here, but how hard is to change it to alphabumerical?


5 digits instead of 4?


The amount of travel industry software is huge, and a mix of ancient and new. Makes sense, but would take years.


Shouldn't they had started thinking about that 20 years ago as to be ready now?


Easy, add a leading 0... Oh wait they probably store them as integers, but then it wouldn't matter how many digits... Oh wait some places it's fixed length strings


trailing zero works with integer storage, i.e. old 1234 becomes 12340 and new flight number could be 12345.

Mentally if the number has significance for sort order etc, you can think they are like decimals they would be 1234.0 and 1234.5, when not set in older systems it can be ignored i.e. 1234.0 is same as 1234.


There's a decent chance that several important airline systems are storing things in fixed-width fields, so that, e.g., the flight number is columns 25-28.


give the really big airlines some numeric codes that start with the right number. For example, give Delta D7 as well. Then they can have DL1234 and D71234 etc


> The computer systems airlines use are built on top of systems that are built on top of systems that date back sixty years.

It means it’s the time to upgrade the system.


That's like changing the definition of UTF-8. You have no idea what is depending on the exact byte order of everything spooling out from the core.


They need NAT!


Switch to hex.


Or just use letters in addition to numbers in the flight number. It woudn't take any more space in the data field, but chances are that a lot of them are coded as PIC 9(4) instead of PIC X(4).


if they re-use the flight number maybe they can add a letter suffix to it. e.g. 1555B?


Someone introduce them to IPv6


Hexadecimal?


how about they help jumpstart the economy and hire engineers to fix the problem?


This is the tipping point that will make the world switch from passenger flights to high-speed rail.


I've taken Amtrak. It's honestly not bad service wise. It is slow, has the lowest priority on a lot of track, has almost no backup options if something goes wrong on the train, and has some very old equipment in service.

If it were just twice as fast, was given priority or had it's own tracks, and had enough trains that a following one could pick you up in a disaster, and without random bedrooms that just smell like the 1970s, I would take it almost exclusively.

Otherwise.. sadly.. Amtrak is for when I don't actually care if I arrive at my destination or not. If I'm lucky I get where I'm going and most of the time I get a steak on the way.


Maybe when a train costs less than an airplane ticket. But right now the train costs more and takes longer. Why would I do that?


You usually need to factor the whole trip as most trains start and stop in city centers while airports are sometimes very remote from the cities.

YMMV but where I live, I need to either pay for the parking at the airport, have someone shuttle me or take a taxi/regional train/bus to the airport.

For domestic use in my country, plane is competitive on paper, meaning some flights are much cheaper than train tickets. However the cheapest flights are the early and late flights which means regional train/bus to go to the airport are not an option. Usually you don't want to annoy friend/family very late in the morning/night because...well that's kind of rude. So you have to either use your own car and pay more for the parking than the actual plane ticket, or take a taxi that will also cost more than the plane ticket. Congratulations! The cost of your trip has already doubled or tripled from the advertised price! Now if you haven't thought of making your own sandwich add the aditionnal cost of buying food + drink at the airport and you will be adding again more than the original price of the one-way plane ticket! And that is without even mentionning the shady tactics of some cheap companies. Take a ryanair flight for instance, and once in a while they will ask you to check your luggage in one of their bagage check gauge and charge you whenever you have a bag that cannot stand upright on its own even if it fits the gauge and will force you to pay an aditionnal 70€ fee.

As for the time, it is also something where you have to consider the sum of all. My rule of thumb is regardless where I am flying, I know I will lose pretty much half a day. When doing sub 3h flights you are usually spending as much or more time commuting in/out of the airport and in the airport than flying.

On the other hand the train station will allow you to take your own drinks, and even if you didn't have time to make yourself a good sandwich, and don't want to pay for the more expensive options at railway station you will always find some cheap takeaways or supermarket close to it. The railyway station is usually in a city center as well which may be more convenient in many situations and you can reach the railway station 5 minutes from the departure time and you will still be fine.

Once you have factored all that, the train can often end up being the cheaper option, as well as the fastest one if this is an high speed train and you don't have to change train.


> as most trains start and stop in city centers while airports are sometimes very remote from the cities.

You write that as a negative, but for me that's just an even bigger bonus. The only thing I want from a city center is how to get out of the city center. I never actually want to go there.

I have not personally noticed much difference in commute costs plane vs train. Car trips, taxis, and public transport, have all been around the same time and cost to both. And the plane tickets I've looked at have been at all kinds of hours, early, middle of the day, and late. Exactly the same with the train, there's no specific pattern. (Obviously this is very specific to the location.)

You have a point with the food, it's easier to bring on a train - luggage as well, but then again the plane is so much faster you don't need to bring as much food.

And I do factor in wait time for an airport, very short trips are faster and cheaper in your car, longer trips are better in a plane. The train just doesn't really fit in anywhere - it's the same speed, or slower, than a car, and less convenient. (Even if the train is physically faster, getting to/from the station adds so much time the car works out faster.)

I book a lot of Spirit flights, and not only are they cheaper than a train, they are even cheaper than a bus! Every one in a while I go back and check all 3 options, and the plane and (occasionally) car win every time.

If you want people to take more train trips they need to cost 1/10 of what they currently do, or at least be 5 times faster. Without that, well, people just aren't going to use them.


Then we'll see "Railroads are running out of 4-digit train numbers" or similar before long.


More and more airlines are selling plane+train (or plane+bus) itineraries and giving the train system its own 2 letter value + “flight” number. Might happen.


Time for hexadecimal.


I have carefully read the entire thread and nobody has said the answer yet.

Blockchain Ai.


"Oh no"

* adds a 5th digit


... to every codebase, flip display and whatelse not in the world


I generally know better than to read the native comments on articles like this, but I've not really woken up yet. Are those merely stupid when they suggest using alphanumeric, or are they abominably stupid because the backend only allows numeric codes?


they're going to have to NAT them


Yeah, it's like the time the NASDAQ first had more than 65535 tradeable things.


Just give each airline another prefix UA1234 -> UN1234.


Can they have another prefix in addition to "AA"?


[flagged]


China is probably the best case scenario for high speed trains. They have high population density to support train networks, virtually no opposition from NIMBYs, and low construction costs. Yet high speed trains there operate at a loss[1], and airplanes are still competitive there. If high speed rail doesn't work there, how could you seriously claim we should switch all air travel to high speed rail?

[1] https://en.wikipedia.org/wiki/High-speed_rail_in_China#Profi...


the problem with comparing these things by their ticket prices is that markets don’t consider externalities. making and fueling a plane might allow me to sell tickets cheaper than a train, but only if we ignore the cost of the carbon output (since neither the flyer nor the airline pay for this, but society at large does)

i wonder how this comparison would shake out if you included a carbon tax that effectively measured the cost of these trips on the globe.


A SF -> NY round trip direct flight costs $362 and emits 554kg co2e according to google flights. The price of carbon by various emissions trading systems vary from less than $10 to almost $100 per tonne[1]. Of course, you could argue that such systems aren't fully capturing the cost of carbon, and therefore using prices for those systems would be an underestimate. Direct air capture literally extracts carbon from the air to sequester underground, which provides an upper bound on the cost of carbon. Climeworks says it only costs around $600/tonne today[2], with them and various startups claiming they can get it down to $100-$200 in the future. Taking all those numbers into account, here's how much airline fares would increase if carbon cost is factored in:

cheap ETS ($10): 1.5%

expensive ETS ($100): 15%

future DAC ($200): 31%

current DAC: ($600): 92%

Of course this doesn't factor in the cost of the electricity used to power the trains, which would at least partially be from carbon emitting sources. Given that, and the fact that building high speed rail is fraught with uncertainty and cost overruns, the highest fare increase you could plausibly argue for is the "future DAC" figure. This may be enough to advocate for banning air travel for short to medium length journeys, but I doubt long haul flights are going anywhere.

[1] https://www.economist.com/cdn-cgi/image/width=1424,quality=8...

[2] https://www.carbonbrief.org/swiss-company-hoping-capture-1-g...


Why does it matter that they operate at a loss?

Does China subsidise its air industry like other countries (jet fuel is duty free in the UK)


>Why does it matter that they operate at a loss?

Because if it's massively subsidized by the state, and air travel is still competitive (at least for some journeys), I doubt high speed rail is good enough to fully supplant airlines on its merits alone.

>Does China subsidise its air industry like other countries (jet fuel is duty free in the UK)

Why is jet fuel being duty free a "subsidy"? High speed rail is powered by electricity, which as far as I know doesn't have duty applied either.


> Because if it's massively subsidized by the state, and air travel is still around, I doubt high speed rail is good enough to supplant airlines on its merits alone.

Is annihilation of the air transport sector really your bar as to whether or not HSR is good enough?

> Why is jet fuel being duty free a "subsidy"? High speed rail is powered by electricity, which as far as I know doesn't have duty applied either.

When the government taxes all other transport fuels except jet fuel, it sure looks like a subsidy. Of course, fuel duty policy is not the only way in which a state can choose to support a private industry.


> When the government taxes all other transport fuels except jet fuel, it sure looks like a subsidy.

Maybe because planes don't cause massive burden on infrastructure. Look at how much road damage buses do - you're a better off riding in an actual taxi...


>Is annihilation of the air transport sector really your bar as to whether or not HSR is good enough?

"good enough" with respect to "Air travel should be for medical emergencies only"? Yes.

>When the government taxes all other transport fuels except jet fuel, it sure looks like a subsidy. Of course, fuel duty policy is not the only way in which a state can choose to support a private industry.

high speed trains in china run on electricity. I'm not sure how fuel duties are relevant here.


> good enough" with respect to "Air travel should be for medical emergencies only"? Yes.

Seems a little extreme to me, but fine.

> high speed trains in china run on electricity. I'm not sure how fuel duties are relevant here.

Because to highlight how HSR "runs at a loss" without mentioning the enormous state subsidies that go to the aviation sector, without which air travel would also run at a loss, is a little selective.

But, as you say, this is China. I think "profit and loss" mean slightly different things there.


>Seems a little extreme to me, but fine.

Blame thanatos519, which made the claim and caused me to reply, not me.

>Because to highlight how HSR "runs at a loss" without mentioning the enormous state subsidies that go to the aviation sector

Again, I'm not disagreeing with this line of reasoning, only pointing out that it's incomplete. High speed trains most definitely received subsidies in the form of government financing, and not having to turn a profit. Your response to that is... airlines might be getting subsidies too but you you can't really point out what they are? Or are you claiming that the fact that other fuels are subject to duties, jet fuel isn't, then airlines are getting "subsidies", even if HSRs aren't taxed in the same way (ie. for electricity)?

>But, as you say, this is China. I think "profit and loss" mean slightly different things there.

???


> Blame thanatos519, which made the claim and caused me to reply, not me.

Sure. I'm just saying that I don't agree that "not making a loss" is a prerequisite for any type of measure of success. Lots of things are successful that don't turn a direct profit.

> Your response to that is... airlines might be getting subsidies too but you you can't really point out what they are? Or are you claiming that the fact that other fuels are subject to duties, jet fuel isn't, then airlines are getting "subsidies", even if HSRs aren't taxed in the same way (ie. for electricity)?

I'm saying lots in both sectors is subsidised, all the way from manufacturing through to runtime costs.

Whether or not a railway or a flight route makes a "profit" or "loss" is really down to level of state funding across the whole industry, so using it as a measure to see which mode of transport is 'better' is (I think) not very enlightening.


Because if they aren't, they are unsustainable. It's good to have self-sustainable industries rather than endless businesses (state owned or not) forever sucking on the public teet.


> It's good to have self-sustainable industries...

There's no such thing as a 'self-sustaining industry'.

They all rely on common transportation infrastructure which they use to ship their materials and goods around and get their employees to work. They all rely on a predictable and fair marketplace whose fairness is governed by the state, and they all rely on people not coming and burning their premises down because they're protected by the state!


Self sustaining means they generate enough revenues to cover their costs. Not that they are closed systems with no interaction with general society.


My point is that they don't feel their costs. Therefore by definition they're all "forever sucking on the public teet."


It doesn’t matter to me that transportation operates at a loss. It’s a good thing that people can afford to go where they need to.

Maybe a stronger argument is the fact that airlines are so popular at all. High speed rail is great but air travel is still 2-3x faster over long distances, and China is a big country. If we had high speed rail in the US, people would still probably opt for air travel a lot of the time. New York to LA would take 9+ hours.


Slow-speed trains compete with car trips, not airlines. They are profitable where people invest into trains like they invest into highways.

Focus on that instead if you want trains. High-speed trains are only useful as a value-add to an existing slow-speed train network. Not as its own thing in itself.


Is the concept of NIMBY even possible in China considering the state owns the land?


Do people in the US truly own their land? In China, you lease your land from the state for up to 70 years at a time, and the leases are based on the land value. It's functionally a land value tax by another name.

But that doesn't mean Chinese people have zero rights with regard to the land they lease.


NIMBY literally means "not in my backyard". Ownership has little to do with it. If you don't want a homeless shelter built next to where you rent, you're still a NIMBY, even if you don't own anything. Owning something might make you more inclined to object to developments, it's not a necessary factor.


Guess I wasn't clear. Yes ownership isn't essential but does make you more inclined to object to perceived negatives. In China the state owns the land, not the municipalities, nor private parties, so even if you live there you don't have much of a say. The state makes plans at such a large scale. This is why the Chinese are so efficient at building high speed rail, there aren't smaller municipalities, property owners, etc. that can object.


> In China the state owns the land, not the municipalities, nor private parties

How do you explain nail houses in China then?

https://www.theguardian.com/cities/gallery/2014/apr/15/china...

Any chance your bold assertion is something you just pulled out of the air?


>How do you explain nail houses in China then?

A private entity trying to buy a private entity is not the same as the Chinese government taking or using the land they, the state, owns:

"According to the Constitution, land in cities is owned by the State; land in the rural and suburban areas is owned by the State or by collectives. (Constitution, art. 10.) Although individuals cannot privately own land, they may obtain transferable land-use rights for a number of years for a fee."[0]

Any chance your bold assertion is something you just pulled out of the air?

[0] https://blogs.loc.gov/law/2015/03/chinese-law-on-private-own...


>In China the state owns the land, not the municipalities, nor private parties, so even if you live there you don't have much of a say.

You're confusing cause an effect. The reason why people there don't have much of a say isn't because they can't own land. In fact both are caused by the same common factor: the country is communist.


> Easy solution: Pivot your entire business to high speed rail so we can continue to live on this planet.

> Air travel should be for medical emergencies only.

Some nuance would be nice here. Although high-speed rail from Hawaii to Australia would be a blast.


Hawaii to Australia will use a high-speed sailboat.


Currently in Hawaii. Surfs up bruh. Mahalo.


That's a bold stance when first world countries depend on immigrants who need to take intercontinental flights to see their families every year. Let them eat rail.


Sounds like a great opportunity to limit the size of an airline and promote competition: each airline can't have more than 10,000 registered flights.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: