But from the very beginning, Canonical/Ubuntu chose to make mirroring the repo easy, and encouraged the usual network of public mirrors to participate, much as Debian and other distros had done for years. (It wouldn't be unfair to say that Canonical/Ubuntu had to meet the expectation those distributions had set.)
That is something the WordPress community (albeit centralised in the WordPress.org decision makers) could have been doing for decades.
You're describing social impairments, which are there too, but this is a different issue. More common with people that have very severe ADHD symptoms, moreso than ASD ones.
What causes the "ADHD as extreme follower" issue -- which I have speculatively explained as a concequence of repeated social rejection with the capacity and desire for acceptance.
This is quite different than in actual BPD where I'm not even really sure BPD people actually understand social acceptance or really want it. It's more extreme than that: there isnt a basic capacity for identity developed enough to actually have a BPD person understand that they are or are not accepted. Not least, since most BPD are actually readily accepted into most social groups over the short term. Whereas in ADHD, impulsive responses impair that acceptance over most time horizons.
When I started using Honeycomb, I had such a wonderful integration experience with their Beeline SDKs.
Then they transitioned to OpenTelemetry – for very good, justifiable, "good community member" reasons – and yikes, everything got so much more complicated. We ended up writing our own moral equivalent to the Beeline SDK. (And Honeycomb have followed up since with their own wrappers.)
There's so much I love about Open Source, but piles and piles of wildly generic, unopinionated code... ooft. :-)
Two key differences: Linux is (mostly) licensed under the GPL version 2.0 only, and has diverse copyright ownership. No single person or entity can change the license. That means no one can pull the rug from under the community like the Redis change (and so many other corporate-controlled, copyright-assigned, non-copyleft projects).
(Linux also has a huge pool of users and contributors, which discourages hostile forking, even if the licensing wasn't a factor.)
Yes. Directly – no CDK or wrappers – using the serverless transform when it makes sense.
I know how CloudFormation behaves, and none of the wrappers have convinced me that translating through CloudFormation makes sense. ("through" because if you're using CDK, you're translating from imperative to declarative to imperative... why?!)
The libraries for other supported languages of CDK are built as wrappers for underlying JS or maybe TS code via https://github.com/aws/jsii
So all the core CDK code is written first in JS/TS and then stubs for the other languages are added
Unfortunately this is often done without consideration for how the other supported langs actually work, and artefacts of e.g. JS lack of support for kwargs leak through
This is why e.g. the typing in CDK Python is completely broken - pretty much uniformly the concrete types like "Resource" don't implement their corresponding interface like "IResource" (to a type checker)
(There are many other typing niggles like this but that's the most egregious and pervasive one)
At the end of the day, having to explicitly cast concrete types as their interface to satisfy type checker is a minor annoyance, albeit a stupid one that could have been avoided with more care in the core library.
I could live with that, but I encountered so many bugs and issues trying to use CDK on current project that it's now much clearer to me why every company I worked at previously was using Terraform.
Pretty sure some of those issues are ultimately CloudFormation ones. The cumbersome CF > CDK JS > CDK Python stack is great for obfuscating errors and making debugging hard or impossible though.
Pulumi do something similar, albeit with Go as the core language and Terraform underneath. From what I've seen with a little use they have a much more successful result though, Pulumi Python was not a complete mess, and deploys faster and more reliable with better error feedback. I guess they just took more care to get it right.
Plain CF sucks because it doesn't really provide any kind of abstraction capability. So in any kind of real world application the yaml gets humongous that is very hard to review.
I would have been perfectly happy to use CF if they added the notion of higher level constructs at CF level, but for whatever reason they haven't. So I use CDK because it provides the ability to reuse service compositions from third party libraries as well as across different internal projects.
CDK is imperative but imperatively building the configuration is not at all the same as imperatively managing the infrastructure. Even if with CDK the configuration is imperatively built you retain all the benefits of having declarative infra - version control, selective auto update, rollback to previous state etc.
Yes, while CF is clunky and slow, and I am sure everyone who uses it has at times gotten stuck with rollback failures, but CDK does provide a somewhat better dx on top of it.