• 0 Posts
  • 305 Comments
Joined 1 year ago
cake
Cake day: June 21st, 2023

help-circle
  • The “‘modern’ development stack” we used at my school when I was in a CS program was C++98 or something, compiled using gcc directly. This was in the last decade. It technically wasn’t C!

    But we did use C in my computer engineering classes so I guess they technically did teach it. I feel very fortunate that I haven’t needed to use it since then.


  • Adding a single unused function should no effect on runtime performance. The compiler removes dead code during compilation, and there’s no concept at runtime anyway of “creating a function” since it’s just a compile-time construct to group reusable code (generally speaking - yes the pedants will be right when they say functions appear in the compiled output, to some extent).

    Anyway, this can all be tested on Godbolt anyway if you want to verify yourself. Make a function with and without a nested unused function and check the output.


  • I can think of a few things I dislike about MTG as a whole (3yr standard and general powercreep of the format comes to mind), but my complaints about specifically Arena would be:

    • Cost. I’d probably play more if sets didn’t cost more than an entire new game on Steam to get the preorder bundles. Why are boosters so damn expensive?
    • Grind. The F2P way to get cards is to grind like a madman to get your daily wins and finish the quests. The problem is I prefer slower decks, and I’m not going to play monored for my daily chore if I can just play a different game entirely.
    • BO1 standard. This is more of a personal opinion, but I wish they’d keep a separate banlist for BO1. They’ve done it in the past with Nexus of Fate, but BO1 is so dense with aggro decks. Unfortunately, the daily wins system incentivizes more quick games rather than fewer interesting games, so I understand why these aggro decks are so popular. Maybe changing the daily wins system would solve this as well without the need for a separate banlist?


  • I was expecting a meme about how few cards actually have “phasing” (and phase in/out automatically in the untap step). Instead it’s a list of cards that make things phase out.

    The list is a little more practical this way, but I’m still disappointed that WOTC dropped “phasing” itself entirely instead of trying to revisit it now that they’ve started printing cards that phase things out. They could have revisited the phasing lands idea with a tapped Ancient Tomb with phasing (and no self damage), or added cards that grant your opponent’s permanents phasing (like [[Teferi’s Curse]]).



  • Pushing HTML even further, one could say it’s a declarative programming language that programs a UI in a mostly-stateless manner (inputs aren’t really stateless but you can argue the state is provided by the UI rather than managed by HTML).

    I’m not sure I’d make this leap myself though, I have a hard time classifying it (or any other markup language) as a PL. As far as I am aware, you can’t really program a state machine with pure HTML, though you can accept inputs and return outputs at least.





  • I think it’s good to document why things are done, but extracting things out into another function is just documenting what is being done with extra steps. This also comes with a number of problems:

    1. Not all languages are readable. Documenting what is being done is important in some C, or when working with some libraries that have confusing usage syntax.
    2. Not all people reading the code know the language or libraries well. Those people need guidance to understand what the code is trying to do. Function names can of course do this, but…
    3. Not all types can be named in all languages. Some languages have a concept of “opaque types”, which explicitly have no name. If parameter and return types must be specified in that language, working around that restriction may result in unnecessarily complicated code.
    4. Longer files (the result of having dozens of single-use functions) are less readable. Related logic is now detached into pointers that go all over the file all because of an allergic reaction to code comments, where a simple // or # would have made the code just as readable.
    5. Function names can be just as outdated as code comments. Both require upkeep. Speaking from personal experience, I’ve seen some truly misleading/incorrect function names.



  • While I agree, it makes connecting to localhost as easy as http://0:8080/ (for port 8080, but omit for port 80).

    I worry that changing this will cause more CVEs like the octal IP addresses incident.

    Edit: looks like it’s only being blocked for outgoing requests from websites, which seems like it’ll have a much more reasonable impact.

    Edit 2: skimming through these PRs, at least for WebKit, I don’t see tests for shorthand IPs like 0 (and no Apple device to test with). What are the chances they missed those…?