• 0 Posts
  • 891 Comments
Joined 2 years ago
cake
Cake day: June 21st, 2023

help-circle


  • Unstoppable Slasher at home.

    Seriously. Slasher is so pushed. It’s insane that card is 3 mana. Even wilder that it’s not even close to broken in current standard, but maybe that just means that power level is where we’re at now.

    The ward on this is nice, but at 5 mana, the opponent will have many ways to answer it. Or they can just take the hit and block it since it’s only a 3/3 I guess.




  • For an ability locked behind 12+ charge counters, I’d have hoped for an ability that favors big red. Maybe a ritual or some other kind of ramp instead? The haste might still be useful, but I’m sure there’s something better there.

    A 3 mana bushwhacker on a land is nice, but this feels like it’d be too slow for the aggro decks that really want this.


  • This will either be ass or busted, and I’m inclined to lean towards busted, assuming you can station while summoning sick like you can with crewing. Playing this t1 and tapping all your creatures when they ETB until this hits 12+ feels free in a meta where aggro doesn’t overrun you in 3 turns. Plus, artifact decks tend to make big creatures pretty quickly, and Tolarian Academy is OP pretty much everywhere.


  • Missed opportunity to make this a kindred spell, sadly. Also, at 6 mana, I’d rather just play a double strike sliver most times, and it doesn’t create slivers until the next upkeep.

    Might be fun in limited and commander, but I don’t see it anywhere else. A standard slivers deck would be neat though.



  • This might depend on the warp cards that get revealed. We already know of a card with a 1 mana warp, so I think if more cards with cheap warp costs exist and they are otherwise playable, then this card might be playable as well.

    This also depends on standard. From what I can tell, it’s no longer a turn 3 format, so you might not need to thoughtseize/duress on t1 anymore, meaning you can hold this until it’s more convenient.

    This definitely does not replace duress/thoughtseize though. Those cards are good against control because they allow you to continue your turn afterwards, costing only 1 mana. This card feels better in a dedicated discard or midrange-ish deck that already can reduce its cost to 1 somewhat consistently.




  • The distribution is super important here too. Hashing any value to zero (or h(x) = 0) is valid, but a terrible distribution. The challenge is getting real-world values hashed in a mostly uniform distribution to avoid collisions where possible.

    Still, the contents of the article are useful even outside of hashing. It should just disclaim that the width of the output isn’t the only thing important in a hash function.




  • This would infuriate me to no end. It’s literally the definition of a data race. All data between threads needs to either be accessed through synchronization primitives (mutexes, atomic access, etc) or needs to be immutable. For the most part, this should include fds, though concurrent writes to stderr might be less of an issue (still a good idea to lock/buffer it and stdout though to avoid garbled output).


  • The main value I found from Copilot in vscode back when it first released was its ability to recognize and continue patterns in code (like in assets, or where you might have a bunch of similar but slightly different fields in a type that are all initialized mostly the same).

    I don’t use it anymore though because I found the suggestions to be annoying and distracting most of the time and got tired of hitting escape. It also got in the way of standard intellisense when all I needed was to fill in a method name. It took my focus away from thinking about the code because it would generate plausible looking lines of code and my thinking would get pulled in that direction as a result.

    With “agents” (whatever that term means these days), the article describes my feelings exactly. I spend the same amount of time verifying a solution as I would just creating the solution myself. The difference is I fully understand my own code, but I can’t reach that same understanding of generated code as fast because I didn’t think about writing it or how that code will solve my problem.

    Also, asking an LLM about the generated code is about as reliable as you’d expect on average, and I need it to be 100% reliable (or extremely close) if I’m going to use it to explain anything to me at all.

    Where I found these “agents” to be the most useful is expanding on documentation (markdown files and such). Create a first draft and ask it to clean it up. It still takes effort to review that it didn’t start BSing something, but as long as what it generates is small and it’s just editing an existing file, it’s usually not too bad.



  • Ah yes, one of the major questions of software development: to comment, or not to comment? This is almost as big of a question as tabs vs spaces at this point.

    Personally? I don’t really care. Make the code readable to whoever needs to be able to read it. If you’re working on a team, set the standard with your team. No answer is the universally correct one, nor is any answer going to be eternally the correct one.

    Regardless of whether code comments should or shouldn’t exist, I’m of the opinion that doc comments should exist for functions at the very minimum. Describe preconditions, postconditions, the expected parameters (and types if needed), etc. I hate seeing undocumented **kwargs in a function, and I’ll almost always block a PR on my team if I see one where the valid arguments there are not blatantly obvious from context.