lysdexic

joined 2 years ago
MODERATOR OF
[–] lysdexic@programming.dev 3 points 2 years ago* (last edited 2 years ago) (1 children)

To me it’s not really excitement so much as “oh god how do i make this ridiculous language do the correct thing”.

I think this all comes down to having the right mental model.

In this case, I think it helps to know that:

  • returning by value by default implies making a copy,
  • ...but if the output type supports move semantics and the function returns a temporary value (rvalue) then the language is on your side and tries to move it instead of doing a copy.
  • and here's the kicker: now the language goes the extra mile and looks after you to avoid that copy, and if your return value allows the language to apply an optimization then the language is on your side and eliminates any potential copy without you having to do anything special.

The zany behavior is that if you set up your function to push for a move (i.e., force a local variable to be treated as a temporary), the language ceases to be able to apply its optimization.

That's basically it. No real mystery.

[–] lysdexic@programming.dev 16 points 2 years ago (2 children)

For those who want a ready-made set of .gitattribute files you can simply drop on your project, here's this fancy GitHub link.

https://github.com/gitattributes/gitattributes

Once you add a .gitattributes file to your project, make sure you push a commit that re-normalizes all relevant files:

git rm --cached -r .
git reset --hard
[–] lysdexic@programming.dev 1 points 2 years ago* (last edited 2 years ago)

From the article:

By library, I mean any software that can be run by the user: shared objects, modules, servers, command line utilities, and others. By service, I mean any software which the user can't run on their own; anything which depends (usually through an API) on a service provider for its functionality.

It looks like the blogger took a page out of Humpty Dumpty's playbook and tried to repurpose familiar keywords that refer to widely established concepts by assigning them entirely different meanings that are used by no one except the author. I'd also go as far as stating these redefinitions make no sense at all.

Perhaps the blogger might even have a point to make, but stumbling upon these semantics screwups is a major turndown, and in my case led me to just stop reading the blog post on the spot.

[–] lysdexic@programming.dev 3 points 2 years ago

See also the C4 process RFC

What an unfortunate name.

https://c4model.com/

[–] lysdexic@programming.dev 6 points 2 years ago* (last edited 2 years ago)

I was thinking of cross posting this to a Fortran community, but it looks like we don’t yet have one.

I'm sure everyone is still in comp.lang.fortran telling all kids to get off their lawns.

[–] lysdexic@programming.dev 7 points 2 years ago (1 children)

(...) there’s really nothing here for any competent programmer, even a fresh graduate. It turns out they they update the software by sending the update by radio.

How they send the payload is hardly the hard part of applying a software update. The hard part is stuff that you need to do after you have the payload: ensure the payload is valid, have the infrastructure in place to roll it out without bricking the hardware, be able to roll back faulty changes if some problem occurs after rolling stuff out, etc.

I can tell you with absolute certainty that this stuff is challenging for the majority of competent programmers out there, and they have the luxury of falling back to telling users to reboot or reinstall the app.

[–] lysdexic@programming.dev 4 points 2 years ago (2 children)

From the announcement:

The premise of chiseled containers is that container images are the best deployment vehicle for cloud apps, but that typical images contain far too many components. Instead, we need to slice away all but the essential components. Chiseled container images do that. That helps — a lot — with size and security.

I'm glad that Microsoft is being mindful of how they are delivering .NET container images. However, this announcement feels like a large marketing effort to spin a failure into a win. The need to provide lean container images is as old as Docker itself, and Alpine-based images are synonymous with lean images. A very basic security measure in containerized applications is to not ship stuff you don't need. Microsoft's container images are indeed quite big without no good justification.

It's nice that Microsoft is fixing the problems they've been creating, but I'm baffled by the effort they are making to make believe this is something new or even a new concept.

[–] lysdexic@programming.dev 1 points 2 years ago (1 children)

Taking UK as an example, you can call yourself civil engineer all day long without having to worry any legal consequences because there simply is no such thing as a licensing system for engineers.

Britain's Engineering Council disagrees.

https://www.engc.org.uk/international-activity/access-to-practise-in-the-uk/

[–] lysdexic@programming.dev 2 points 2 years ago

That is the work of a software engineer.

To build upon this, we need to keep in mind that at least in some jurisdictions the role of a certified engineer is only required in projects with relevant size, and the responsibility of that engineer is to ensure the project complies with all requirements and therefore be held responsible for any mishap. This means that it's perfectly fine if non-engineers work independently on complex tasks, provided that an engineer attests that their output is fine and takes responsibility in case it isn't and it causes problems.

[–] lysdexic@programming.dev 3 points 2 years ago (3 children)

This really depends on the country you live in.

Not really. There are two aspects to this problem: one is how people assign arbitrary and meaningless titles to themselves, and another is regulatory requirements by jurisdictions to be able to legally assume a role.

I can call myself senior dubstep engineer, and that's perfectly fine. I can't call myself a civil engineer and sign off on a construction project or a permit. No one cares if I'm actually a senior dubstep engineer or if I'm junior at best. In the meantime, you will get in trouble if you try to sign off on a construction project, no matter of how stubborn you are with regards to calling yourself an engineer.

[–] lysdexic@programming.dev 3 points 2 years ago* (last edited 2 years ago) (1 children)

As a former civil engineer who now works in software, “software engineer” irks me. “Engineer” means you’re supposed to be licensed and you have a responsibility for the public good above your responsibility to your employer.

This. I think some people don't understand that titles are not whimsical status symbols and hold actual legal and regulatory meaning. A random guy can hold an engineering degree and not be an engineer, while a random guy with no degree can actually be a engineer if he jumps through all the hoops.

In engineering fields, being a member of a professional engineering body is critical to work in the field, because the main value proposition of these credentials is to prevent incompetent people from working on critical tasks which can potentially have important consequences to society if they are done poorly. For example, people can die if an engineer signs off on a project for a residential building that collapses due to shoddy work. If that happens then the engineers who signed off on the project will be investigated and if they are held responsible not only can they be held criminally responsible for their work but their license will be pulled, which is society's response to ensure this problem won't happen again.

[–] lysdexic@programming.dev 2 points 2 years ago* (last edited 2 years ago) (1 children)

Poorly defined nomenclature. Simple as that. I’m an “automation engineer”, have had many other titles (...)

Anyone can call themselves what they feel like it. However, in some jurisdictions and contexts the title "engineer" does have a specific meaning, consisting of someone who not only has the necessary and sufficient training but also is a member of a specific professional body. These credentials have meaning and those who try to pass themselves off as one without having the certification or credentials might be breaking laws.

view more: ‹ prev next ›