This whole thread is various people saying "[This] is trash, [that] is awesome", with the next person claiming the opposite. I suspect most people with strong negative opinions here know enough to have felt the pain, and not enough to be able to properly reason about the system.
I've worked with Github Actions, Gitlab-CI and CircleCI in the last 10 years, and they've all been such an improvement over Jenkins, or god forbid, CVS with manual deployments, that I'm generally just counting my blessings.
For me the pain only came when not adhering to KISS. All the mentioned VCS are pretty much feature complete and only really differ on meta-topics (cost, license, lock-in) or niche topics (Actions marketplace, matrix builds, SSH on Runners). I've not yet run into an issue that would have actually blocked me, because there's always sh to fall back to in case of a bug or missing feature.
Pin the action's version via a digest and use Renovate for updates.
You can run all your CI locally if you don't embed your logic into the workflows, just use CI for orchestation. Use an env manager(Mise, Nix etc) to install tooling(you'll get consistency across your team & with CI) and call out to a task runner(scripts, Make, Task etc).
I think the idea is GitHub actions calls "build.sh", or "deploy.sh" etc. Those scripts contain all of the logic necessary to build or deploy or whatever. You can run those scripts locally for testing / development, or from CI for prod / auditing.
Yes this is what I meant! If you structure it correctly using task runners and an environment manager you can do everything locally using the same versions etc. E.g.
And I still hate github actions! Aside from anything else, they have one major flaw, which is there is no good development/test loop for writing them.
If you write most of your CICD in some kind of script, then you can run it locally, and do some basic checks around environment etc before deploying.
If you write most of your CICD in github actions or any alternative, you will be doomed to push 100 commits with messages like "maybe be?", "hmmm. . ." before eventually squashing them all down when it turns out several hours later that you mispelt an environment variable.
top tip: make a repo in your org for pushing all these nonsense changes to, test out your workflows with a dummy package being published to the repo, work out all the weird edge cases/underdocumented features of Actions
once you're done, make the actual changes in your real repo. I call the test repo 'pincushion'
We maintain an internal service that hosts two endpoints; /random-cat-picture (random >512KB image + UUID + text timestamp to evade caching) and /api/v1/generic.json which allows developers and platform folks to test out new ideas from commit to deploy behind a load balancer in an end-to-end fashion, it has saved countless headaches over the years.
Thumbs up on Concourse CI: I like seeing all my builds at once on any easy-to-read dashboard. That’s why we switched from GitHub actions: the dashboard.
Something like Gerrit. Instead of carefully crafting a logical series of patches that are all well documented with commit messages, PRs are just garbage filled diff soup of "fix typo" commits. I hate it. It's hard to review and seems to be based on putting the least amount of effort into proposing changes to the code. See https://gist.github.com/thoughtpolice/9c45287550a56b2047c631...
It's not entirely, because Github simply does not support inter-version diffs when you have multiple commits. If you force push onto multiple commits there is no way to show a diff between version 2 and version 3 of those commits. How Github lacks such basic (and imo necessary) functionality in 2025 is amazing to me.
Something like linked and dependent PRs in a chain would go someway to replicating Gerrit but again this basic functionality is not available out of the box for whatever reason.
I use Jenkins every single day, and have been using it my entire career through three different companies self hosting it.
Please tell me how we somehow have been hobbled despite having simple and clear pipelines setup that autobuild any branch we want and allow one click deploys to our preprod environment and automatically manage versioning and scalably handle load from "Literally zero" to "Everyone in the company wants to rebuild everything now" and goes down less than github.
What are we supposedly missing?
More importantly, what are we missing that tangibly improves results for our consumers?
Working with Jenkins CasC, JobDSL and declarative pipelines, I'm not sure where the million times comes from. Sure, there are some annoying parts, and GHA has the social network for reusable actions, but apart from that it's not that different.
Oldschool maven type jobs where you type shell script into a `<textarea>`? Yeah, let's not talk about those, but we don't have a single one left anymore.
That also is/was awful. But it's just another platform like GHA, and the solution to this kind of thing is always the same, should not be surprising, and is boring in the good way. Write automation so that it's not tightly coupled to the platform on the backend. If you can't migrate between platforms then you're eventually going to be unhappy.
If someone is forcing you towards high stakes tight-coupling with no thought whatsoever towards the lock-in, you should get it in writing that "we at ${org} are fully committed to ${vendor} with ${platform}, on ${cloud} using ${tech} come what may, now and forever" and lots of sign off so that everyone knows who to blame when this is inevitably wrong.
YAML is just a data format. Make your own "thing" that takes input in any format you desire, then dump it to YAML. (also, YAML is dynamically typed, and supports explicit typing, but the parser can choose to ignore it)
I grant you pipelines are the best bit about ado, but the fact that you can’t test them is a pain.
And the webhooks and templating are pretty messy and unpleasant quickly.
We’re changing from ADO to GitHub (had to be an MS product for corporate) and the infra people are looking forward to GHA as they prefer their maintenance to ADO pipelines.
It’s very simple. In the US your pharmacy has a contract with the drug supplier that prevents the pharmacist from telling you that you could buy the drug without insurance for $10 while he charges you the $20 copay. As long as this is legal and your pharmacist’s duty isn’t to you the patient, don’t waste time worrying about the details.
I am grateful to every pharmacist / pharmacist assistent who's sotto voce ignored that immoral "rule".
On the flip side, before I transferred my prescriptions to my (excellent) locally-owned small pharmacy, I checked that these are drugs on which the respective Pharmacy Benefits Manager allows them to make a profit rather than a loss. That reminds me that I'll need to repeat that conversation when our insurance changes in January.
I'm a dev. I don't know, I'm using a bunch of different languages, Java being one of them and I find it a very good fit for typical backend requirements.
Java’s cardinal sin was not owning the OS like Microsoft’s C# to force end-users to update the framework. Oracle really didn’t understand what they were sitting on with their Ubuntu competitor Solaris.
Sanctions work, but not in the way that is the common public perception. The expectation isn’t that Russia or whoever falls apart a few weeks after we lock them out of Visa payment rails or whatever. The reality is that the sanctions stifle economic growth and that effect is compounding. Even if sanctions only reduce growth by 1 percentage point, after ~19 years your economy is already 20% smaller than it would be without sanctions and that is measurable. From a national security perspective, it makes Russia a lot less concerning if their industrial output is 20% less. Now imagine trying to start a software business in Iran, the stifling effect is way higher than a measly percentage point. Note that I’m not making a moral judgement, I’m simply sharing my understanding of sanctions.
> From a national security perspective, it makes Russia a lot less concerning if their industrial output is 20% less
Russian military industrial output has significantly increased and more importantly they demonstrated the ability to scale it up very quickly. The economy has grown during the war - the effects of the sanctions may become painful in the long term only if they will stay for decades, which is unlikely.
The US constitution is outdated and vulnerable. Modern constitutions like Germany’s basic law are a lot more resilient. We are watching the US constitution fail right now, it didn’t even take smart men to start dismantling it. I hope I’ll be proven wrong, but what indications do you see right now that the US constitution is performing as intended?
I’m unfamiliar with German basic law, but considering the lawlessness we’re seeing play out in the US right now, I’m curious how/why modern constitutions are less vulnerable?
By this I mean: it’s not as if the things we see playing out are lawful. Is there a structural difference that somehow prevents the same kind of lawlessness?
Put another way, what stops a movement that decides to ignore Germany’s constitution from ignoring it should they somehow gain power?
> For starters, Germany does not give a single person the right to be king with decrees and military leadership.
Separation between civilian leaders and military leaders is a big one, yeah. When the same person controls both the military directly and the executive branch of the civilian government directly you don't have any way to punish him without his subordinates overthrowing him since he controls all the power.
Constitution is just a social contract, it’s not a law of physics. Without people wanting to preserve it, it’s just words on a piece of paper with no real power. With a majority in the Supreme Court, the Constitution can be interpreted however one wants.
1. There's barely any normal republicans left, its all MAGA now that would hang Pence like they wanted to in 2021.
2. Likely true, but they don't really need the military as ICE which now employs all the armed racists they need, like Jan 6 people.
3. He's floating the idea, even talking about not having elections if they're in a war like Ukraine, even though its not in the constitution. Either way they're going all in on rigging elections so Vance will take over.
It’s not all new with Trump (governing by executive order, ignoring duly enacted laws, strong arming media companies, etc.). But while earlier administrations might have done those things on the margins, Trump takes them to 11 (in the spirit of the new Spinal Tap) and makes them the central and primary means of administration.
With the norms destroyed, we potentially lose our nation of laws, and become a plutocracy with different juntas every few years.
What is the logic or science behind that claim? I’ve fast charged my iPhone 16 pro (heavy user) daily if not more often for a year using Apple chargers with the charge limit set to 80%. Remaining battery capacity is still 100%, which is something I’ve never had after a whole year. Fast charge doesn’t seem to hurt.
My guess is that, from the factory, Apple's firmware doesn't actually charge the battery all the way up to its 4.2V "full" threshold. It's probably stopping at 4.12 Volts, or something like that. Then, that threshold will slowly rise over the years in order to keep perceived battery life consistent. Eventually, after several hundred (or maybe a couple thousand) cycles, the threshold stops rising at around 4.2 Volts, and that's when you'll start to see the "battery health" number start to decline.
While I'm not an Apple engineer, I am an embedded systems engineer. I promise you, this kind of trickery is commonplace in consumer electronics. It's also far more common in expensive stuff (phones, laptops) than in cheap stuff (power banks, vapes). Cheap stuff could do this, it's not hard, but the people making those devices don't get paid enough to care.
Point being: A lithium ion battery's capacity is reduced every time you charge it - sometimes by only a couple mAh, but still. This is intrinsic to the chemistry. Your phone is doing things behind the scenes to mitigate that wear, but wear still happens. If you intend to keep your phone beyond its designed 2-3 year lifespan, it behooves you to keep charging current down.
Yes but if after 1 year I’m at 100% battery health then isn’t it reasonable to assume that what I’m doing isn’t significantly harming my battery and I can continue like this for several more years? On previous iPhones where I didn’t use the 80% charge limit battery health dropped mostly linearly over the 3-5 years that I had the phone.
They have AI features in Slack but they just aren’t that useful. The RAG search is the most useful one, but it falls short of solutions like Dust or Glean because it only covers a single silo (Slack). AI search is way more useful when it searches across Notion, Linear, Slack, etc so you’ll buy that instead of the Slack AI addon.
The API changes are scummy, I agree. It’ll generate some ARR short term but ultimately people will be looking elsewhere, new companies will start on alternatives and others switch when the opportunity arises. It’s also not like Slack is a beloved product.
Just how software engineers are in the hacker news thought bubble you have the VC and CEO thought bubble. It roughly goes like this: Someone has some productivity or whatever problem and RTOs. That costs money, they lose people, so they can’t later admit it was a wash or a net negative. So they go on Twitter or LinkedIn and trumpet how great their hardcore 996 RTO is going. Now others see this and fomo kicks in. They start their own RTO which they are then again highly incentivized to report as successful. Rinse and repeat.
It doesn’t always have to be status. Apple is very good at withholding features from low end models to ensure everyone has that one thing they want that makes them go for the pro variant.
reply