7,252 karma · joined March 13, 2014
I would say that's a bit of a stretch.
It is true Germany has a long history if immigration, but before modern times that was mostly from eastern and southern Europe, not from other continents [1].
[1] https://hypertextbook.com/facts/2001/JacquelineLing.shtml
A few weeks later I went to the local MG dealership. They told me I could have an MG4, the high-end model (heated seats, automatic AC, fast charging), with 420KM range, for ~35000€. I asked how long it would take to have the car once ordered. They told me I could have it the next day, I would just need to choose a color that's in stock.
I bought the MG.
Basically, the European manufacturers sell cars made to order. You tell them the exact model you want, the color you want, and they put it on their roster, to come out of the factory months later.
The Chinese bring over thousands of cars to Europe, and they just sell whatever is in stock. When they have too much stock, they reduce the price. They don't even really care about those pesky European import tariffs.
Those Chinese cars are better equipped, have longer range, and cost less than the European ones. Meanwhile, the Europeans are busy selling their old petrol-burning models to south America in exchange for cheap south-American meat [1]. No wonder they're losing the EV war.
[1] https://apnews.com/article/uruguay-mercosur-european-union-t...
I like to think we humans are also part of nature, therefore our work, and our creations, cannot be so clearly separated from nature. In the same manner, the work of bees and ants can also be called artificial, in the sense that they practice a craft and manipulate the natural world around them. For me it's all on the same spectrum.
Having written a few libs for working with io_uring (in Ruby), cancellation is indeed tricky, with regards to keeping track of buffers. This is an area where working with fibers (i.e. stackful coroutines) is beneficial. If you keep metadata (and even buffers) for the ongoing I/O op on the stack, there's much less book-keeping involved. Managing the I/O op lifetime, especially cleaning up, becomes much simpler, as long as you make sure to not return before receiving a CQE, even after having issued a cancellation SQE.
Personally, I find this kind of workflow totally counter-productive. My own programming workflow is ~90% mental work / doing sketches with pen & paper, and ~10% writing the code. When I do sit down to write the code, I know already what I want to write, don't need suggestions.
https://www.haaretz.com/israel-news/2024-10-01/ty-article-li...
In fact, the whole idea for this library is to provide a low-level, fast, flexible, asynchronous I/O layer for building Ruby apps and letting Ruby+YJIT optimize the app code, which it actually is getting pretty good at.
If you're open to learning more about where the Ruby runtime is performance-wise, there was a very interesting recent talk [1] about this very subject.
[0] https://github.com/digital-fabric/iou/blob/main/examples/htt... [1] https://www.youtube.com/watch?v=qf5V02QNMnA
I have to say, it's been a few years since I last did front-end dev work, and I was really pleasantly surprised by how much better CSS and Javascript became. All in all, it's been a really positive experience.
Hehe, I got some laying next to my driveway, for use in muddy situations. Here in France you can still find them here and there.