HNHacker News
TopNewBestAskShowJobs

CodeMage

6,770 karma · joined February 26, 2009

submissionscomments
CodeMage··on C++20 Concepts: The Definitive Guide
> Most often it is not necessary, and not wanted, to enforce a and b having the same type.

That really depends on what you're trying to do. Presenting these two different declarations as somehow equivalent is very misleading and I'm glad that the author didn't do that.

CodeMage··on C++20 Concepts: The Definitive Guide
> I feel like one of the things a "Definitive Guide" to this feature needs to make clear, and maybe even emphasise, is a key way these are different than say Rust type Traits.

> Concepts, just like the SFINAE and constrexpr hacks you should discard in their favour, are about only what will compile and you, the C++ programmer, are always responsible for shouldering the burden of deciding whether that will do what you meant even if you have no insight into the types involved.

To be fair, that's not what makes them different from Rust. Unless there's something in Rust that I missed, it offers no guarantees that the implementation of the trait is consistent with its semantics.

Whether it's traits or concepts, it's still about compile-time type-checking, not actual contracts.

CodeMage··on Software Engineering principles to make teams better
This was the first time I've encountered the mention of "referential transparency", so I looked it up and went down a deep rabbit hole. It seems that it's normally used to describe the property of not having side effects, however, I also found this long explanation on Stack Overflow: https://stackoverflow.com/a/9859966/58099

So now I'm more confused than when I initially read your comment. Do you mean "referential transparency" as in "expressions without side effects" or do you mean it in some other way that I don't understand yet?

CodeMage··on Note that I wouldn’t pass the listed minimum requirements
> General SE hiring comment: One thing I realized, for most IT/SE jobs, the more accurately you describe your current stack in the requirements (or maybe the person you are replacing), the smaller your candidate pool is.

Perhaps the solution is to not always aim for the narrowest possible fit. There are many people who would like an opportunity to learn new things and grow.

I understand that this thinking can't be applied to all positions. If, for example, you want to bring in someone new to your company and put them in charge of "everything Foo-related", then you need someone with suitable experience in Foo. However, too many companies tend to extend that too far down the ladder.

CodeMage··on On Comments in Code
The point on API methods is incredibly important. True, "Why" is the most important kind of comment, but I disagree with the author's critique of the documentation-generating comments and agree with you.

Yes, "what" comments are a source of additional developer effort and of possible inconsistencies between code and comments, but good API documentation is worth writing and maintaining.

No matter how well you name your method and its arguments, if it's part of the public API and you don't include a comprehensive documentation comment, I'll be forced to dig through your source.

CodeMage··on House lawmakers release anti-monopoly agenda for “a stronger online economy”
> I see a lot of arguments about these companies that are tantamount to "I didn't know how the world worked till I saw them do it and now I'm unhappy".

Just out of curiosity: which aspect of those arguments do you object to, if any? I'm not trying to be confrontational, just trying to understand your point of view.

There was a time where monopolies were "how the world worked", until the society collectively decided that it's not how the world should work. If Google and Amazon aren't actual monopolies, then maybe we need a new name and a new set of rules.

CodeMage··on You Don’t Need Permission
This kind of reply makes discussions about agile very frustrating for me. Not only does it conflate agile software development, as a set of practices, with the myriad of processes and practices like scrum, but it also deflects perfectly valid criticisms with insinuation that "you're doing it wrong".

Most people would never think of either pretending that the waterfall model is without problems, nor that it can never be successfully applied to any project. Why, then, is it not acceptable to admit that scrum does, indeed, have limitations that stem from the way it reduces the autonomy of the individual team members?

I'm not sure where "the right people on the right team" comes from -- it's certainly not in the agile manifesto -- but it's just the right grade of vague to be less than useful in practice. It's like saying that every problem can be solved in only two steps: 1) determine what you have to do, and 2) do it.

I don't see any reason for denying that scrum, in its most widely-practiced form, complicates or even discourages certain tasks and behaviors that can be beneficial under correct circumstances. It shouldn't be controversial.

CodeMage··on You Don’t Need Permission
The article is not about scrum. This particular thread of discussion is about scrum, because that's what the comment that started it was about, and also your comment that I replied to.

I was merely framing the discussion in terms of what is written in the article, to illustrate what the problem with scrum (or capital-A agile in general) is.

You are now replying to my specific example, instead of my argument about the problems with scrum.

CodeMage··on You Don’t Need Permission
I enjoyed his rants thoroughly. It doesn't matter if I agree or not, they're always fun reads. I should go check if his new stuff is as fun.
CodeMage··on You Don’t Need Permission
The issue with the process itself is how that justification is provided. If you have data to justify something, then the process works fine. If you don't have that data and need to put in some work to obtain it, then you have to somehow justify that work, and the only way to do that is by "getting permission", i.e. buy-in from the rest of the team.

If you put it in context of the situation described in "You Don't Need Permission", doing the customer discovery cannot be justified except through buy-in from the CEO. If Suresh (from the story) has a daily standup with his CEO, then he can't do customer discovery because of the process.

CodeMage··on Complexities of e-mail validation logic
As a user, I got burned by that several times. Now, when I create a new account somewhere, the first thing I do is log out and try to log back in.
CodeMage··on Amazon Fake Reviews Scam Exposed in Data Breach
I'm not sure it really works in Amazons favor. Sure, some customers might be more inclined to buy the Amazon recommended choice. But I wonder how many are frustrated like me.

When I buy stuff on Amazon, it's not because I want Amazon to recommend their pick. I want to compare alternatives and make my own choice. That's getting harder and harder, because there's a gazillion identical results with spammy, polluted product names, sold by a bajillion different-yet-indistinguishable sellers. And each one of those results has a nice, fancy-looking template, but when you start reading, it's full of spelling and grammar errors.

It's as frustrating as trying to have a "conversation" with a chat bot.

What's the solution? Beats me. A naive part of my brain is suggesting some kind of vetting process for sellers, or maybe a trust rating, but I'm sure there are tons of horrible problems with those ideas.

CodeMage··on There’s Nothing to Do Except Gamble
> I really don't understand this sentiment, as if a professional gambler would not gladly gamble with novices...

"Professional" and "expert" aren't synonyms. "Amateur" and "novice" aren't synonyms either.

An expert might be glad to go against a novice. But when there are artificial barriers separating "professionals" from "amateurs", barriers that have nothing to do with level of expertise, that's a different story.

CodeMage··on Why My Blog Is Closed-Source
Oh, okay. Thank you for clarifying.
CodeMage··on Why My Blog Is Closed-Source
Can someone explain the part about copycats? The way I'm reading it is that the "copycats" forked the repo, and then retained the presentation while changing the content. In other words, it's like writing your own resume using someone else's publicly shared Word template. What am I missing? Why is this wrong?
CodeMage··on CXX - Safe interop between Rust and C++
Thanks! I didn't know about that one.
CodeMage··on CXX - Safe interop between Rust and C++
In your opinion, as someone who has experience using it, can CXX make it easier to write Rust code that loads dynamically linked plugins (also written in Rust)? Sorry if the question is dumb, I started learning Rust only a month ago and one of the things I ran into is that Rust doesn't guarantee stable ABI.
CodeMage··on As U.S. schools shuttered, student mental health cratered, survey finds
Because a kid will recover more easily from feeling responsible for their parent's death than they will from extended but finite lockdown?
CodeMage··on As U.S. schools shuttered, student mental health cratered, survey finds
Tell that to Brazil: https://www.researchgate.net/publication/346632665_Coronavir...
CodeMage··on Focalboard – a self-hosted alternative to Trello, Notion, and Asana
I'm curious about something: would there be any hidden gotchas involved if someone forked the Mattermost repo, and added features like that? I understand not wanting to spend the effort on implementing and maintaining these changes, I'm just trying to figure out if there's any other reason for not doing it. From what I can see, the license is APL 2.0, which I think shouldn't forbid that, but IANAL (or expert on working in open source).
CodeMage··on We created a fake language to root out resume liars
> If that company really ruled you out because you had 7 years of C# experience, and not 7 years of Java experience, you likely dodged a bullet.

Respectfully, I disagree. Things that you should learn over 7 years of experience go far beyond learning the language itself or the fundamentals of its standard library. We're talking about two very different ecosystems.

CodeMage··on Four times I felt discriminated against for being a female developer
> When minorities are made "ambassadors" as though they suddenly speak for EVERYONE in their minority, it is awful, and wrong.

I've seen this described as "privilege of individuality", a privilege accorded to the majority and denied to the minority: https://twitter.com/michaelharriot/status/135278572082239488...

CodeMage··on Food Prices Are Soaring Faster Than Inflation and Incomes
I agree with everything you wrote except that last sentence, and that is exactly what I refer to as "dismissing the profession". Understanding their biases and agenda is by no means trivial, or even easy, but it's most likely a lot easier than spending all the time they spent on studying the subject matter.
CodeMage··on Food Prices Are Soaring Faster Than Inflation and Incomes
I'm sorry, but no, they don't. Out of all of the examples I used, only one has agreed-upon norms and standards that can be measured: racing.

All the other examples I used -- chef, journalist, writer, singer -- can win awards and recognition: Michelin stars, Pulitzer, Hugo, Nebula, Grammy, and such. Those are good indicators of their accomplishments, but that's not the same as having a set of "agreed-upon norms and standards that can be measured".

And if you decide to relax your criteria and say that having those is acceptable, then guess what? There's a Nobel Memorial Prize in Economic Sciences, and a slew of other awards for economists.

Like it or not, studying economics is something that people can and do dedicate their lives to. Would it be better if we had more clarity, transparency, and consensus when it comes to what they do? Absolutely. But dismissing the whole profession out of hand is unhelpful.

CodeMage··on Food Prices Are Soaring Faster Than Inflation and Incomes
You know you can be a "professional X" without X being a science, right? It simply means that X is your profession. Some examples of professions that are not sciences: racer, chef, journalist, writer, singer.
CodeMage··on An Introduction to Lockless Algorithms
> pthread_join is a blocking call, and therefore against the spirit of lockless programing. pthread_join will block until the child-thread exists, which means there's a lock in there somewhere. I personally think the first example they show is a terrible example as a result.

But they didn't use it as an example of lockless programming, did they? They were explaining what "acquire" and "release" mean, and they wanted to explain it in terms the reader should already be familiar with.

In fact, they explicitly say it's not lockless:

    In the previous paragraph we have seen how the acquire and release semantics of pthread_create() and pthread_join() allow the creator of a thread to exchange information with that thread and vice versa. We will now see how this kind of communication can happen in a lockless manner while threads run.
CodeMage··on What’s Wrong with “Multiplication Is Repeated Addition”? (2008)
I'm not saying you shouldn't use the word. I'm saying you shouldn't ignore its very specific and specialized context. Taking things out of their context often leads to problems, just like in this case.
CodeMage··on What’s Wrong with “Multiplication Is Repeated Addition”? (2008)
Let's not take the word "lie" out of its context and then get hung up on it. We're not actually lying to children by simplifying the explanation down to what they can comprehend with the tools they have at that stage.
CodeMage··on Mindsets to Avoid as a Senior Software Developer
> Well, if you'll allow everybody to review everybody PRs then eventually that's what you'll get.

If you allow everybody to review every PR, it doesn't imply that you'll allow everybody to approve every PR.

CodeMage··on Multi-User Dungeons (MUDs): What Are They? and How to Play
Yeah, I remember the rules about "botting", too. I don't know if they changed a lot since I played, but back then they basically amounted to "don't automate your character to farm while idle". In light of the pay-to-avoid-grind system, it didn't take me too long to conclude that the rules were pretty much "don't affect our bottom line, anything else goes".
← PreviousPage 8 of 34Next →