- When using a
rewrite rule inside of a
location block in nginx you might want to add the
break keyword to it: Not using it will start a full evaluation of the URL after it is rewritten.
break works the way you would expect: It rewrites the rule and continues inside of the block.
radicale is a very simple self-hosted cal-dav and card-dav server that can be used to host your own calendars and contacts instead of pushing that data to google: https://radicale.org/
- Go formatting methods (e.g. fmt.Printf or log.Printf) accept regular printf formatted strings. However the syntax is extended to include precission arguments. With this a string can be pad to a certain length when logging using
fmt.Printf("%20s", str) (right-justified) and
fmt.Printf("%-20s", strg) (left-justified).
- For logging purposes the formatting placeholder
%v can be used to always output the value of the given argument (no matter the type) in a human-readable form.
- In go channels can be used to build worker pools. This is useful to control the concurrency of goroutines (e.g. if a single goroutine uses to many resources it can be restricted to only 4 or 8 workers: https://gobyexample.com/worker-pools
- gorun is a utility to run go files directly using a shebang. However a gorun file is not a valid go file.