4 ms·
People should expand acronyms at least one place somewhere on the page. I'm now three clicks deep and looking through the youtube comments and still a bit vague
by codeulike 4y ago
People should expand acronyms at least one place somewhere on the page. I'm now three clicks deep and looking through the youtube comments and still a bit vague as to what this is. CI/CD? Thats continuous integration right? Should everyone know thats what CI stands for? I'm sure its a very useful thing but I havent personally ever used it even though I've been a programmer for 40 years. So I'm not that famailiar with the acronyms. My point being - our industry is big and not everyone uses every thing, or knows what it is, so its useful to expand acronyms somewhere in the description.
- ranger_danger 4y agoI assume it's mainly targeted at devops people who absolutely know what CI/CD is and use it all the time.
- cassianoleal 4y agoEvery person involved in software engineering should be aware of CI/CD and use it all the time, not only "devops people".
- senand 4y agoAgreed. However, I still believe explaining acronyms is good practice.
- bajsejohannes 4y agoEvery person who should be aware of CI/CD needs to learn it at some point.
- codeulike 4y agoI'm in software engineering and I'm aware of continuous integration but rarely use it and when I see CI its not the first thing that springs to mind. Any questions?
- capableweb 4y agoThis case is a special though, as Bob CD is not a 100% complete package for doing CI/CD, it is one fundamental building piece for building your own CI/CD solution on top of. So devops people would use Bob CD to build their in-house solution for it, and everyone would be using that, without actually using Bob CD directly.
- ansible 4y agoFor anything to do with embedded development, this is not reasonable.
- zuzuleinen 4y agoMaybe try https://bobbuildtool.dev/ https://bobbuildtool.dev/ ?
- ansible 4y agoPerhaps I should have been clearer. Having an automated process to check out the most recent revision of the codebase and compiling it is just as easy as with other development. Doing anything with that in an automated process is usually far more difficult. Suppose I'm developing a WiFi thermostat. The flashing process for that may require manual intervention, but let's leave that aside. So the new code runs, now what? I need a webcam to look at the display, a robot to press the buttons or turn the wheel, and further fixtures to see if it is turning on the furnace appropriately. Or we could simulate all the hardware in software... do I need to explain how much of a project that in itself is? Sure, it can be done, but it is the old question of time and cost.
- swores 4y agoFor anyone else annoyed by the replies that complain everyone should know what it means and don't bother to actually answer: "In software engineering, CI/CD or CICD is the combined practices of continuous integration (CI) and (more often) continuous delivery or (less often) continuous deployment (CD)." https://en.m.wikipedia.org/wiki/CI/CD https://en.m.wikipedia.org/wiki/CI/CD
- jve 4y agoOr simply: - CI can build your app and run tests on each commit or manually. - CD can deploy your app (copy files to some host, pull newest docker image, do any additional steps necessary) on each commit or manually to dev/test/prod instances. It enormously frees up your valuable brain cycles and you feel excited instead of "eh, there it goes again, how i'm not liking deployments..." whenever you want to deploy. If you have `make build` && `make test` or similar script, that runs your tests, congrats, you have local almost-CI doing the hard work for you. If you have `make deploy` or similar script that makes deployment easily, congrats, you have a local CD doing the hard work for you. Except server software enables you to run builds/tests/deployments even when your computer is off or your colleague forgets to run make test.
- capableweb 4y ago> - CI can build your app and run tests on each commit or manually. "Simply" while getting it wrong? :D What "Continuous Integration" is hides in the name of it, you continuously integrate the code into the "main branch/trunk", meaning if you have multiple contributors to a project, they frequently all merge the code into a common place where they base their next changes from. "Continuous Deployment" is taking CI to the next step where you frequently deliver those integrated changes to your user. Deploying every commit to a testing instance wouldn't actually be CD as your users usually don't hang around on your testing instance. If you frequently push changes to production though, where users can use it, then you are "continuously deploying". To make things even more confusing, CD can also refer to "Continuous Delivery" which is essentially the same as "Continuous Deployment" except you don't actually deploy to production, you just pretend to all the way up to actually updating the software on the production server. You do this in order to always be ready to deploy whenever, but when you don't feel safe enough to get there just yet. Building and tests are not even needed for CI nor CD, although it helps tremendously and it would be foolish to attempt CI/CD without any sort of automated tests.
- jccalhoun 4y agoAgreed. I have no idea what this is after reading the front page.
- dec0dedab0de 4y agoWhy stop at acronyms? Everyone could add a definition for every word the first time they use it? Or maybe they can assume that since you're reading a webpage you have access to the internet, and could easily look up any words that you don't know.
- thomascgalvin 4y agoWords often have one (or a few) largely agreed-upon definitions. Acronyms are often overloaded based on context, and are less likely to be known by a casual reader. NASA probably doesn't need to be expanded, because even if you don't know that it's the National Aeronautics and Space Administration, you do know that they make the up-goers. CD could mean a bunch of things, all context dependent. When it's paired with CI, it becomes easier to guess, but "Bob CD" doesn't tell me anything useful by itself.
- capableweb 4y agoIf the page just said "Bob CD" without elaborating, I'd agree. But it does go on to describe itself as a "CI Platform", having "Pipelines/Artifacts/Resources" and so on, so you can be pretty sure it's not talking about "compact discs" or whatever. By the way, how to you feel about "ycombinator.com" not really describing that it is just a startup accelerator and not about the lambda calculus combinator?
- thomascgalvin 4y agoThe very first text my eyes fell on when visiting ycombinator.com was: > Y Combinator created a new model for funding early stage startups. That is a great example of a landing page that actually tells you what's going on.
- capableweb 4y agoThat could apply to a cryptocurrency DAO as much as a startup accelerator. Why not just say how the funding works instead of masking it in that way?
- bxparks 4y agoAgreed that CI/CD should be explained, or at least hyperlinked. However, in their minor defense, they are following the example of GitHub Actions (https://github.com/features/actions https://github.com/features/actions) which also does not explain those terms. But at least GitHub Actions does explain it in the docs (https://docs.github.com/en/actions https://docs.github.com/en/actions). My problem is that I know what CI/CD is, I have used a handful of popular implementations of CI/CD (e.g GitHub Actions, BitBucket Pipelines). But after clicking through most of the pages on the Bob CD website, I don't understand what exactly Bob CD does or how to use it. Is it local (like Jenkins), or is it cloud based (like GitHub Actions)? How does it integrate with my local git repo, or my GitHub or GitLab account? How do I trigger the pipeline? How do I specify the actions of the pipeline? It feels like Bob CD website makes sense only if you already know how to use Bob CD. (edit: fix typo)
- capableweb 4y agoI think the website could be clearer, but the use case is already pretty clear: it's a foundational piece for you to build your own CI/CD infrastructure, it doesn't provide a complete experience out of the box. The first section says the following: > Bob allows you to build your own custom CI / CD infrastructure thanks to it's composable architecture, allowing you to use Bob for various different purposes The "Why" page goes further and explains what Bob is, so what is not described there, it doesn't ship with, like a UI, which would be up to you to decide which UI to use, or to write your own (or skip fully if you don't need it, maybe just use IRC/Matrix/Discord/Slack notifications?) https://bob-cd.github.io/pages/why-bob.html https://bob-cd.github.io/pages/why-bob.html > It feels like Bob CD website makes sense only if you already know how to use Bob CD. Just as a disclosure; I have never heard about Bob CD since I read the linked website from this submission, so no previous experience. And I think I grok it pretty easily, although I've built and maintained more CI/CD integrations/platforms than I care to count at this point, so probably biased a bit.
- bxparks 4y agoThanks, your post seems more clear than the website: Bob is for people who build CI/CD, not for people who use CI/CD.