HNHacker News
TopNewBestAskShowJobs

vbezhenar

16,221 karma · joined September 23, 2014

https://vbezhenar.com/
submissionscomments
vbezhenar··on French lawmakers approved a tax of €0.055 for every gigabyte of internet traffic
Bonjour! I'm from Kazakhstan. I just uploaded few kibibytes of HTTP requests into elysee.fr. How do I pay for it now? Do they accept VISA? I don't want to evade taxes!
vbezhenar··on Three new discoveries in mathematics, computer science, and physics
Water is not wet. Human lacks water sensor. All the sensors we have a temperature ones so we sense "wet" as a combination of temperature and visual information. Close your eyes, touch water of your skin temperature and you won't sense it. It's not wet.
vbezhenar··on The result of the C++26 DIS ballot
I have the same opinion. C++ was my first programming language I used at work. I feel that I was relatively proficient with it, but it was around 2005 I think. Since then I've mostly used other languages. Right now I feel I can use C with ease, in fact I periodically use it. But C++? I don't even dare.

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.

vbezhenar··on The Curse of Soldered RAM
I'm using laptop with Ultra 7 268V. It already has RAM on chip. I think they call it "processor package". I don't think it's socketed, though.
vbezhenar··on The Curse of Soldered RAM
Of course it is possible. Unless you're dealing with manufacturer who actively works against that, like Raspberry Pi.
vbezhenar··on UUIDv7: Timestamps aren’t time-ordered and other oddities
I prefer to use int16/int32/int64 IDs for primary keys and UUIDv4 for "visible" keys. So database always uses integer fields to refer to other rows and web API uses UUID.
vbezhenar··on UUIDv7: Timestamps aren’t time-ordered and other oddities
So you can't generate more than 1000 UUIDs per second without skewing timestamp portion? That's not a lot. Bulk imports often require a lot more inserts.
vbezhenar··on UUIDv7: Timestamps aren’t time-ordered and other oddities
You probably can't use that for streaming. Moment of UUID generation and moment of transaction commit are different, so it's very possible that even if your code generates UUIDs strictly sequentially; the observable sequence from the database will not be always sequential. I've been bitten by this once when I've used serial IDs and I don't think that UUIDv7 is any different in that regard.
vbezhenar··on UUIDv7: Timestamps aren’t time-ordered and other oddities
When I have enough time, I'm usually using 125-bit ID which I convert to 25 alphanumeric characters (something like [A-Z0-9] excluding [IO01]).

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.

vbezhenar··on A complete bypass of eMudhra’s 1FA OTP login system
I guess they just bruteforce OTP by sending all combinations of four digits to the server and eventually one works.
vbezhenar··on Docker is weird
What's not to like? For example the fact that Go's threads and OS threads are two different things. For example the fact that I can't just use fork in Go. And many other things.

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.

vbezhenar··on Docker is weird
> your computer can't run multiple programs at once (it's just running one at a time real fast)

Of course it can.

vbezhenar··on Docker is weird
C was and is a good choice for that kind of software. I don't understand the prevalence of Go in these tools.
vbezhenar··on Docker is weird
What made Docker unique IMO is not the container technology itself. I used chroot 20 years ago and it worked just fine. Yes, no network namespaces; no process namespaces, but I don't even think these are that important.

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.

vbezhenar··on eMudhra to exit global SSL/TLS certificate business
Private key size is 384 bits or 116 decimal digits. So 115 zeroes.
vbezhenar··on Today's PHP security release, and how we're strengthening security
Why sunset PHP? Maybe we need to sunset Golang?

Last time I checked, PHP was pretty solid programming language. Nothing wrong with heart singing.

vbezhenar··on Code is clay now
Data often is a liability. For example personal information.
vbezhenar··on Claude Duet
Did it write that comment for you? :)
vbezhenar··on Chain of Thought for Humans
There are too many candidates for too few job openings. So people come up with all matters of ridiculous filters because they feel they have to test everyone. In reality they can take almost anyone with relevant experience and they'll get the job done, but that wouldn't look like good hiring process.
vbezhenar··on PHP 8.5.12, 8.4.27, 8.3.36 and 8.2.35 out
There are different approaches and it all comes down to who you trust. I don't think there's universal answer. If you have money, find image provider who's serious about security and hopefully they'll provide patches images quickly. Otherwise using Debian packages is a good default I think.

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.

vbezhenar··on Security advisory: Critical remote code execution vulnerabilities, update now
I'd be worried about websites not shutting down immediately. It's better to wait few hours than being hacked.
vbezhenar··on Linux 7.3
Some people like Apple hardware, but not Apple software. I wouldn't be surprised to find out, that some of them might even work in the Apple. Not everything must be about immediate consumer profit. Developer goodwill also worth something. Remember Steve Ballmer? Developers, developers, developers, developers...
vbezhenar··on Linux 7.3
Linus decided it's OK, so it's there. If Linus wouldn't approve it, DKMS would be an alternative. There are plenty of stuff in kernel, which might look weird to be there.
vbezhenar··on The reverts will continue until morale improves
Maybe for many projects it's time to do a feature freeze. LLM provide a great opportunity to improve testing coverage, run automated code reviews and so on, so basically it's time to improve quality, while developers can adapt to this new LLM world and figure out the proper ways to integrate LLM to the development cycle.

Also adversaries are using abliterated LLMs right now to search for vulnerabilities, so it's important to stay ahead.

vbezhenar··on Linux 7.3
For performance.
vbezhenar··on Linux 7.3
And if Apple did it themselves, like Intel or AMD do, it would be released at the same time as macOS.
vbezhenar··on Were software engineers blue-collar workers all along?
I've found that LLM helps me to write good code. It essentially works like a colleague who can review my code. It spotted many issues which I wouldn't spotted before. It also helps to free me from some mundane work.

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.

vbezhenar··on Postgres isn't slow, your storage is
SSD NAS still a lot faster than HDD NAS. And having network-attached storage allows for a lot of cool things. Like you can bind it to kubernetes, so your database instance can easily migrate between nodes while data is kept intact just remounting between nodes. In fact it makes things a lot easier whenever you need to manage persistence. But you're paying big price for it, yeah. Sometimes simplicity worth it. Sometimes you can't afford to lose performance.
vbezhenar··on Postgres isn't slow, your storage is
It's all good while it works.

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.

vbezhenar··on Reducing undefined behavior in the C language
The "code" is `a + b`. The rest is just decorations.

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.
← PreviousPage 2 of 34Next →