Commit cacaa4c7 authored by Rob Muhlestein's avatar Rob Muhlestein 🎧

tpl-duck -> Query

parent 24fd7387
---
Title: Proactive Proof of Engagement
Subtitle: Chart the Course, Ask to Engage
tpl-duck: true
Query: true
---
> "Captain, there's a unknown debris field ahead. I've locked in a course around it. How would you like to proceed?"
......
---
Title: Linux Isn't Dead. GNU Just Killed Itself.
Subtitle: And GNU Deserves It
tpl-duck: true
Query: true
---
The [GPLv3](https://duck.com/lite?kae=t&q=GPLv3) license placed on all [GNU software](https://duck.com/lite?kae=t&q=GNU software) --- that was originally intended to cover [the Linux kernel](https://duck.com/lite?kae=t&q=the Linux kernel) as all previous GPL licenses had done until [Linus Torvaldz vetoed it](https://youtu.be/PaKIZ7gJlRU) --- has destroyed the reputation of the GNU project and indirectly a lot of interest in Linux as well. Software projects and organizations are fleeing GNU as fast as they can. But Linux will remain alive as the short-sighted, over-reaching GNU project and unethical FSF organization slowly die the death they deserve.
......
---
Title: Remote Isn't the *New* Normal, It Always Was
Subtitle: Forget About Crusty 'Ol Google, Look at GitLab
tpl-duck: true
Query: true
---
Everyone's talking about how COVID is creating a "new normal" in work-from-home business models, but the fact is working remotely has *been* normal for more than a decade for several well-established companies such as IBM and newer ones like GitLab. Forget about crusty 'ol broken business models like Google. Look at modern companies like GitLab whose innovated business approaches have made it the subject of a [study by the Harvard Business Review.](https://store.hbr.org/product/gitlab-and-the-future-of-all-remote-work-a/620066) Companies and individuals unable to create value from those working remotely are increasingly paying a very real price in available talent and work-life balance.
......
---
Title: Linux Terminal Boost
Subtitle: Learn Linux Right
tpl-duck: true
Query: true
---
Learning to use the Linux terminal is essential to your further growth and mastery later for a number of important tech [occupations](/jobs/). Unfortunately it is rather common for technologists to *never* learn the terminal, learn it *eventually* as a secondary priority, or to learn it *wrong* and create horrible habits that are difficult or impossible to break --- much like learning to hunt-n-peck to type rather than using home row.
......
---
Title: Linux Terminal Mastery
Subtitle: Learn to Live on the Command Line
tpl-duck: true
Query: true
---
1. Introduction
......
......@@ -64,7 +64,7 @@ Except where otherwise noted below, the [RWX.GG]{.spy} project follows [The Greg
* Do not put links of any kind in any heading.
* Use `tpl-duck: true` to activate link from `h1` heading to DuckDuckGo search.
* Use `Query: true` to activate link from `h1` heading to DuckDuckGo search.
```vimscript
autocmd vimleavepre *.md !perl -p -i -e 's,\[([^\]]+?)\]\(\),[\1](https://duck.com/lite?kae=t&q=\1),g' %
......
---
Title: Don't Use and Promote App Stores
Subtitle: What the F*** Were We Thinking?!
tpl-duck: true
Query: true
---
> There are 2 billion web users versus 50 million iOS users. (Brian Kennish, former Google engineer turned privacy advocate)
......
---
Title: Don't `cat` Into a Shell Pipe
Subtitle: No Need for Extra Subprocess
tpl-duck: true
Query: true
---
```sh
......
---
Title: Don't Use `Control-l` to Clear the Screen
Subtitle: Use `set -o vi` and `alias c=clear` If You Must
tpl-duck: true
Query: true
---
Nothing shows how little you know about the Unix terminal than to recommend using `Control-l` or `^L` to clear the screen without understanding that `set -o vi` exists and what it does.
......
---
Title: Don't Pick Emacs Just Cuz
Subtitle: Ed and Vi are *the* POSIX Editors and *far* More Ubiquitous
tpl-duck: false
Query: false
---
Emacs is used by people who rarely use more than one computer terminal. Vi is used by people who want to be functional on *any* computer with a Unix/Linux terminal. Emacs users are helpless without their bloated, customized, personalized editor on what is likely their bloated, customized, heavy workstation. Expecting to be able to install Emacs on any computer you are required to work on is ridiculously naive. Most big companies where you are likely to work on a lot of Linux and Unix systems actually still practice some form of change management. Getting your Emacs installed ain't gonna get approved.
......
---
Title: Don't Use `/usr/bin/env`
Subtitle: Collective Insecure Stupidity Gone Global
tpl-duck: true
Query: true
---
One of the most idiotic practices ever to gain global popularity is the use of `/usr/bin/env` followed by the assumed name of an interpreter instead of a proper *explicit* path to the *exact* interpreter program to be run. Beyond the wasteful inefficiency of forcing an additional subprocess every time your script runs, forever. This insanity is based on a completely flawed assumption that the *name* of the interpreter and its *discoverable location* are consistent and secure. They are not.
......
---
Title: Perl Haters Need to Shut Up and Learn It
Subtitle: Perl is *THE* Industry Standard For Regular Expressions
tpl-duck: true
Query: true
---
Hating on Perl has become something of a trend these days. There are even job posts that hate on Perl as a stupid, uninformed, moronic joke:
......
---
Title: Don't Pipe to a Shell While Loop
Subtitle: You Lose All Your Variables
tpl-duck: true
Query: true
---
This runs while in a subprocess masking the local variables (`count`) so they are not updated.
......
---
Title: Sed is So Dead for Regular Expressions
Subtitle: Perl *Destroys* Sed
tpl-duck: true
Query: true
---
Sed is dead. Seriously, just stop using it. At this point you're really embarrassing yourself. Perl is on any Linux or Unix operating system released since 1990.
......
---
Title: Don't *Ever* Use Zsh
Subtitle: Seriously, It will Destroy You
tpl-duck: true
Query: true
---
"Use Zsh. It's *so* much better than Bash!"
......
---
Title: Games That Make You Learn
tpl-duck true
Query true
---
Here's a collection of games and other gamified learning resources to keep things fun. Some have walkthroughs included to help you when you get stuck.
......
---
Title: PicoCTF 2019
tpl-duck: true
Query: true
---
First get access to a terminal. This stuff is plenty safe for you to do on your own computer if you prefer to download copies of the files. However, some *require* you to login to the <https://2019game.picoctf.com/shell>.
......
---
Title: Target Occupations
Subtitle: Jobs You Can Get
tpl-duck: true
Query: true
---
:::co-pwz
......
---
Title: Software Developer
Subtitle: Fastest Growing Tech Profession Per Income
tpl-duck: true
Query: true
---
[Software Developer](https://www.bls.gov/ooh/computer-and-information-technology/information-security-analysts.htm) (aka [Software Engineer]) is the second fastest growing [technology occupation](/jobs/).
......
---
Title: Gain Trust to Get a Job
Subtitle: Again and Again
tpl-duck: true
Query: true
---
Getting a job isn't hard if you are prepared, confident, and have contact with those who need what you have. You simply need to get someone to trust you enough to pay you by *proving* what you can do for them. Every single position and potential employer will have a different idea about what that proof looks like. That's it.
......
---
Title: IoT Embedded Device Developer
Subtitle: Protecting Us from Our Toasters
tpl-duck: true
Query: true
---
It's hard to pin down this new occupation in the industry. It has elements of an [Electrical Engineering](https://www.bls.gov/ooh/architecture-and-engineering/electrical-and-electronics-engineers.htm) as well as [Software Development](/jobs/dev/). It's fair to say that the education and salary are comparable to a [Computer Hardware Engineer](https://www.bls.gov/ooh/architecture-and-engineering/computer-hardware-engineers.htm) (Bachelors, $117,220).
---
Title: Security Analyst
Subtitle: A Hacker By Any Other Name
tpl-duck: true
Query: true
---
The title *Security Analyst* is taken from the [BLS](https://www.bls.gov/ooh/computer-and-information-technology/information-security-analysts.htm) but we are really talking about hackers here, whether they be on the blue team (defense) or red team (offense) or no team (forensics). Hacking is currently the fastest growing technology profession by a long margin when [compared against others](/jobs/) but has a rather unique set of skills required that go far beyond the purely technical.
---
Title: Site Reliability Engineer
Subtitle: Google's Stupid Title for System Administrators Who Codes
tpl-duck: true
Query: true
---
> "[SRE is] what happens when a software engineer is tasked with what used to be called operations."
......
---
Title: System Administrator
Subtitle: Bastard Operators from Hell
tpl-duck: true
Query: true
---
A *System Administrator* keeps the computers up and operational. This [occupation](../) isn't surging in growth but also isn't slowing. There are still servers to be maintained even in a "#serverless" world. Most sysadmins will specialize in a particular operating system family such as Linux, Windows, or Mac. Google famously decided to start calling their sysadmins [Site Reliability Engineers](../sre/) instead.
......
---
Title: Web Developer / Full Stack Developer
Subtitle: 'What even is a *Full Stack Developer*?'
tpl-duck: true
Query: true
---
*Web developer* (aka [Full Stack Developer]) is the third fastest growing [technology occupation](../) and requires the least amount of education.
......
---
Title: Typing / Keyboards / Keystrokes
Subtitle: Grok the Keyboard Like a Coder
tpl-duck: true
Query: true
---
You can't do anything these days without being able to use a keyboard. The selection of a keyboard, however, is a *very* personal decision.
......
---
Title: Recommended First Languages to Learn
Subtitle: Languages That Teach Your Brain How to Code Well
tpl-duck: true
Query: true
---
The following nine languages provide the most personal empowerment and overall knowledge of how languages work so that you can pick up *any* language later more easily.
......
---
Title: Bash Scripting Language
Subtitle: The Default Interactive Linux Shell
tpl-duck: true
Query: true
---
> "`/bin/bash` is premature optimization." [\@beginbot](https://twitch.tv/beginbot)
......
---
Title: 'Bash MMP: Waffles'
Subtitle: Short-Circuit Logic with Butter and Syrup?
tpl-duck: true
Query: true
---
Watch the [waffles video](https://duck.com/lite?kae=t&q=waffles video) and write a one line program that combines several command functions using short-circuit logical. Remember to create prompts for user input and to fully validate each response.
......
---
Title: Bash Language Tasks
Subtitle: HowTo, Recipies, Tutorials
tpl-duck: true
Query: true
---
This is a comprehensive list of Bash [programming](/what/programming/) [tasks](/what/task/) organized by how commonly you might be asked to use them and therefore importance. Master them progressively in order and [read](/what/rwx/r/) about the terms and concepts related to them. [Write](/what/rwx/w/) your own [codebook](/what/codebook/) containing code with personal notes as you go. Make sure to [exercise](/what/rwx/x/) your new skills as soon as you learn them by completing *and understanding* some of [these mini projects](../mmp/) or others of your own creation.
......
---
Title: Easy Bash Programmable Tab Completion
Subtitle: A Tab is Worth a Thousand Words
tpl-duck: true
Query: true
---
Bash tab completion is perhaps one of the most overly and unnecessarily complicated topics in all of Linux. The best documentation on it remains the Bash man page itself, but even that is complex and gives almost *zero* attention to the humble `complete -C foo foo` approach even though implementing tab completion using `-C` instead of `-F` and others means that the code that prints the possible completions is *also* the code that executes the completed command line. Bundling completion *with* the command is simple, concise, and more sustainable. There isn't an additional script to maintain and install (typically in `/etc/bash_completion.d`). Users just add the `complete` to their Bash configuration and works. Those making software packages can still install a separate completion script, but it becomes a single line instead of an overly complicated Bash function. Moreover, your code --- with encapsulated, detectable completion mode --- will be ready to integrate into any number of other shells that support it besides Bash. When you consider these advantages its rather surprising everyone doesn't use this method probably because most just don't know about. Now you do.
......
---
Title: C Programming Language
Subtitle: Created to Create UNIX
tpl-duck: true
Query: true
---
The C programming language is mandatory learning for anyone who truly wants to understand how *all* languages and digital computers work. While it is not the easiest language to learn, it is by far the most significant language ever invented. Every major language and operating system started out in C including the re-write of UNIX from Assembly. Mastering C fundamentals will significantly boost your learning of *any* other language later.
......
---
Title: JavaScript Object Notation / JSON
Subtitle: World's Most Prominent Structured Data Language
tpl-duck: true
Query: true
---
```json
......
---
Title: eXtendible Markup Language / XML
Subtitle: World's Most Hated Structured Data Language
tpl-duck: true
Query: true
---
```xml
......
---
Title: YAML Ain't Markup Language
Subtitle: Human Writable Structured Data
tpl-duck: true
Query: true
---
```yaml
......
---
Title: Install Golang
Subtitle: Always Have the Latest
tpl-duck: true
Query: true
---
First check to see that you don't already the right version of Go installed:
......
---
Title: Hyper Text Markup Language / HTML
Subtitle: The *Content* of the Web
tpl-duck: true
Query: true
---
*HTML* is the main [language](/lang/) for the [World Wide Web](https://duck.com/lite?kae=t&q=World Wide Web). Every [web site](https://duck.com/lite?q=web site) has some HTML in it. HTML is one of the most important coding language anyone will learn because it is so [ubiquitous](/what/ubiquitous/). Every single technical occupation requires some knowledge of HTML.
---
Title: Install Default Java JRE/JDK on Linux
tpl-duck: true
Query: true
---
All you really need is the Java Runtime Engine for most things. But might as well install them both in case you ever need to write and/or compile Java code.
......
---
Title: Install Deno for JavaScript/TypeScript Development
tpl-duck: true
Query: true
---
Since Deno is so new it still uses a simple shell script to install. They recommend to download and run the shell script directly but you know better than to *ever* download and run *anything* without ensuring that the file you are downloading has not been tampered with by a man-in-the-middle attack. To do this we have to break apart the steps and validate the checksum of the file to ensure it is the right one.
......
---
Title: Install NodeJS Securely
tpl-duck: true
Query: true
---
Installing NodeJS securely and without adding a PPA is a bit tricky. Here's a [script](./install-node) to help you out.
......
---
Title: Markdown
Subtitle: Invented by Writers, Not Scientists
tpl-duck: true
Query: true
---
Markdown is a simple [markup](/what/markup/) language invented by writers who didn't want to write [HTML](/lang/html/). Markdown has become the standard for most technical writing and is supported on Reddit, StackExchange, Discord, GitLab, GitHub, and pretty much everywhere else.
......
---
Title: CommonMark
Subtitle: A Valiant Attempt to Standardize Markdown
tpl-duck: true
Query: true
---
[*CommonMark*](https://commonmark.org) is the result of a collaboration lead by [JGM](https://johnmacfarlane.net) (the creator of [Pandoc](/tools/pandoc/)) to create some sort of agreement between all the different companies and organizations using [Markdown](/lang/md/) and splintering into dozens of different flavors all interpreting the non-standardized [original](https://daringfireball.net/projects/markdown/) in their own way. The effort was a success overall, but left out several design decisions including tables. That's right, [*CommonMark does not allow the use of any tables.*](https://talk.md/common.org/t/tables-in-pure-markdown/81) Tables were one of the main additions from [GitHub](/lang/md/github/) that people wanted (despite the pathetic design of GFM tables that often requires a tool of its own just to make them). Given how bad GFM tables are, it is no surprise that JGM politely left them out and quietly implemented a far superior --- and simpler --- design in [Pandoc Markdown](/lang/md/pandoc/), which is one reason why the resulting Pandoc Markdown is by far the simplest, cleanest, and most widely applicable Markdown version today. It has clearly demonstrated its design supremacy with its adoption into the R language and more (even if GitHub and the rest never catch up).
......
---
Title: GitHub Flavored Markdown
Subtitle: Run Screaming from This Monstrosity
tpl-duck: true
Query: true
---
*GitHub Flavored Markdown* might be many people's first experience with Markdown, but it is seriously demented, broken, and incompatible with other, better standards --- tables are *particularly* bad. Do *not* use GFM! Use CommonMark (the industry standard), which does not include tables at all, or use [Pandoc Markdown](/lang/md/pandoc/) instead.
......
---
Title: Pandoc Markdown
Subtitle: World's Best Syntax for Knowledge Source
tpl-duck: true
Query: true
---
:::co-warning
......
---
Title: Pandoc *Light* Markdown
Subtitle: Great Taste, Less Filling
tpl-duck: true
Query: true
---
[Pandoc Markdown](/lang/md/pandoc/) is the supreme king of Markdown flavors providing the most *power*, *ubiquity*, and *simplicity*. But there is a *lot* in full Pandoc Markdown that most people simple do not need --- especially those maintaining simple documentation, blogs, and [knowledge apps](/what/knowledge/apps/). Here are some suggestions to help you get all the great taste, without the bloat.
......
---
Title: Markdown Tools
Subtitle: Editors, Plugins, Sites, and More
tpl-duck: true
Query: true
---
* VSCode
......
---
Title: StreamLink for Better Twitch Quality
tpl-duck: true
Query: true
---
Twitch can be really heavy on your CPU. While watching a steam at 1080p 60fps CPU usage can fluctuate between 18-24% usage, but there's a better approach to watching Twitch streams. The only negative side affects is that Twitch.tv *may* not register you as a viewer if you use this method. The solution is to watch Twitch via a publicly available Twitch API called [StreamLink](https://streamlink.github.io/) which is available for Linux, MacOS, and Windows. This software allows *anyone* to watch a live-stream via Linux terminal and Windows PowerShell. By watching like this you remove the website part of the story thus saving a lot of resources.
......
---
Title: Annotations
Subtitle: Building on Books
tpl-duck: true
Query: true
---
*Annotations* are the most sustainable way to supplement and support [book](/reviews/books/) learning. Books are comprehensive, but very often incomplete, outdated, or just plain wrong. Rather than throw out all the great information in the best books, annotations provide an opportunity for a group or individual to leverage the format and structure of the book to add critical explanations and additions to avoid any gaps in learning that would result from learning from the book alone.
......
---
Title: Eloquent JavaScript
Subtitle: Free, Comprehensive, But Heavy on Math for Beginners
tpl-duck: true
Query: true
---
*Eloquent JavaScript* is available for [free as a PDF](./eloqjs.pdf) or you can purchase it online. It was crowd funded by a group of people concerned there was a good modern resource covering topics for beginners. Here's how to get it from the command line with `curl`:
......
---
Title: The Gregg Reference Manual
Subtitle: Commonly Needed Lookups
tpl-duck: true
Query: true
---
The *Gregg Reference Manual* has been the American English standard for business writing style, grammar, usage and formatting for over half a century. "The Bible" (as it's commonly known) is even more relevant now since it fits well with online writing in articles, blogs, and more. The latest edition is the [11th Tribute Edition](https://www.amazon.com/Gregg-Reference-Manual-11th-eleventh/dp/B005GIHKYK).
......
---
Title: Head First C
Subtitle: Annotations
tpl-duck: true
Query: true
---
## Chapter 1
......
---
Title: Head First Go
Subtitle: Annotations
tpl-duck: true
Query: true
---
Even though *Head First Go* is *very* out of date it is currently the best Go programming language book for beginners. It is available for [purchase](https://www.amazon.com/Head-First-Go-Jay-McGavren/dp/1491969555) and online as PDF for free (although it is difficult to find and illegal in most countries).
......
---
Title: Head First Go: Chapter One
Subtitle: Let's Get Going: Syntax Basics (Annotations)
tpl-duck: true
Query: true
---
Hello world is hello world. Nothing fancy to see there.
......
---
Title: Linux Kernel Coding Style
Subtitle: Linus Torvaldz Original Opinions
tpl-duck: true
Query: true
---
*The following was written by Linus Torvaldz as the style guide for the [Linux Kernel Project](https://www.kernel.org/doc/html/v4.10/process/coding-style.html). You probably want to use [RWX C coding style](/lang/c#rwx-c-coding-style) instead.*
......
---
Title: Learning Web Design, 5th Edition
Subtitle: Annotations
tpl-duck: true
Query: true
---
*Learning Web Design* has been the standard textbook for learning HTML, CSS, and web images for over 20 years. It has been kept up to date remarkably well but does suffer a bit from age. For example, there is no mention of modern web publishing methods such as [static site generators](/what/ssg/), [JAMStack](/what/web/jamstack/), [lambdas](/what/cloud/faas/), nor [serverless](/what/serverless/) deployments through services like [Netlify](/services/netlify/) and [GitLab](/services/gitlab/). The book is heavy on CSS coverage and extremely light on JavaScript (recommending instead to read the O'Reilly [Learning JavaScript](/reviews/books/eloqjs/) book instead). But, the book's coverage of web images is not to be ignored from a security perspective as well as design.
......
---
Title: Modern C
Subtitle: Good and Free but Not Beginner Friendly
tpl-duck: true
Query: true
---
*Modern C* is a absolutely free book about the most modern version of the C language. It was last updated on Oct. 10, 2019 and [written by a French author Jens Gustedt](https://modernc.gforge.inria.fr/). Although it is not nearly as beginner-friendly nor does it contain as much content as [Head First C](/reviews/books/hfc/) it is a useful resource and has [been included here as a PDF](modern-c.pdf) for reference.
---
Title: Site Reliability Engineering
Subtitle: Google's Poorly-Conceived Title for the Obvious
tpl-duck: true
Query: true
---
Google came up with a poorly-conceived title for what *good* [System Administrators](/jobs/sysadmin/) had been naturally doing in their own companies during the same time period in the early 2000s. Then they got O'Reilly to publish what is effectively a buzz-wordy, bullshit blog about it and call it a book. Lucky for us. They had the "courage" to "come out of the shadows" and grace us with this \$40 collection of *well-duh* insights.
......
---
Title: Linux Terminal Mastery
Subtitle: Power of Bash, TMUX, Vi/m, cURL, and Lynx Used *Together*