Hacker Newsnew | past | comments | ask | show | jobs | submit | monkpit's commentslogin

Why would implementation details be led by product? “Undo” is an action that the user may want, which would be led by product. Not the implementation in the db.

I believe that was the point. Soft delete isn't a product requirement, it's an implementation detail, so product teams should talk about the user experience using language like "delete" or "archive" or "undo" or "customer support retrieves deleted data".

Yeah: You don't "delete" a bank account, you close it, and you don't "undo", you reopen it, etc. The processes have conditions, audit rules, attached information, side-effects, etc. In some cases the same entity can't be restored, and you have to instead create a successor.

"Undo" may work as shorthand for "whatever the best reversing actions happen to be", but as any system grows it stops being simple.


Sure. Did someone say that the behavior should be described to customers as soft delete, though?

I read a blog about a technical topic aimed at engineers, not customers.


Yes, feeding good bacteria is the best bet. Probiotics are transient, they don’t colonize.


How do they get there initially?


The environment we live in and the foods we eat are hardly sterile.

There is also a significant microbiome on your skin.


Did they fix the bad redactions? Even though it doesn’t matter anymore…


Of course it matters.

Critical mass being aware is the whole game when it comes to corrupt governance.

Minority always gets laughed off.

That’s why the Internet being transitioned to feed-overload by state-influenced-at-least corporations is so vital.


Hooks only keep honest people honest :) and an LLM will happily clobber a tag and skip hooks while the user just spams “accept”.


Luckily commonly used forges for collaboration have the ability to make tags immutable. Any repository where multiple people collaborate on a project should have that feature enabled by default. I'm still waiting for the day where tags are immutable by default with no option exposed to change it.

I'm sure that would cause problems for some, but transitive labels already exist in Git: branches.


I dont find the idea of a immutable "descriptive" tag or branch to be that useful (I also dont find the differentiation of tags and branches to be useful either) I've seen plenty of repositories where tags end up being pretty ambiguous compared to each other or where "release-20xx" does not actually point to the official 20xx release. Immutable references are more typically handled by builders and lockfiles to which Git already has a superior immutable reference system, the commit hash.


I 100% agree on the latter (the tag != release is more of a project management issue), and the same concept applies to containers and their digest hashes. The main issue at the end of the day is the human one: most people don't like looking at hashes, nor do they provide context of progression. I would say "give both" and make sure they match on the end user side of things, but tags are the most common way (open source) software releases are denoted.


As long as we can create and delete tags, they will never be immutable, right?


The purpose of the forge is to be able to prevent this. Protected tags are usually a feature which provides a way to mark tags as untouchable, so removal would require a minimum level of trust to the repository on the platform. Otherwise, attempts to push tag deletions or changes for tags matching the protected pattern would be rejected/ignored.

Of course, the repository owner has unlimited privilege here, hence the last part of my prior comment.


Tags are just a text file with a name and the sha of the tag object (with the commit and some metadata/signatures as contents), last I checked. It's deliberately simple and thus almost impossible to actually lock it down in concrete terms.

Packed refs are a little more complicated but all of the storage formats in git are trivial to manually edit or write a tool to handle, in extremis.


That's the purpose of the forge platform, to provide a way to prevent changes to these files from being accept into the source repository. For example:

https://docs.github.com/en/repositories/configuring-branches...

https://docs.gitlab.com/user/project/protected_tags/

https://forgejo.org/docs/latest/user/protection/#protected-t...


Can't solve culture problems with technology, but we all know that by now, right?


That's true for local hooks, but neither a dishonest person nor an LLM can bypass a pre-receive hook on the server (as long as they don't have admin access).


Thanks, apparently most people here aren't familiar with server-side hooks.


Go to /plugins, then marketplaces, then select official and update marketplace. This did it for me.


this!


It would be cool if you could toggle sunset/sunrise - my street slopes upward to the east and sunrise might be more interesting.


The OP is about LogTape…


> the ability to figure out where that key is valid for

Not just the ability to figure it out, but the config is set to use it automatically, so you could easily figure this out on accident.


This is like leaving your house keys in the lock on the front door and going on vacation.


I wonder if we will trend towards a world where maintainability is just a waste of time and money, when you can just knock together a new flimsy thing quicker and cheaper than maintaining one thing over multiple iterations.


I don't think most business processes can afford to have that many issues with their code. Customers and contracts will be lost. Reputations will be lost


Without maintainability, adding a new type of input or feature will break existing features.

Doesn’t matter how quick it is to write from scratch, if you want varying inputs handled by the same piece of code, you need maintainability.

In a way, software development is all about adding new constraints to a system and making sure the old constraints are still satisfied.


Don't adequate tests make this much less of an issue?


I don’t think that will ever be true. Let’s take a shell session as an example of ad-hoc code: People are still writing programs and scripts. Stuff doesn’t really change that often to warrant starting from scratch. Easier to add a new format to a music player than writing a new player from scratch.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: