No, it's not. If they're planning a rug pull, they very much care that you took effort to integrate their free offering into your infrastructure, because they care that you're sitting firmly on the rug before they can pull it.
So far no reasons to think so. The article lacks details. But for complex life to emerge in small pocket that oasis would have to exist for many millions of years. No proof of that. Then organism is not a bunch of single cellars in one place. This is another question here. Next there are intermediate forms of life which bundle together only for some time. This thing looks like single organism while it isn't.
This was written in 2021, maybe it's really not that great of a blogpost. I wrote a lot of blogposts from many angles back then, mostly to myself as there weren't many readers, trying to see the language from the outside, to self-motivate, etc ...
I think I wrote a script I needed in Rye and I found it interesting, then I went to Fiver and paid someone to write a script in Python that does the same.
2021 were different times, and I hope I've grown a little too... and now I would ask ChatGPT or Gemini :)
It is a legitimate complaint of the language as there are language-related reasons that motivates it --the conciseness of the language has an impact on readability, but also how convenient it is to debug on separate lines.
The code examples are a tad too verbose but actually better quality than most real-world Python codebases, I would say.
Python is not very verbose but it's not very concise either (especially compared to Lisp families)
This is a valid argument. There are already a plenty of programming languages where you can do that. You can make temporary variables in Rye too, but it also tries to work well for these chains of expressions or function calls, and I personally prefer this style many times. There is no wrong way, IMO.
If you're the only one reading the code, then sure write it however you like it.
But using long chains of expressions is the same as one-liners or point-free style in Haskell. It saves some typing and also you can skim the code more easily, but only if you're extremely familiar with what's going on there.
I wonder how much you can benefit from this, if you return to the codebase after a 6-month break though. Maybe some people do manage to really memorise these details, but for some of us the effect is more like "wtf is this code doing?"
Is not that dissimilar from instruction we can understand quite well:
Take a basket, look into it, pick out apples, if the apple is red take it.
If there are complex procedures, I also want to name a temporary result. It's like a divide and conquer strategy. You divide complex expression or instructions to separate definitions and combine those. But I also don't want to divide too much. This on the other hand again obscures IMO.
If I name every internal state, we get this.
hmtlStr = get("http://example.com)
html = parse(htmlStr)
links = findLinks(html)
for l in links {
take = isExternal(l)
if take {
print(l)
}
}
Which I can parse, but it takes more energy to validate that I used the right variable at the right place, not some variable from higher up in the code for example. You probably also don't code like this, but there is some middle ground ...
Just as a thought experiment, don't take me too seriously I will try to "humanize" those instructions:
Take a basket in your hands.
Look into the basket in your hands.
Find apples in looked basket in your hands.
For every apple.
Check if the apple is red.
If it's red, take the apple.
Maybe you can make more balanced version which will be the best of both worlds. Thanks for the discussion :).
It's funny, because I'm watching my experience as I'm reading the code and I feel like variables are like a little break while doing work. When you don't use them, it feels like a constant run.
Also, they give some extra structure, because they name the output of the function. It's true that you have to make extra effort to think of the name, though.
I'll be honest, your example with naming every internal state feels comfortable. Sometimes I do chain a few expressions together, but I avoid chains that are too long. I want to say that more than 3 is too much, but maybe it depends on the specific code.
I don't have examples of my own code handy, so I can see how I did it in the past. Now that I think about it a bit more, I think I'm okay with a longer chain, if it involves transformations of the same structure, but not if it involves destructuring. I perceive the `for` loop as a destructuring.
The Pyhton side does have import cgi. It also uses req library for request parsing and making a post request. Only for cookies it uses os.environ which is maybe a little unusual, but I didn't specify in fiverr request what libraries to use or not use.
Interesting, this results in a fully functional desktop version?
I have a M2 and the hardware is great, but the OS that came with it not so. If I could replace the OS with Ubuntu that would be great. (Windows would also be great, but I have no experience in installing that)
I almost always use my MacBook Pro in clamshell mode attached to a thunderbolt dock for external displays. Right now Ashai Linux does not support thunderbolt, however it is a work in progress.
Does UTM work well with external displays? Preferably in full screen?
https://github.com/cockroachdb/cockroach