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?
Someone I know failed an algebra exam for using calculus to get the vertex of a parabola. It'd be one thing if the reason was that it wasn't a method that was taught yet, but the teacher straight up didn't know any calculus and failed them by saying it was nonsense.
From the article:
Western-owned brands manufactured in China, such as BMW and Tesla
Looks like you're safe buying a Tesla.
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]]).
Sorry if I'm missing some sarcasm here, but if this is all you have to contribute, then as a professional software developer, I'd much rather work with the author of the article on a daily basis.
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.
Biden gets a rousing tribute from Democrats as he passes
I knew he was sick, but holy crap.
the torch to Harris in 2024 DNC speech
Oh, phew
I'm not sure I see the issue. Is there something wrong with them reporting on Ukraine's Kursk region? Doesn't seem like an illegal border crossing to me.
Two can play at this game.
Their GPUs are already bricks. Just throw the GPUs.
Two thoughts come to mind for me:
- I think people should feel free to use any language however they want for their own needs and projects, but it's also important to understand what exactly "unsound" and "undefined behavior" mean if you're going to dabble with them. If it's a risk you're willing to take, go for it, but don't be surprised if things break in ways that make no sense at all. Realistically a compiler won't delete your root directory if you trigger UB or anything, but subtle bugs can creep in and change behaviors in ways that still run but which make unrelated code break in difficult to debug ways.
- The borrow checker is one of Rust's biggest features, so looking for ways around it feels a bit counterproductive. Feature-wise, Rust has a lot of cool constructs around traits and enums and such, but the language and its libraries are built around the assumption that the guarantees the compiler enforces in safe code will always be true. These guarantees extend beyond the borrow checker to things like string representation and thread safety as well. As an alternative, some other languages (like C++, which you mentioned, or maybe even Zig) might be better suited for this approach to "dirty-but-works" development, and especially with C++, there are some excellent tools and libraries available for game development.
Would it work to write the query as a common table expression, then select your columns from that table and join it with a count(*)
aggregation of the table?
Or look at Python and their urllib, urllib2, new urllib, and the requests package on PyPi.
We already sort of saw this in Rust with crossbeam and standard channels, until of course they replaced the standard lib implementation with crossbeam's implementation.
Hey look, the classic "America bad" comment on a post critical of China!
Are these people bots or something? It's possible to be critical of both at different times.
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:
- 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.
- 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...
- 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.
- 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. - 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.
If those functions are huge units of work or pretty complex, I can agree. For most cases though, a simple code comment should do to explain what's going on?
My friend's homophobic dad was diagnosed with HIV right before his wife filed for divorce. They had a long discussion about how he got it, and he admitted to it being another guy. She was very lucky not to have HIV as well.
There does exist a correlation, but like all generalizations, it does not apply to all cases and can come off dismissive, rude, or minimizing when it isn't actually true. I find that it's best to avoid sweeping generalizations for people at all.
While impressive, a minifier can bring it down to 1 line of JS! I do like that this can function as a reference for making simple canvas-based games though.
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..?
What's wrong with putting tampons in the men's restrooms at schools? Won't they come in handy if there is a shooting?
Anyway, this reads to me like free advertising for Walz.
(Disclaimer: do not try to use a tampon to patch a bullet wound)