Ian Miell writes about Linux, DevOps, Docker, Kubernetes, bash and software team culture.
Commenters recommend his multi-part "Anatomy of a Linux DNS Lookup" series and an annotated Docker explainer, and mention his blog as a career-path example.
Here's my full bash reading list:
- ShellCheck: life-changing BASH linter and testing toolkit https://github.com/koalaman/shellcheck
- 30 interesting commands for the Linux shell – Víctor López Ferrando https://www.lopezferrando.com/30-interesting-shell-commands/
- 7 Surprising Bash Variables https://zwischenzugs.com/2019/05/11/seven-surprising-bash-variables/
- anordal/shellharden https://github.com/anordal/shellharden/blob/master/how_to_do_things_safely_in_bash.md
- barryclark/bashstrap https://github.com/barryclark/bashstrap
- BashPitfalls : Greg's Wiki http://mywiki.wooledge.org/BashPitfalls
- Common shell script mistakes http://www.pixelbeat.org/programming/shell_script_mistakes.html
- Comparison of all the UNIX shells http://hyperpolyglot.org/unix-shells
- Defensive Bash Programming https://www.kfirlavi.com/blog/2012/11/14/defensive-bash-programming/index.html or https://jonlabelle.com/snippets/view/markdown/defensive-bash-programming
- Bash FAQ and Cookbook https://mywiki.wooledge.org/BashFAQ
- Detecting the use of "curl | bash" server side …
Really cool, I like the documentation on the website - would be nice if the README was actual HTML though.
Does that mean I can build container images within a running container (for example the GitLab-CI) without doing a stunt like docker-in-docker or fakechroot/fakeroot?
What are you using instead of fakeroot? I've seen people like [zwischenzugs][0] using User Namespaces - which makes it impossible to be run within a container. Author also points out that kaniko still requires you to use root, not sure if the situation has changed with gVisor support, at least a related issue [1] hasn't been marked as resolved.
Have you investigated into creating reproducible containers?
Thank you in advance!
[0]: https://zwischenzugs.com/2018/04/23/unprivileged-docker-builds-a-proof-of-concept/
[1]: https://github.com/GoogleContainerTools/kaniko/issues/105
Edit: Why the downvote? Am I misunderstanding something?
Thank you, this is very timely: recently I got a cold email from an acquisition editor too and been researching this fascinating topic of writing tech books. :)
Some more helpful resources I found:
- Advice to Prospective Book Authors from Scott Meyers (of Effective C++ fame): https://www.aristeia.com/authorAdvice.html
- "I wrote a book" by Tryggvi Björgvinsson: https://dev.to/trickvi/i-wrote-a-book-lfg
- "Writing a technical book" by Ian Miell: https://zwischenzugs.com/2016/05/15/writing-a-technical-book/
- Then there are some good discussion about this topic on HN. You can try searching by keywords like "ask hn + writing a book", e.g.: https://news.ycombinator.com/item?id=14300932
Follow up:
Anatomy of a Linux DNS Lookup – Part II
https://zwischenzugs.com/2018/06/18/anatomy-of-a-linux-dns-lookup-part-ii/
Anatomy of a Linux DNS Lookup – Part III
https://zwischenzugs.com/2018/07/06/anatomy-of-a-linux-dns-lookup-part-iii/
Anatomy of a Linux DNS Lookup – Part IV
https://zwischenzugs.com/2018/08/06/anatomy-of-a-linux-dns-lookup-part-iv/
Anatomy of a Linux DNS Lookup – Part V – Two Debug Nightmares
https://zwischenzugs.com/2018/09/13/anatomy-of-a-linux-dns-lookup-part-v-two-debug-nightmares/
For an even earlier reference (2015) "the most pointless docker command ever" https://zwischenzugs.com/2015/06/24/the-most-pointless-docker-command-ever/
This is a by design part of Docker's operation. What's perhaps a little more surprising (though it shouldn't be) is that anyone with create pod rights in a k8s cluster can do this by default on every worker node in the cluster. (unless the cluster operator or provider has implemented additional controls)
I gave up on formal career advancement (ie climbing the greasy pole) and followed my technical interests, trying to have fun where possible, but also with an eye to its marketability.
I ended up starting a blog (https://zwischenzugs.com/) and wrote a few books. It's all made my career far more fun and given me more control. As a by-product I'm better paid too. But that was not the aim.