3 ms·
> Not everyone has the skill, or time and energy, to pick up a dead project. To expound on that, usually when I encounter a "dead" project, the biggest hurdle(
by smaudet 2y ago
> Not everyone has the skill, or time and energy, to pick up a dead project.
To expound on that, usually when I encounter a "dead" project, the biggest hurdle(s) are the build assumptions that weren't addressed - large complex build systems that have many presumptions (usually dynamic run-times with macro libraries, that require specific versions of things to exist on your system, that themselves are also quite difficult to build/require specific starting conditions)...
A good example, I see (quite often actually) build systems with nested build systems that are then bootstrapping other builds - quite a technical marvel but unsurprising when a tweak to the "underlying build tools" causes strange errors and requires massive build-system surgeries...
The lesson? Be as verbose as possible about exactly everything you know you depend on, in as clear (human readable) format as possible, and always strive to pick the simplest build tool possible - if you are compiling a language, use that compiler, not a system that has support for systems that can compile your language.
Technical "shortcuts" are the bane of longevity of a software artifact.
- robinsonb5 2y agoVery much this. Please stop building Jenga towers. It's always alarming to encounter build instructions that start with "you need this specific version of this particular compiler for this particular obscure language..." Bonus points if your build process fetches modules from online endpoints that may or may not be there in five years' time. [And yes, I'm as guilty as anyone of creating over-engineered but ultimately fragile scripts to automate a build. My favourite is a bash script which parses a text file for filenames, matches against the file extension and processes them accordingly. If you edit the text file with a Windows-style editor so it acquires CR/LF line endings, the bash script can no longer parse it. Fun times.]
- shrimp_emoji 2y agoAre you saying dependencies are bad? Are you saying all new languages are bad because they encourage you to pull in half the program via some language package manager, injecting problems from simple networking availability to supply chain attacks into what was otherwise a simple program? Are you saying we should only code everything in C and C++ and Bash with as few dependencies as possible? https://youtu.be/fDq_8y_drE8&t=85 https://youtu.be/fDq_8y_drE8&t=85
- lukan 2y agoI think he or she is just saying, try not to build overly complicated things. To which I very much agree.
- robinsonb5 2y agoOverly complicated things, but also things that are so fragile that the slightest disturbance (such as a minor version change) in the foundations will make them collapse.
- musicale 2y ago> Are you saying we should only code everything in C and C++ and Bash with as few dependencies as possible? Every so often I encounter a package with very few (or no external) dependencies that just works, and it's wonderful. There is something to be said for going with a mature, stable, non-bleeding-edge platform and minimizing dependencies. Regarding C/C++, they tend to facilitate memory errors, while memory-safe language systems (Ada, Java, Javascript, Rust, ...) all seem to come with various down sides.
- robinsonb5 2y agoSorry for the late reply: what I'm saying is that build-process fragility is bad. Ill-considered or slapdash dependencies can be part of that, as can runaway complexity. So can the choice of language, but so can the hackish bash-script example I confessed to from my own project.
- rchaud 2y agoNo worries about that with Hotglue (PHP), the deployment is no more complicated than dropping the unzipped project folder onto a webserver. I really wish I knew more PHP to fix some things, as Hotglue as it is already ticks a lot of boxes for me (non-SaaS, self-hostable). I tried to find a way to make public pages password-protected, but it didn't work when I used the Apache server method (conflicts with the authentication method used for editing the pages). And I don't know enough PHP to do it on the application side.
- lukan 2y agoI think ChatGPT and alike could probably help here. Maybe they even know the project and had its sources in the training data and your request sounds quite standard. (but personally, I am not touching PHP)