HackerTrans
TopNewTrendsCommentsPastAskShowJobs

slooonz

no profile record

Submissions

Show HN: Uback 0.7 – A universal bridge between backup sources and destinations

github.com
1 points·by slooonz·5 months ago·0 comments

comments

slooonz
·3 months ago·discuss
One of the hardest problem in programming is naming your variables correctly.

I love chaining because it reduce the number of occurrences of that problem.
slooonz
·3 months ago·discuss
"What Elon Musk think or at least pretend to think" is indeed an useful/interesting piece of information, and I don’t see why a commentary on it is necessary or particularly useful ?

I mean, I can do the "critical reading of CEO claim" part myself, thank you very much.

And it’s not just CEOs. Politicians, spokepersons of foreign nations, academics, journalists also do that "X said a thing" thing. It’s perfectly fine. I don’t need or desire the personal take of the journalist on that declaration. They have opinion pieces for that.
slooonz
·5 months ago·discuss
versitygw is the simplest "just expose some S3-compatible API on top of some local folder"
slooonz
·6 months ago·discuss
Why would I pick this over established players : Maddy, Mox, Stalwart ?
slooonz
·7 months ago·discuss
You’re just doing brute force, but with extra steps. It turns out that partial collisions are more common than you think, and it’s not particularly hard to find some.

Here, a 186-bits partial collision, found in less than two minutes on my CPU, by brute force :

sha256(cbfad45814d54d1d56d30de387d957ed3b50e06270ad6e4b897f4a0000000000) = 692207e28eb8dd3eb4f8fab938ea5103faa1060c3bbed204f564e10c65d06b33 sha256(cbfad45814d54d1d56d30de387d957ed3b50e06270ad6e4be8c33e0000000000) = 006347a21f7c9b3eb4fa52b75d0e5a03dbe556b579d6d2867d44c38c06546f6f

(in Python :

>>> hashlib.sha256(bytes.fromhex("cbfad45814d54d1d56d30de387d957ed3b50e06270ad6e4b897f4a0000000000")).hexdigest()

'692207e28eb8dd3eb4f8fab938ea5103faa1060c3bbed204f564e10c65d06b33'

>>> hashlib.sha256(bytes.fromhex("cbfad45814d54d1d56d30de387d957ed3b50e06270ad6e4be8c33e0000000000")).hexdigest()

'006347a21f7c9b3eb4fa52b75d0e5a03dbe556b579d6d2867d44c38c06546f6f'

>>> a = hashlib.sha256(bytes.fromhex("cbfad45814d54d1d56d30de387d957ed3b50e06270ad6e4b897f4a0000000000")).digest()

>>> b = hashlib.sha256(bytes.fromhex("cbfad45814d54d1d56d30de387d957ed3b50e06270ad6e4be8c33e0000000000")).digest()

>>> sum((x^y^0xff).bit_count() for (x, y) in zip(a, b))

186

)

Intuition pump : the expected number of equal bits for two random inputs is 128.
slooonz
·8 months ago·discuss
Yes it should, because hopefully errors are logged and reported and can be acted upon. Missing name doesn’t.
slooonz
·8 months ago·discuss
It was goofy and fun-looking when the first blog did it.

Now that everyone and its dog does those "goofy" illustrations, I find them insufferable.
slooonz
·8 months ago·discuss
I think you should clearly spell out how the key is derived.

From the description, I believe it's random string hard-coded in the executable + user-provided password => AES key ?

Also… "full offline", but "my API is on a digital ocean droplet" ? What ?

(I guess the API to generate a .exe with its own random string ? But again, very unclear of what it is, what’s it’s doing, and how)
slooonz
·3 years ago·discuss
Important (IMO) reminder that StackAid exists and has been made just to solve this kind of problems.

(I’m not affiliated with them)
slooonz
·5 years ago·discuss
How does branching work ? Is it provided by Vitess, or did you build it on top of it ?