πŸ’Ύ Archived View for gemini.spam.works β€Ί users β€Ί dvn β€Ί thats.a.lot.of.yaml.txt captured on 2020-11-07 at 00:47:43.

View Raw

More Information

⬅️ Previous capture (2020-10-31)

-=-=-=-=-=-=-

# Made with πŸ’– by https://twitter.com/geoffreyhuntley after one too many CustomResourceDefinitions
# Improvements welcome, mash the ↗️ Octocat ↗️ and share how YAML makes your life better.

No:
	Body:
		Wants:
			To:
				Write:
					- YAML
	
# πŸ€” Why YAML is the right devops technology for you πŸ€”
#
# - 100% test coverage, always compiles just fine with no errors or warnings, always shippable
# - no enforced error handling during development because runtime "panic at the disco" in production is dope
# - "something broke" is way better than stack traces with line numbers
# - you need to burn hours as part of setting up a new CI pipeline
# - safe choice with unquestionable industry adoption, "used by kubernetes"
# - is marginally better than windows.ini
# - unlike json [1], YAML supports comments
# - you need a super safe way to "execute this code"

# 🍿 wait a sec, did you say "executable yaml"?? 🍿
# - https://ruby-doc.org/stdlib-2.4.0/libdoc/yaml/rdoc/YAML.html#module-YAML-label-Security
# - https://www.php.net/manual/en/function.yaml-parse.php#refsect1-function.yaml-parse-notes
# - https://lgtm.com/blog/swagger_snakeyaml_CVE-2017-1000207_CVE-2017-1000208
# - https://github.com/yaml/pyyaml/wiki/PyYAML-yaml.load(input)-Deprecation

# 🚨 Anyone who uses YAML long enough will eventually get burned when attempting to abbreviate Norway 🚨
# `NO` is parsed as a boolean type, which with the YAML 1.1 spec, there are 22 options to write "true" or "false."
# You have to wrap "NO" in quotes to get the expected result.
NI: Nicaragua
NL: Netherlands
NO: Norway # πŸ’£!

# YAML knows that, when you have something that looks like the time of day,
# what you _really_ wanted is the time of milliseconds since midnight
timeOfDay:
  whatYouWrote: 04:30 # And when you parse this file and serialize it again, you get ...
  whatYouSurelyMeant: 16200 # Have fun debugging this one!
  whatYouShouldHaveWritten: !!str 04:30

# 😭 If SQL were built on YAML 😭

SELECT:
- num
- name
FROM:
- customers
WHERE EXISTS:
  SELECT:
  - name
  FROM:
  - orders
  WHERE:
    AND:
    - EQUALS:
      - customers.num
      - orders.customer_num
    - LT:
      - price
      - 50	

# πŸ“’ Mandatory reading πŸ“’
#
# "Today we’re going to look at some general problems with the YAML format"
# πŸ‘‰ https://arp242.net/yaml-config.html πŸ‘ˆ
#
# "We replaced 1,000 lines of YAML with 10 structs and people started contributing again"
# πŸ‘‰ https://tinyurl.com/lessons-in-over-engineering πŸ‘ˆ
#
# "What if you used the same language and tools you use to define your app to define your infrastructure?"
# πŸ‘‰ https://twitter.com/ellism/status/1008728148131733504 πŸ‘ˆ
#
# "A YAML file is almost always still 'valid' even if it is trunca"
# πŸ‘‰ https://twitter.com/colmmacc/status/1057316977457324032 πŸ‘ˆ
#
# "the bug was that the YAML parser ignored the negative signs ... so negative GPS coordinates became positive ones"
# πŸ‘‰ https://twitter.com/colmmacc/status/1063470541464461312 πŸ‘ˆ
#
# "Every YAML parser is a custom YAML parser"
# πŸ‘‰ https://matrix.yaml.io/valid.html πŸ‘ˆ
#
# "There are 63 different ways to write multi-line strings in YAML"
# πŸ‘‰ https://stackoverflow.com/a/21699210/1094085 πŸ‘ˆ

# πŸ’­ Alternative options and approaches to DevOps (cough yamlops cough) πŸ’­
# - https://media.ccc.de/v/36c3-11172-leaving_legacy_behind
# - https://dhall-lang.org/
# - https://cuelang.org/
# - https://jsonnet.org/
# - https://www.youtube.com/watch?v=tl9I-R83lKo
# - https://github.com/xtruder/kubenix/tree/kubenix-2.0/examples/nginx-deployment

# 🏁 If you are vendor of developer tooling that is configurable via YAML, please do this 🏁
# - https://twitter.com/kzu/status/1163864030911578112

# πŸ“– Footnotes πŸ“–
# [1] You can do comments in json by `{"$comment_1$": "A way to use comments in json"}` but it's icky.