Y
HN Search
Hacker News Search
new
|
comments
|
top
|
jobs
ncruces
searching PlanetScale…
1.
▲
2.
▲
3.
▲
4.
▲
5.
▲
6.
▲
41 ms
·
841.
▲
by
ncruces
2y ago
How is sharing the locations of 400 nearby BSSIDs better? It's the fact that Apple spews this huge amount of info that allowed this research to happen, after all. That’s according to two researchers at the University of Maryland, who
842.
▲
by
ncruces
2y ago
Because you don't want them too. Some random startup teasing out ideas and mostly ignoring privacy when they have a dozen users is one thing. Big Tech rolling out a similarly ill thought out feature to 500 million people is something y
843.
▲
by
ncruces
2y ago
Seriously guys, don't write: a = lerp(a, B, 1.0 - exp(-delta * RATE2)) Write: a = lerp(a, B, -expm1(-delta * RATE2)) This is precisely the situation where you really want to use expm1: https://www.johndcook.com
844.
▲
by
ncruces
2y ago
Now write the formula in terms of expm1 for numerical stability, and express the constant in terms of “half life” measured in seconds to make it intuitive instead of magical.
845.
▲
by
ncruces
2y ago
People will finally figure out that they're only productive for about a half their lives, and that it's not just the last quarter that they need help with, it's also the first. The real problem is the transition period wher
846.
▲
by
ncruces
2y ago
For a given connection, (most) packages might go through (e.g.) 10 links. If one link goes down (or is saturated and dropping packets) the connection is supposed to route around it. So, except for the links on either of end going down (one
847.
▲
by
ncruces
2y ago
I mean, caching the KDF result at the library level, without leaking that (e.g.) two databases share a key (that's the first one that came to mind, and why I removed the feature, instead of plugging the hole just to find another one).
848.
▲
by
ncruces
2y ago
It is and it isn't. Can I plead the 5th? Yes, the fact that they're using crappy encryption doesn't excuse me. But (IMO) context matters, and I can't really use something that causes opening a connection to take 1s on a
849.
▲
by
ncruces
2y ago
OK, when you feel it's time, feel free to ping me on my repo, and I'll look into it. A custom Wasm blob definitely works: it's an explicit design goal of my bindings that one can bring their own Wasm (e.g. because one wants t
850.
▲
by
ncruces
2y ago
Do you plan to only use public SQLite APIs, or do you expect to be appended to the amalgamation? I'm definitely interested in something like this, but need to think through how I could distribute this separate from SQLite in my Wasm ba
851.
▲
by
ncruces
2y ago
I don't disagree, and after some consideration and testing, will use the RFC recommendation of 3 iterations, 4 lanes, 64 MiB RAM. However, it's also important to take note of how the KDF is used, and what is used by comparable sol
852.
▲
by
ncruces
2y ago
Yep, I just made it tweakable at build, which was always the intent, although I expect the default to be popular. https://github.com/ncruces/go-sqlite3/blob/67d859a5/vfs/adia... That's unfortun
853.
▲
by
ncruces
3y ago
I used the parameters suggested in the documentation [1], which follow the RFC. The KDF is invoked every time a connection is opened iff you specify your key with the textkey= parameter. It is ill advised to overuse this, especially if yo
854.
▲
by
ncruces
3y ago
Hi! Thanks for this. I find that documentation completely insufficient to implement a virtual WAL. The example (which I had looked into) it's just a "do nothing" wrapper. I learn that there are 25 methods I should implement
855.
▲
by
ncruces
3y ago
FTA: "One project in particular was very suitable for us, SQLite Multiple Ciphers. Since it is licensed under MIT, we have just moved the code into libSQL." See, this is what I don't get about libSQL. Turso claims to want t
856.
▲
by
ncruces
3y ago
ZFS, AFAIK, can offer something in addition which is harder for a VFS to offer, and which AFAICT no other SQLite encryption offers: a kind of HMAC Merkel tree that authenticates an entire database (at a point in time). Alternatives, even th
857.
▲
by
ncruces
3y ago
First of all, thanks for the review. I'll try to respond to all points. Disk encryption, on which this is based, is usually deterministic in nature. So yes, an adversary 1 that can inspect multiple versions of a database (e.g. backups)
858.
▲
by
ncruces
3y ago
I don't have a license, so can't know for sure. But the only versions mentioned in [1] that should compile out of the box into Wasm, are the ones that say they use "the Rijndaal reference implementation." I don't
859.
▲
by
ncruces
3y ago
My extension targets my Go SQLite bindings (the VFS is implemented in Go) [1]. This extension, and the wrapper, target public SQLite APIs, so if anyone wants to replace SQLite with libSQL, that should be easy. You simply need to include a l
860.
▲
by
ncruces
3y ago
Of course, nor would I expect them to make it so. In fact, I mention the SEE in my package's documentation. If you have a license to the paid extension, it should be easy to compile it and use it with my package. It will be slow, howev
861.
▲
by
ncruces
3y ago
Hey! That's amazing that you found this. I haven't benchmarked much, but I think I measured a 15% hit on speedtest1 [1] (with about 10% inside your library). Less if I kept temporary files in memory. Other solutions claim less of
862.
▲
by
ncruces
3y ago
So, I haven't studied their solution much, but ISTM what they did was fork SQLite at (around) the time of the commit that removed SQLITE_HAS_CODEC, and forward port the 4 years of changes since then. That's a bit untenable for me,
863.
▲
Show HN: Roast my SQLite encryption at-rest
(github.com)
99 points
by
ncruces
3y ago
|
50 comments
864.
▲
by
ncruces
3y ago
If you have to concatenate a literal string across multiple lines, try to ensure the break isn't inside an interesting substring someone would search for. This is called semantic line breaks and is also important to get (admittedly m
865.
▲
by
ncruces
3y ago
That's an improvement, but ultimately not enough, actually. The article hits at this, and you should definitely read it: Being able to send xz patches to the Linux kernel would have been a nice point of leverage for Jia Tan's fut
866.
▲
by
ncruces
3y ago
Definitely Harder Than You'd Think and we've known this for a very long time. https://research.swtch.com/nih
867.
▲
by
ncruces
3y ago
But I think the projects with maintainers who bend over backwards for people are more often the ones that end up chosen and kept as dependencies when there are for example hundreds of compression libraries to choose from. You're not
868.
▲
by
ncruces
3y ago
I have a tag for my issue tracker that's called “maybelater” which is my polite version of “wontfix” (which I also have); I use it for stuff that might be reasonable, but I have no intention of (ever?) working on. If you're work
869.
▲
by
ncruces
3y ago
That “simple bump allocator” is basically allocating everything on the thread's stack, as the GP mentioned. It's what you put on the heap that has complex lifetimes. Sometimes you can fix that with an arena. If you can't, you
870.
▲
by
ncruces
3y ago
Both JSON encoding and decoding require UTF-8 validation. If there's a workload that makes sense to optimize because it's used in production, it's UTF-8 validation. So why are we even arguing whether UTF-8 validation is neces
More ›