343 karma · joined May 29, 2013
* Not aimed at all the wonderful, sane and reasonable people of the USA.
It is huge for token usage also, Claude grepping the codebase for context it doesn't have is the main consumer of input tokens from what I can see.
We are mostly autocomplete with a mild capacity to synthesise new ideas. It’s the network effect of communicating that creates the feedback loops which amplify our collective intelligence.
Also if you think intelligent life has to have a regard for truth, not just a regard for self, tune in to any news channel.
Meanwhile there's the opportunity cost of moving. All of the people who put effort into this migration, who could otherwise be building something revenue-generating. I think that's why in many companies cloud costs are a problem, but never enough to make it high up the backlog.
Even the sidebar of recommendations is a dark pattern for a 3 year old. Unlike Netflix etc where you have to exit the video to browse something else.
So I downloaded a bunch of the videos on our desktop and blocked the site. Works for my 3.5 year old, not sure the plan when they outgrow it.
Google search results is full of this stuff, but first time seeing it at the top of HN
[1] https://en.wikipedia.org/wiki/Planning_of_the_January_6_Unit...
- Set time limits on apps. - Block App Store. - Set a Screen Time pin, then forget it.
Downside: if you need to install a new app, you need to do a iTunes backup, factory reset and restore the backup,. Also apps won't continue to update with this approach.
Worth it though. I don't miss wasting 10-20 hours a week on brain rot apps.
I haven't revisited it in a while, and the docs could probably do with some love, but I use it every day.
It's taken a lot of workload off devs to meet security targets. But I worry it makes supply-chain attacks more attractive. If an attacker can compromise a package and it's instantly merged into the codebases of thousands of different companies that's a huge danger.
I often run into conflict with developers who believe in the single return statement. This is flatter but irks a lot of devs:
if (!condition) {
return
}more code
return
To scale a monolith codebase without devolving into spaghetti you need to have a well defined layered structure for modules. The other aspect is being able to hide internal code to prevent it being imported by other modules.
I did a write-up a while ago about how we do this on my current project [1], and published the Maven enforcer rule and ArchUnit test example as an open source project [2].
[1] https://bcoughlan.github.io/posts/modulithic-architecture/ [2] https://github.com/bcoughlan/base-package-enforcer-rule/ https://github.com/bcoughlan/base-package-enforcer-rule/blob...
But I have asked a few questions, and the quality of answers have really declined, mainly because people are rushing to answer and not reading the question. They could address this by delaying voting on answers.
Only downside really is no WhatsApp but you can get a KaiOS phone that supports WhatsApp if it's essential.
Honestly the urge to constantly pull it out just passes after a couple of days. The boredom is intense but pretty soon you won't miss it and will enjoy other activities.
I also had good results with a very very cheap Android phone running Android Go. It was so slow that I just didn't want to use it for browsing. Downside is as a Dad I want to have a good camera within reach for special moments.
Writing larger test cases that test the actual functionality is a game changer. With Testcontainers and good mocking tools you can spin up a real version of your app with external dependencies mocked and faked, and write test cases against the same input layer your user uses. If your test fails you can be pretty sure it’s because you broke something.
This is a layer between unit and integration tests that you don’t read much about. I call them “service tests” (coming from a microservices world).
Investment is still needed though to reduce the effort of implementing tests, like extracting common fixture code so that every test doesn’t need long winded setup code. Also snapshot testing libraries take the pain out of writing assertions.
I am speaking from the API based backend world so YMMV. Once you’ve worked this way it’s hard to go back. Any developer can come in and confidently make changes. You spend way less time investigating regressions and broken environments, so you can release more frequently (which takes a whole other layer of pressure off the team)
Bigger orgs also have style guides for public APIs and you can use various linters/standardization tools to enforce this. Tech writers can work on the API documentation without making changes in your code. There are tools that can tell you if your spec changes would cause breaking changes to API clients, such as adding a required query parameter.
You might not need these things on your project, but for some users it makes sense to write the spec first.
It is definitely verbose to write and Moonwalk would help. Co-pilot helps a huge amount, but I do crave a DSL that's not indentation based.
If your architecture has a high cost to develop, test and run when a cheaper architecture meets your needs, it's a sign that you have overengineered. In my experience there is an order-of-magnitude increase in complexity by adopting microservices that only starts to pay off when your org and user base are huge.
I'm not saying ADHD isn't real, just that environment-induced distractions aren't it.