HNHacker News
TopNewBestAskShowJobs

zzz61831

23 karma · joined July 21, 2020

submissionscomments
zzz61831··on Vitamin D, part 2: Shannon's story
It took a few weeks to go away completely, but got noticeably better just after a couple of days. I'm pretty confident in that diagnosis, as nothing else have changed.
zzz61831··on Vitamin D, part 2: Shannon's story
> So please don't interpret this story as a reason to avoid any vitamin D supplementation. 1-2000 IU/day has been shown to be safe with long term use

I'll give you a more regular story. Some time ago I thought I needed to take D3 supplements after being exposed to all this PR pushing it and given that I don't eat food rich in it, rarely get sunlight, don't go outside in daylight (densely populated area, supermarkets work 24/7, etc.). So I bought some and took 2000 IU/day for a few days. Suddenly I started feeling numbness on the tip of my toes. After a bit of research I attributed it to D3, immediately stopped taking it, but numbness went away only after a few weeks. It's hard to see how taking it longer could have been safe.

So please don't generalize that 2000 IU is safe just because something showed that it was for some people in certain circumstances given certain country-specific lifestyle, foods, etc. I don't think a decent study on D3 safety even exists.

zzz61831··on Telegram messaging app proves crucial to Belarus protests
Sort of, there is pseudoanonimity layer in Telegram that doesn't show your phone number to others, so if you can be reasonably sure that Telegram isn't going to give you up to the police of your country - your privacy can be preserved. While Signal literally identifies contacts via phone numbers and there is no mass communication features anyway, so it's both less private and less useful for such purposes.
zzz61831··on The Anti-Capitalist Software License
Maybe GPL started as an anti-capitalist license, but in practice it became very much pro-capitalist. It got to the point that GPLv3 and AGPLv3 were split into two licenses to satisfy capitalists.

Among various properly written and practical open source licenses Parity license is probably the most anti-capitalist one.

zzz61831··on Are CRDTs suitable for shared editing?
> Say 100 nodes edit a doc. To drop a tombstone, without a central server we need 99 acks. Even with a server, the server keeps an ever-growing list of ops unless it uses some garbage collection techniques. And as stated by OP those techniques have their own problems.

Here's how it could be done (very roughly):

When a client makes a modification, it creates an op representing that modification and includes a list of server identifiers to send the op to. Then queues the op. Once op is sent and ACKed by at least one of the servers the op is dropped from the queue.

Servers receiving the op synchronize the op with each other, ACKing each other and removing ACKed servers from the list. They also synchronize with the clients, sending the op to each client and asking clients to ACK to all servers. Obviously there are multiple ways to do it and it can be almost as efficient as theoretically possibly, but of course you can't avoid some metadata for each client associated with a particular document even though it doesn't have to be kept in server memory, it could be stored on disk.

> I'm talking about structures with semantic meaning.

Semantic meaning generally doesn't map to any data structure directly, CRDTs are not an exception here either.

zzz61831··on Are CRDTs suitable for shared editing?
> it's because CRDT merges aren't a good fit for the problems a code editor is trying to solve

I think you are not talking about CRDTs here. CRDTs are a pretty good fit for distributed systems that share state, which is what collaborative editing is underneath. It's just that semantically completely automatic conflict resolution is incompatible with human collaborative editing, which is pretty obvious, but for some reason plenty of research goes into trying to do just that.

zzz61831··on Are CRDTs suitable for shared editing?
> Memory issues with tombstones. Marking as deletion has a cost of maintaining them throughout the session.

That's not true, you don't need to keep them throughout the session. You can drop them as soon as you either synchronize with other clients or with the server, which can then synchronize with the clients, that's what conflict-free nature of CRDTs allows you to do. The only fundamental requirement is to keep track of changes when you are offline or out of sync until they are sent to others and even then you are supposed to merge those changes into fewer changes keeping disk and memory use down to a minimum.

> CRDTs were perfect for plain strings and arbitrary key/value pairs. But when it comes to schematic JSON that has semantic value CRDT was an added overhead.

Also not true. They were never perfect for plain strings, even incompatible semantically, but perfect for sets, counters, numbers, where basic commutative math is enough, a few other things and anything that combines those primitives into more complex ones, especially true for schematic structures, tables.

You should really try implementing CRDTs, especially OP-based, they change the way you think about keeping shared state in distributed systems.

> Since the software is primarily a cloud document editor, a central server is necessary even otherwise. So why not use the server for efficient version management and operation sequencing as well? Why chose CRDTs whose bulk of complexity comes from eliminating the need of a central system?

There is zero complexity in CRDTs that comes from eliminating the need of a central system, it's a completely different problem orthogonal to CRDTs. Central systems is where CRDTs are used the most actually.

zzz61831··on Belarus has shut down the internet amid a controversial election
20 years ago we already knew that internet was too architecturally broken to be free as that was around the time early attempts of censorship resistance were born, like Freenet [1].

[1] https://en.wikipedia.org/wiki/Freenet

zzz61831··on Belarus has shut down the internet amid a controversial election
It was hard to jam radio transmissions in the past, but these days it's common. Russia did that to Ukrainian channels in Crimea and Donbass and Belarus has access to the same Russian technology.
zzz61831··on Belarus has shut down the internet amid a controversial election
They were not, but since the polls were banned during elections the government at least had some deniability and fewer people were convinced it was all fake. But this time massive protests and polls and information online convinced everyone there is no real support left. Hence the shutdown of the internet.
zzz61831··on That UPS you bought for your home server may not be as useful as you think
Deep discharge is a factor, but not a big one, heat has very little effect, it only affects voltages at which battery will be considered overcharged or deeply discharged as specs are usually all for room temperature.

I've used UPSes that discharge batteries no lower than 10.5 (no deep discharge) and only once in a couple of years and that charge them to and keep them at 13.6 volts under stable room temperature all year. All batteries lost most of the capacity after 3 years, two almost all of it, one had like 40% left. In five years only that one was still surviving short minutes outages, while initially was able to do a few hours. For comparison, I had one battery just laying around for 6 years in the same room without touching it and it lost only like 30%.

zzz61831··on That UPS you bought for your home server may not be as useful as you think
You can put your equipment on a voltage relay to make failure modes as simple as flipping a circuit breaker. It will turn off once voltage drops too much and will wait for it to stabilize for specified amount of time to turn it on.
zzz61831··on That UPS you bought for your home server may not be as useful as you think
Yep, and once you start using custom DC UPSes the biggest issue will be battery chargers that kill lead-acid batteries. Things are better with LiFePO4 these days, but for lead-acid I haven't found a solution except for literally hacking a pulse charger and battery management on top of arduino.
zzz61831··on That UPS you bought for your home server may not be as useful as you think
That's not really a proper way to deal with it. Proper UPS for a home server or any standalone server or appliance has to hook up either after ATX power supply in parallel and provide all the ATX voltages or hook up directly into a power supply to save a bit on extra converters. This way UPS failure won't affect anything and such UPS will be much more efficient.

It's just that consumer home UPSes are almost scam level products designed to profit from naive people. They are both not improving things for an average user and killing batteries after like a year of operation (lead acid batteries can last for like a decade when not subjected to those UPS chargers).

zzz61831··on Fire your bad customers
It's controversial because there is nothing actually rude about "it's broken! FIX IT!!!" message and when people are truly rude while asking for support it's because they are frustrated with the service they wasted time on and paid money for. Mocking frustrated users is just crazy.

Also if you have them on a tiny service it's likely an indication of poor user experience: poor user interfaces, poor performance, poor documentation, poor reliability, etc.

zzz61831··on Usbkill – anti-forensic tool to halt computer when new USB device is connected
Personal computers have an advantage here: it is acceptable for them not to work when they are not directly used by someone. It means they can be stored in safes when not used and have all the encryption keys securely erased when not used. For example, a screen locker could stop all the processes and erase all the keys from registers and memory assuming both disk and memory encryption. And the locker itself could be triggered by some proximity sensor, RFID, camera, whatever, not just input inactivity timeout.
zzz61831··on Vitamin D deficiency and Covid-19 mortality [pdf]
It's not that safe, not like vitamin C safe. Especially not in doses sold in pills in pharmacies around the world.
zzz61831··on Pavel Durov on the TikTok Sale to U.S. company
If economic protectionism is the concern here, the US could forbid Chinese companies from doing business in the US, but not censor their platforms, apps, websites in the US just because it has no influence over those platforms to do censorship, propaganda and spying on.

But of course they are not really concerned about Chinese protectionism, they do it too just as much, only a bit differently. Control over mass communications platforms popular in the country is what it's all about, just as it is for China, Russia and other openly authoritarian countries, because this is what they deem important to protect power.

zzz61831··on Windows 10: HOSTS file blocking telemetry is now flagged as a risk
What if you don't provide NATed internet to Windows machines at all and only let specific apps to connect to it through manually specified local proxies and maybe some whitelisted routes. Because shutting down internet access doesn't seem to cause any freezes for me.
zzz61831··on Bjarne Stroustrup Weighs in on Distributed Systems, Type Safety and Rust
"The work on what eventually became C++ started with an attempt to analyze the UNIX kernel to determine to what extent it could be distributed over a network of computers connected by a local area network."

That was the only connection it had to something "distributed". In a literal meaning of the word, not distributed systems.

The problems distributed systems actually face were never addressed by C++ in any way. Something like meta facilities for implementing actor runtimes and using an actor model could be the first step, but who knows what Stroustrup was talking about, maybe it's all just marketing buzzwords useless for distributed systems, like in most languages that claim distributed systems support.

zzz61831··on Perl7 is a fork of values
> Perl 7 will eventually improve performance in a significant way

It's never going to happen. They don't even think of performance as an important value to have [1]. And in current implementation (without redesigning the language) AOT and JIT compilers are too impractical and too costly to implement.

[1] Even though benchmarks-marketing is a known way to attract users.

zzz61831··on Cloudflare Workers Announces Broad Language Support
> The cloudflare posts that get upvoted are just actually interesting to the HN target audience, myself included.

And it would have been fine, if it was you who submitted them, not the CTO, who uses HN primarily for promotion, which is something guidelines explicitly forbid [1]. But mods obviously allow corporations to violate the guidelines and it's getting pretty annoying.

[1] Please don't use HN primarily for promotion. It's ok to submit your own stuff occasionally, but the primary use of the site should be for curiosity.

zzz61831··on Writing a file system from scratch in Rust
Kernel's fsyncing behavior is one thing, but just relying on a massive amount of fragile C code running in kernel is a significant liability, especially if your software is a centralized database and crashes, panics will bring down everything.
zzz61831··on The Four Quadrants of Conformism
Yes, this is a notable problem in all of such conversations. Classifying people based on the opinions they express is a prime example of a logical fallacy.

But it's somewhat understandable why this happens. Those in a position of power want everyone to see a convincing enough reason behind their actions so people won't be opposed to them, be more obedient and just don't dissent. So they resort to elaborate logical fallacies, portraying everyone as never changing simple minded static blobs that can be classified into categories in order to judge, ban, punish and police them. Ironic, given what the article classifies people for.