This is in Switzerland, near Zurich. Yes, sunny apartment. There is direct light from sunrise (left horizon on the photo) until 3pm or so (buildings block it on the other side).
In the BBS days before the internet really, my dad told me not to use my full name online. So I used martinxyz. This was getting old soon, so I contracted it to maxy. Some people now call me Max online, which I find kind of funny. I'm no longer trying to hide the link to my full name, I just don't actively mention it because it really doesn't matter. And when I want to cut the link I use pwgen.
Thanks for the follow-up. Of course you would have some kind of mass-deployment, it didn't think of that. I thought you'd maybe copy the Windows MAC to Linux, but... then you'd remember doing that.
Next up, they will also all have the same ssh host key ;-) (Which may be an advantage actually, but still confusing.) Those are the kind of problems cloud-init is solving, I guess.
Sounds like a networking exercise on its own.
Do the attempted pings show up on the wire? (Switch LEDs, network card activity light.)
Does broadcast work? (Watch if it is received with tcpdump -n on both Linux VMs, and Wireshark on the Windows hosts, while doing ping -b 10.0.0.255. Or trigger a broadcast ARP by ping-ing a non-existing IP in the same network. Those should go through all bridge and switch devices, independent of IPs and routing setup.)
I think you need four distinct MAC addresses for this setup, are they all different?
The network card/driver is filtering received unicast by MAC. I'm sure something should set up the filters correctly, but maybe it went wrong, or there is a bug in the driver. Wireshark on Windows should be able to enable promiscuous mode, which disables the filter.
Side note: I don't think you need a crossover cable. Auto-crossover should just work these days.
At work I map a USB Ethernet device into my Linux VM when I do anything networking, exactly to avoid those kind of "is it Windows?" questions. Also, I can then check the Ethernet link at the lowest level using Linux tools like ip link or mii-tool or ethtool.
I'm using VMWare for this, which I cannot recommend any more. (It used to be good for this, but gut much worse in recent years.) I think vanilla VirtualBox doesn't allow to map USB devices.
Well the problem is trying to attach the concept of "done" to a bitstream. You can release it, but then the release is "done", not the software. You can evaluate software only in a specific cultural context, where it can be useful or not. Software is more similar to a law than to a fabricated pencil. Laws are updated and re-interpreted as the culture around them evolves, and they are "done" when the culture is done.
I like this quote:
The more we see creative software engineering as monotonous ticket crunching instead of learning and experimentation, the more we compare producing software to building houses. With that analogy, you can only go wrong. (Niko Heikkilä)
In other words, a factory product is "done" when it passes QA. You can try to apply the same productivity mentality to software (or to laws) but it just doesn't make sense, because those are instructions how to do things, and not products to be consumed. It's not a factory product, it's a living cultural process.
Easy: Most software is done when nobody uses it any more.
If the code you wrote 10 years ago still isn't quite done yet, you should celebrate. If someone still cares enough to consider it broken, or can think of improvements, it means that it is useful. In contrast to: finished and done with.
I like Pl@ntNet. Except for the time it told me "Not a plant. Maybe fungi?" Technically correct, but...
The only thing I noticed is that the size of the pot has a huge effect on its growth.
Apart from that, I have no idea what I'm doing right. It may be the sunny, south-facing window. I have harvested several pineapple fruits over the years. They seem to be absolutely unstoppable and unkillable and predictable in their growth here. They don't care about seasons (it's snowing!). The only time I managed to kill one is when I put the pot outside in summer - it went bad in just three days.
Older photos: https://log2.ch/gal/ananas/
I'm still proud of my rendering of the logistic map. It was mostly just to learn more Rust, but it rendered this beatuiful picture with relatively little code. And mostly by accident, I didn't know I would get those cool shadows!

I don't keep track, but I'd say about 3 years from store-bought pineapple (fruit with crown, cut off the bottom leaves) to flower.
I have harvested several already. I don't know what I'm doing right, but I consistently get a flower and a fruit. I think it's the warm and sunny location.
Anyway, here is what I do: Water every 2 weeks (pineapples are specialized to survive dryness and store water in their leaves, so not too much I guess). The tap water is a bit hard here, and I read you should filter it so I always do, but never tested without. Standard soil, a few stones as drainage in the bottom (I doubt this matters a lot). Do not put the plant on the balcony on a sunny summer day, when I did it wilted within 2 days and didn't recover. I guess it really hates cool nights. The pot size has a big influence, the size in the photo seems to be optimal, with a smaller pot I get smaller leaves and a smaller fruit (600g instead of 1100g).
And before you take my advice, I should mention that many plants have wilted in my care at that window. Just not pineapples.