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.
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
> 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.
> At least it doesn't force any casing on you, as some languages do.
I'm not convinced that is actually a good thing. It really annoys me when two libraries for the same language use different naming conventions, and so far I haven't had any trouble with the strict casing rules in Haskell, or the casing conventions in Rust where the compiler emits warnings when you don't follow them (that you can disable with an annotation if you really need to).
It's not only a MIR issue, it's also an issue of how many optimizations should be allowed when you also need to be able to make some assumptions about your data in unsafe blocks. For example if you simply added the obvious attributes everywhere, interior mutability (Cell, RefCell, UnsafeCell) would most certainly break. The exact rules around unsafe rules are still being discussed (see https://github.com/nikomatsakis/rust-memory-model), so until that is done some of these optimizations are very unlikely to be implemented because they can make a lot of unsafe code illegal.
Hm, it might have to do with the way CSS works.. When I'm developing gtk+ Applications, I always do the UI in glade. It works wonderfully, even if I still have to do some stuff in code (UI elements that are added in response to the user doing something). And even for that there seems to be an alternative, namely GtkBuilder templates – haven't tried that yet and Glade doesn't seem to be able to create them, but might be able to edit them once you have manually written the first few lines of XML.