• 0 Posts
  • 26 Comments
Joined 1 year ago
cake
Cake day: June 26th, 2023

help-circle



  • It’s inconsistent and annoying. Expressive, yes. Gets it’s job done, yes. Absolute nightmare of a spec, YES.

    The fact that JSON is a subset of YAML should tell you everything about how bloated the spec is. And of course there’s the “no” funny things.

    Personally, my favourite way to write configs was using lua (because it was already part of the project so why not), but JSON does fine.





  • Yeah, here in Russia the ISPs and IT infrastructure guys seem to be treating IPv6 like it has cooties. I can’t find an article (and it’d be in russian anyway) but as far back as 2022, if you get IPv6 you can expect a variety of issues with it, ranging from “you need to reboot your router every once in a while” to “you technically have v6 but good luck actually browsing v6 internet”.

    And of course, why would they give you a stable IP when they can charge for it :T. At least it’s only a third the price of a stable IPv4.

    My current ISP technically provides v6 according to their site - but my connection doesn’t have it, and since there’s nothing about it in the years-old contract, I’d need to redo that if I want to complain.






  • Mordor itself, Russia. Technically, most ISPs support IPv6 here but as I said each has something weird in config that makes using it… Fun. I don’t remember specifics since I’m mostly looking at it from consumer side, but I could try finding the article (in russian) that talked about it.

    My current connection doesn’t have IPv6 at all according to https://ipv6-test.com/, although I’m not 100% if it’s because of provider or Cisco AnyConnect blocking shit.

    When you when you sign up for internet here, you get a dynamic IP, it’s been that way for… As long as I can remember, really. Definitely more than ten years. I know in Moscow people used to get white IPs way back when, but that’s long gone. Not really a problem since most people don’t host anything.


  • From what I understand about the providers, they really don’t like it when you’re generating outbound traffic. Sure it’s advertised to be symmetrical, but the actual hardware they place here can get bogged down if you start hosting a popular site (or seeding too much).

    And of course, if they can charge you for a static IP then defaulting to dynamic is imperative, isn’t it? Pretty sure they’d try that with IPv6 too just to keep the income stream.

    Regardless, the actual issue with IPv6 around here seems to be that the providers either don’t know how to or don’t care to implement it properly. Sure I can tick on “IPv6” in my router, but that doesn’t mean I have an unbroken chain or routing hardware that supports it connecting me to the great internet.




  • Well, there’s a few things I personally think are a must for a config format:

    1. It must be human readable and editable, in some way. - in many cases, you may want to go and change something in the config while the application proper isn’t running. That rules out stuff like pickle or binary formats. Although I suppose sqlite and it’s ilk still fulfill it, in a roundabout way.
    2. It should be unambiguous, with one way to do something right. - this one’s a doozie. JSON fulfills it since it’s unambiguous about it’s types, but many interpreted language configs will have options. And then YAML will have “no” turn into “false”.
    3. It should probably have comments. - handily failed by standard JSON implementations. Although to be fair a lot of parsers I’ve used understand comments. Or you can make a comment stripper real easily.
    4. It should have obvious structure. - I’ve dealt with CSV configs before, I do not want to ever again.

  • Oh god, parsing complexity. I actually tried writing a YAML parser in my free time before and boy was that not worth the headache. So many little things that complicate parsing and are ignored by majority of users!

    I really like python, but I can agree that it’s no-delimiters style can be… Confusing at times. I definitely had to hunt down bugs that were introduced by wrong indentation. That and the way it handles global/local variables, mostly.

    I do appreciate not having to enclose every key in “”, and being able to copy values - but if we want that kind of logic making our configs, why not just switch to writing configurations in Lua? It certainly has less footguns than YAML and it has the niceties like “I can just write {key = "value"} instead of {"key": "value"}”.