πΎ Archived View for gemini.spam.works βΊ users βΊ dvn βΊ thats.a.lot.of.yaml.txt captured on 2020-11-07 at 00:47:43.
β¬ οΈ 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.