HNHacker News
TopNewBestAskShowJobs

noam_k

156 karma · joined October 4, 2022

submissionscomments
noam_k··on Hebrew prayer book fills gap in Italian earthquake history
I agree with all your points except the last.

This phrase originates from Ezekiel 16:49, where it specifically refers to supporting the poor. (Which also by strange happenstance is relevant to the portions of the bible read this week.)

So yes, "support" would be the more correct translation. </nitpick>

noam_k··on Hebrew prayer book fills gap in Italian earthquake history
I wasn't able to read most of it either, but was able to find that specific phrase.
noam_k··on Hebrew prayer book fills gap in Italian earthquake history
Nitpick: the translation used "hold the hands of the poor" should probably be "strengthen the hands of the poor". It's not a surprising mistake as both words share the same root, and even are pronounced the same in this context.
noam_k··on How to Search on Encrypted Data (2013)
No, ZK solves a different problem. (Namely: providing a proof (usually of knowledge), without compromising some secret information.)
noam_k··on Main is usually a function. So then when is it not? (2015)
This reminds me of a great riddle: what is the shortest C code that compiles, but segfaults?

With the right flags: `main;` (implicitly a zeroed int).

noam_k··on MIT engineers create an energy-storing supercapacitor from ancient materials
Randall Monroe made some calculations here: https://what-if.xkcd.com/91/
noam_k··on Super sorry to the guy with the username reset on GitHub
https://xkcd.com/1963/

Other relevant XKCD

noam_k··on Computer memory prototype ditches 1s and 0s for denser data storage
> ... representing, say, 0 to 3 requires 2 components (2 bits) or a single component (a qit?).

I think the term you're looking for is trit (ternary/trinary digit).

noam_k··on Cool, but obscure X11 tools (2019)
I would argue that using the -ly suffix here is wrong:

The series 1, 2, 3 is increasing (and) positive.

The series -1, -2, -3 is decreasing negative.

The series -3, -2, -1 is increasing negative.

Edit: formatting

noam_k··on UCLA computer grad constructs “crown jewel of cryptography”
I think it compares more to a One Time Program or Functional Encryption.

Homomorphic Encryption won't prevent you from decrypting other outputs (if you have a decryption key), and with Functional Encryption it's assumed both parties know the function being evaluated, so OTP is really the closest.

noam_k··on Why you should still read the docs
I once worked on project that needed a DSL implemented over pytest to let developers access a db ergonomically. I told the guy working on it that pytest has an advanced hook system, and he should read the docs.

After implementing the feature (using all kinds of CPython/pytest internals and hacks), the guy read the docs and said: "Yeah! We should absolutely rewrite this the right way!"

Never happened...

noam_k··on Making Python faster with Rust
I've used gopy[0] recently to access a go library in Python. It surprisingly Just Worked, but I was disappointed by some performance issues, like converting lists to slices.

[0] https://github.com/go-python/gopy

noam_k··on Random Numbers in Bash
TIL. Thanks!
noam_k··on Random Numbers in Bash
"True random" as opposed to "pseudo random", which is not cryptographically secure.
noam_k··on The fastest rm command and one of the fastest cp commands
Very nice!

This reminds me of a similar trick to speed up deallocations by moving them to a new thread: https://abramov.io/rust-dropping-things-in-another-thread

noam_k··on Abstraction is expensive
Relevant xkcd:

https://xkcd.com/378/

noam_k··on Spiral’s Homomorphic Encryption – Is This the Future of Privacy?
When using Homomorphic Encryption you need to compile your application to a circuit. This means that for branches you need to evaluate both sides and multiply by a bit (like a multiplexor). This way you preserve privacy at the price of heavy computation on the server side.
noam_k··on Spiral’s Homomorphic Encryption – Is This the Future of Privacy?
I think I understand what you're suggesting, but keep in mind that in the Wikipedia example the database is largely static (the server decides when to update), while a messaging app needs to support users updating the DB. There are a lot of leakage scenarios that need to be taken into account (like no push notifications).

Spiral has a video[1] where they dive into some of the details.

[1] https://youtu.be/T7RDEEJ5vQg

noam_k··on Spiral’s Homomorphic Encryption – Is This the Future of Privacy?
Both Spiral and Duality use homomorphic encryption (HE). DPella, however, uses differential privacy (DP), which allows for a different set of applications.

As a rule of thumb, HE allows you to offload a intensive computation (or one that requires a private model) to a server that you don't trust. Only you can decrypt the results. DP, on the other hand, lets the server analyze big data and use the results. Privacy is achieved by each input being "noisy", so no little information is leaked. The statistics still work because over a large data set the noises cancel out.

noam_k··on One-Time Programs
I recommend looking at Vitalik's post, which is linked to.

In a nutshell: the program itself is garbled (hence the term "garbled circuits") in such a way that it can be evaluated on garbled inputs. Say you have a function f(a, b). One way to encode this is as a lookup table. Now, instead of the table mapping from plain values (bits, in our case) to plain values, we set the inputs to be random labels. The output bit is used with the OTM to get the input label for the next function (logical gate).

The security here is that each bit can only be garbled _once_, meaning that Bob can't get the output for a different input.

I'm not sure what kind of fake OTM generator you want to set up. Bob can only get half of the data from the hardware, and that data corresponds to a single input evaluation (if at all).

noam_k··on Code Review Handbook
I think another factor here is if the reviewer is working on the same code base and the project has a complex environment to set up (e.g., a library compiled with custom flags), then `git stash` may not be enough to checkout the branch and run tests. (I am unfortunately guilty of creating some projects like that myself...) Docker can help with these cases, but not all projects are docker-oriented.

I personally like running the code myself when reviewing, it's just not always practical.

noam_k··on How to read variables optimized out in GDB?
The article actually suggests using the record command in that case.
← PreviousPage 2 of 2