Is there a name for the problem of representing state twice and then getting out of sync?I think there is an arguably correct name. Third Normal Form is a DRY state for data. The name that will show up reliably in professional literature on development, architecture, and design-pattern texts. Normalization (good, here) and Denormalization (here used in a deprecatory sense) is perhaps the CORRECT answer. Since all live data (persisted or not) should be discussable via some kind of abstract but precise term, this is kind of a line-up of a small number of potential answers.

Is there a name for the problem of representing state twice and then getting out of sync?Nice, and correct, and not what I want to know. Imagine I am in a code-review meeting or a design discussion meeting and I want to discuss the problem in depth. I want to know what professional software developers call such problems, and thus I may find the resources I need to discuss remediating it. I know the solution for trivial demos: Stop repeating state! Various barriers exist to clearing up that repeated state. The discussion of how to fix the problem may be aided by literature/books that discuss the anti-pattern (if it is one).

Moving old desktop application to a robust platform@craig-stevensson: Consider adding a middle-tier server via embarcadero's DataSnap or RemObject's DataAbstract. I have more experience with RemObjects DataAbstract. It is exactly the solution I needed for the problem I had, which is very much like yours. Nobody can connect to the database directly. They can only hit the encrypted HTTPS server endpoints I built using DataAbstract.

Seeking Delphi (Pascal) code beautifierThis is fine in single-developer projects, but in multi-developer projects, or even projects where reading clear concise history (diffs) for your versions is important to you, consider NOT "beautifying" any code you aren't modifying right now. Whitespace-Noise will destroy the signal in your version history. You can't entirely ignore whitespace unless you implement a Delphi grammar aware diff tool. If you like me, would be loathe to have some change you made hidden among thousands of noise-lines of reformatting and whitespace changes, you might rethink this.

When do you rebuild an application or keep on fixing the existing oneOkay let me rephrase. I have read "Working Effectively With Legacy Code", and I have grappled with un UNIT testable code. Getting code "more under Test than it is today" and getting it completely "under unit test" are sometimes two different things. It is always possible to make progress towards having some testability, at a UNIT or Integration level. It is NOT always possible to survive a rewrite.

Jan23

comment

Why “Fork me on GitHub”?Isn't it far simpler to just say, "that's how distributed version control works, by pull requests, which of course requires that I first fork your repo, then commit to my fork, then issue a pull request if I build something worth sharing with the original project"

Jan23

comment

Why “Fork me on GitHub”?Exactly. DVCS workflows mean I can publish my results without inflicting them on others. Forking means not having to ask permission to share anything you want to share. If the Internet likes your changes they will absorb them.

Can the GitHub pull request process constitute an electronic signature of a CLA?Even if it doesn't, it seems to me that a CLA is a legal risk reduction practice, not a matter of necessity. The action of contributing to a GPL'd codebase would be, it seems, legally obviously an intentional relinquishment of one's own copyright. One has freely attached one's work to another work which has an existing license. A CLA is a good idea, but I'd be shocked if anyone could claim copyright on anything they contributed to any free open project later.