Linux trivia of the day: `FOO=$FOO command` is not the same as `command`:
miniblog.
Related Posts
Go has an os.Root API that allows you to enforce all paths are subdirectories of a given root. It fixes users accessing foo/../../../etc/passwd and similar.
Seems like a really nice solution for a relatively common problem.
What's the best string representation of a function? Comparing with other PLs:
Python: <function __main__.add_one()>
JS: [Function: addOne]
Clojure: #function[user/add-one]
Scheme: #<procedure add-one (x)>
I'm currently thinking about <fun add_one() foo.gdn:123>
When a tool supports both regular expressions and literal strings, which should be the default?
If you default to regex, users can match more strings than they realise (e.g. `foo.txt`) or less (e.g. `foo(bar)`).
I typically see regex as the default, but I prefer the opposite.