16,221 karma · joined September 23, 2014
I guess it's fine if one specializes on C++ programming only. But when one needs to use different languages and C++ is used sporadically, I feel like it might be substantially harder than other languages.
Standard UUID length is 36 characters. So you have identifiers 11 characters less and they're actually a tiny bit more readable and writeable if you decide to type them for some reason.
Go is good for writing web servers. For system software? Not so much. 90% of Unix is written with C. It's not that bad.
Of course it can.
What made Docker unique were there things:
1. Dockerfile concept. Building images layer by layer. Caching layers. Everything in a single file. It made possible to iterate on image quickly. It made possible to implement CI builds efficiently.
2. Docker network registry concept. Putting universal images onto a server and share them with the world.
3. Momentum. A lot of software that was traditionally complicated to deploy, suddenly appeared in docker servers. I remember how fascinated I was, when I could deploy wordpress website with tiny docker-compose. And how contained it was. I could just delete every trace of it from my host. I always felt uneasy installing various things onto my host and docker just solved that uneasiness.
Last time I checked, PHP was pretty solid programming language. Nothing wrong with heart singing.
Honestly I don't even understand why so many docker images prefer to build software from sources, rather than just installing them from debian repositories.
Also adversaries are using abliterated LLMs right now to search for vulnerabilities, so it's important to stay ahead.
In the end, my immediate productivity with LLM is a lot lower than before. But I assume that quality is a bit higher, at least in the long run, because issues fixed early saves a lot of time later.
I guess I don't use LLMs like a lot of other people. In fact I continue to write most code myself and I just use LLM to aid me or to generate something that's very similar to existing entity and just requires careful copy&paste&replace. My only fear is that this approach to work is not very popular and I might be asked one day to switch to wipe code, which I don't enjoy at all.
The day it broke, it's a PITA.
You need that RAID card which is not available anywhere around you.
You need to visit your Data Center, but you suddenly have issues with security and you need to arrange all that stuff.
You need to buy DDR stick but you need to wait a month for delivery.
The guy who knows how to insert a stick took a vacation week ago, and everyone else is too afraid to touch big iron box.
With cloud, you either don't notice that, because they have scale and they have spare parts and they have personnel 24/7. Or worst case you order identical server and deploy your app, hopefully in a few hours restoring from backup.
And for some people it might never broke. But it's all the uncertainty and fear that leads people to cloud solutions. You don't plan for average outcome, you plan for worst outcome.
Here's example from article:
static int f(int a, int b)
{
x = b ? 42 : 43;
return a/b;
}
Compiler can inline `f` but if it removes conditional branch, that's where issue is. I wrote this branch because I expected `b == 0` to be a valid value. Compiler deduced that it can't be a valid value and decided to remove `43`. That's understandable. But let me know, so I'd rewrite my code myself instead. Because I have assumptions and compiler have assumptions and these assumptions do not match. It means that there's a bug.