Certainly not the best, but codecademy is decent. After that, it should be enough for you to learn more deeply from official Python documentation, actual Python code base (from OSS repositories), and specific subjects from blog articles.
But it will highly depend on what type of content you like. For example some people may prefer books over interactive courses. If this is your case, i think this one is recognized as a very good one: https://learnpythonthehardway.org/python3/
Can you explain it to me like i'm a 10 yrs old (which i'm not 🙄), then?
Except the ecosystem, how is terraform better than opentofu? As far as i know, currently they still are almost identical.
I'm looking forward to switch from Terraform to OpenTofu, but i have the impression that the ecosystem around it didn't catch up yet.
Did any of you already did the switch? If so, what do you use as a replacement for Terraform Cloud, the VSCode extension and/or terraform-ls?
For Terraform Cloud, the are many options: scalr, spacelift, etc. Spacelift looks nice as it can also run Ansible, but Scalr seems to have a better and simpler UI.
But on the editor side, there doesn't seem to be much... the VSCode extension has been forked but it still seem to be in its early days (cf. this issue: it still uses terraform-ls under the hood, which itself looks for the terraform binary).
Nice! It looks like the best solution out there.
Python >= 3.10 version:
def foo(return_more: bool) -> DataType | tuple[DataType, MoreDataType]: ...
But i would definitely avoid to do that if possible. I would maybe do something like this instead:
def foo(return_more: bool) -> tuple[DataType, MoreDataType | None]:
...
if return_more:
return data, more_data
return data, None
Or if data
is a dict
, just update it with more_data
:
def foo(return_more: bool) -> dict[str, Any]:
...
if return_more:
return data.update(more_data)
return data
The difference is that with Protocol
you can define which method presence you want to ensure. Like i said: custom vs. generic.
From what i understand, Protocol
is for custom interfaces that you define (this object must have do_x()
method), while ABCs are generic (this object is iterable).
Yup, that's what i would also do.
Codebeez zijn wij met zijn allen samen. Wij vormen de cultuur. Op onze eigen manier, die we gezamenlijk bepalen. Alles draait bij Codebeez om onze mensen, hun plezier, hun groei, focus op ons vakgebied en de kwaliteit van wat wij doen. Onze Beez eerst.
This is like Interface
in Go (or Java, i don't speak Java but the article say so).
Yeah we are better served with pedantic nerds that thinks they know IaC better than some top engineer at an IaC vendor 🤷
Ok i think i get the point. A "generic programming language" could be used as a "domain specific language" in some context. Is that what you mean?
The author seems fully aware of the existence CDKTF, and by invest i think he means that they should privilege it instead of HCL. The point is that if you learn Python, it is reusable somewhere else. If you learn HCL, you learned a vendor language, it is only used in Terraform.
The author is actually fine with CDK, since it uses an actual programming language. That's the point of the article.
By the way, on a personal note, Terraform is still bad to my eyes since their license change.
I'm in the process of migrating to Pulumi, i like it so far.
You can use if
instead of the ugly count
hack in HCL... 🤷♂️
You won't see the end of these crapwares until there is centralized managment console with it, sadly...
If you’ve read this blog before, or are unfortunate enough to have an actual personal relationship with me, you’ll know that I have strong opinions and can be, shall we
TLDR: terraform bad, pulumi good