4 ms·
That's awesome. At my last job, I created a Makefile-driven abomination that would, for a specific form of shell script, generate .gitlab-ci.yaml fragment and "
by rubicks 3y ago
That's awesome. At my last job, I created a Makefile-driven abomination that would, for a specific form of shell script, generate .gitlab-ci.yaml fragment and "link" them together. I'm equal parts proud and ashamed.
- ilc 3y agoI've got one worse. For those who know Clearcase, and winking in. Well, there was a team that had a 2 hour java build and they were suffering. Nothing was working right. One could argue that using Clearcase and Clearmake was the error.. and even back then as a PFY I'd agree. But help them I must. So I wrote a makefile, that wrote makefiles, that would then compile all the code into /tmp, and copy the jar back into place. Because... Clearcase tracks every file you touch, it is critical, you ONLY touch your inputs, do not produce extra .class files where it can see them, or you'll end up with a bunch of files all interdependent and confused. Their build went from ~2hrs to about ~5 minutes when I was done. Less if it "winked" in everything. ... The amount of good, stupid can do is amazing.
- zaphar 3y agoI don't know, Most stories like this sound more like "clever" than "stupid" to me. You have a set of constraints and some tools. You use those tools to workaround/within those constraints to solve a problem. Clearcase being a tire fire is "stupid". But your solution is "clever"
- endofreach 3y agoAfter many years, describing a workaround as "stupid" is way more positive than "clever" (red flag). Especially when talking workaround for 3rd party software.
- rubicks 3y agoStupid tools need stupid fixes. I will die on this hill.
- pasc1878 3y agoIn this case the stupid tool is Java. What clear case did was correct for C/C++ and possibly Pascal and Ada and run by makefiles. Clearcase would spot which header files were used in your code and only recompiled if you changed those headers and if someone else used the same code and headers clear case would give them the .o file it had compiled for you. (no having to generate .dep files). As local machines got faster this became less of a speedup. In the latter all dependency tracking was not part of the language so it could be left to clear case. Java does its own dependency tracking and so did cleanse on the server so you get the mess. Clearcase is not necessarily at fault here it just was not designed for Java.
- ilc 3y agoClearcase is 100% to blame here. It made assumptions and the world changed. And when it changed... Clearcase did not degrade gracefully. It was a full on collapse.
- pasc1878 3y agoNo the error is the users/management Clearcase and Java just don't work together using winking etc. So the users should use something else. Clearcase assumptions still worked for C/C++. Clearcase could also act in the way svn, PVCS and CVS did with a checkout to a local disk and that way there would not have been the issues the OP talks about. (We did that for some projects not because of Java but because we were on Windows). Clearcase was still useful as it had good merging and easy branching 10 years before git. After git and mercurial came out then yes Clearcase was not worth the money and collapsed.
- LispSporks22 3y agoClearcase is the only time I’ve ever quit a job over technology or tools.
- epistasis 3y agoI once created a makefile script that had this first line: #!/usr/bin/make -f And I similarly felt equally proud and ashamed.
- dullcrisp 3y agoYou know what this means. We need a framework that lets you Make a website. With a catchy name.