The KeePassXC browser integration also does it the way you describe where you choose a profile instead of having the firm already filled in when the page loads.
> In Python I have to figure out what the indentation is built from, spaces or tabs, and make sure there's no ambiguity there.
The following program throws a TabError in Python 3:
def demo():
print("1 tab")
print("8 spaces")
It does work in Python 2, but I'm pretty sure the majority of developers have 4 space wide tabs by now, meaning they won't be able to mix tabs and spaces in Python 2 code either.
EDIT: So Hacker News has code blocks, but doesn't strip the indentation that is required to introduce them. So you'll have to lead the 2 leading spaces in each line if you want to try this out for yourself.
> So Hacker News has code blocks, but doesn't strip the indentation that is required to introduce them. So you'll have to lead the 2 leading spaces in each line if you want to try this out for yourself.
Your example is good, but the technical issues experienced in posting your example are perfect.
I'm one of those people who are really confused about the whole Python project management situation. Is there a resource where I can learn the equivalent of common operations found in other project management tools such as npm / yarn / cargo?
E.g. is there something like 'cargo run' that just checks that the required python version is installed (I got the impression that this can be specified somewhere), installs deps if they're not installed yet and then runs the main module? Or something like 'npm install --save' that adds the latest version of a package you already know the name of as a dependency and installs it?
I know they use ripgrep¹ for their project-wide search feature. I'd imagine that the other native code would also be separate processes whose output is parsed, or in C / C++ / Rust libraries that live in their own repos and that they use via bindings which would themselves only be JS / TS code (and might live in separate repos as well).
While it is not part of the memory safety guarantee of safe Rust, in practice it is much harder to accidentally leak memory in Rust than in C++. There is no counterpart to the C++ new operator in Rust; no commonly-used language feature or standard library function puts the burden of explicitly freeing memory on the programmer.
For those who are interested in why leaking memory isn't disallowed by Rusts safety guarantees, have a look at the documentation of the (AFAIK) only safe function in the standard library that leaks memory: https://doc.rust-lang.org/std/mem/fn.forget.html
Actually... the counterpart to the C++ new operator would be the perfectly safe `Box::into_raw(Box::new(whatever))` - along with its counterparts on other smart pointer types - and there may be a heap module one day[0] - but your point stands that this is not the "default" way of allocating.
> Is the !g bang gives you personalized results as good as google results ?
Including !g in your search query simply redirects you to a google search with the same query (minus the !g). So you can set your search engine to ddg, then select the actual search engine by starting with a bang and whatever search you want. Some examples:
!gi - Google images
!gh - GitHub search
!w - Wikipedia
Starting a query with ! on https://duckduckgo.com/ also gives you autocompletion, so you can quickly discover what redirects are available.