HNHacker News
TopNewBestAskShowJobs

GamePad64

80 karma · joined December 23, 2015

submissionscomments
GamePad64··on Qdrant: Vector similarity search engine with extended filtering support
Milvus had very limited filter support, which has now been removed from its release. And with Qdrant you can do, for example, a geo-filter on top of semantic search
GamePad64··on OpenAutoComplete: Shell-agnostic, cross-platform autocomplete specification
Nope, it is not purely static. It is static-first (declarative), bot running a command and parsing its output or delegating the completion to some shell code is a planned feature.
GamePad64··on OpenAutoComplete: Shell-agnostic, cross-platform autocomplete specification
Also, the accompanying code: https://github.com/openautocomplete/oactool It currently supports generating completion code for fish (experimental), but zsh and bash are similar to it, but a bit complicated, so it will be implemented later.
GamePad64··on OpenAutoComplete: Shell-agnostic, cross-platform autocomplete specification
Thanks for the reply! I've googled hard, but couldn't find anything like that. The problem I see is that Shellac is dynamic. So, it is pretty intrusive. This is how Click autocompletion works in Python. Also, I don't think, that Shellac is mutually exclusive with OpenAutoComplete. Being a Shell-to-autocompletion server protocol, it could use openautocomplete library as a data source.
GamePad64··on OpenAutoComplete: Shell-agnostic, cross-platform autocomplete specification
Well, before even writing anything, I've looked up into PS docs, and noticed Register-ArgumentCompleter cmdlet. It could definitely be used for autocompletion purposes, but we need something like a database of autocomplete definitions for common utilities to get started, and a tool to read such a database. So, I propose to create a format for autocomplete definitions and invite everyone to discuss it.
GamePad64··on OpenAutoComplete: Shell-agnostic, cross-platform autocomplete specification
I'have just posted something like "request for comments" thing, so we could talk and make a proper solution. I've tried to use PowerShell in Windows, and it was pure pain: the tools, that are written in PS work fine, everything else (like git, InnoSetup, CMake, everything else...) just didn't have autocompletion at all. Maybe, some tools, like git do have shell plugins (like posh-git), but the problem in general still persists. Also, I am using Poetry and Werf utilities, that have built-in generator for autocomplete (bash, zsh and fish), but it doesn't work very well and the developers had to write it by themselves.

So, I've tried to make the spec as generic as possible, so it could support current compicated cases, like git (with its infinite number of commands and options), scp (with its remote file listing), some old Windows commands (like "format" for windows95 and so on).

Also, this format could be used with a single-pass recursive generator, because each usage pattern is just a JSON array and all its properties can be defined in-place. So, it would be okay to use it with languages, like C, that have no JSON serializer built-in.

GamePad64··on Librevault: Open source zero-knowledge peer-to-peer file sync
Yes, I am planning versions for Arch and Fedora soon. Android version is in plans, too, but I need to make desktop version stable first.
GamePad64··on Librevault: Open source zero-knowledge peer-to-peer file sync
Actually, there is per-chunk HMAC support in the protocol and present revisions add HMAC for each chunk into Meta: https://github.com/Librevault/librevault-common/blob/master/...

This HMAC is computed over plaintext chunks and used to determine, if we already have this chunk in database (because of random IV we get different hash of ciphertext every time), not for verification.

And what is wrong about verifying integrity and authenticity by hash-then-sign?

GamePad64··on Librevault: Open source zero-knowledge peer-to-peer file sync
Yes. The protocol is pretty stable now, it hasn't been changed for a while and has necessary extension points, so I can add more features in the future. I will publish the protocol specification in two weeks.
GamePad64··on Librevault: Open source zero-knowledge peer-to-peer file sync
I have no server infrastructure. ZK in this context means, that you can create an encrypted share. But, I think, it is not an appropriate term here.
GamePad64··on Librevault: Open source zero-knowledge peer-to-peer file sync
It is headless by design. GUI and synchronization daemon are separate applications, that communicate using the WebSocket protocol. So, you can install your sync daemon to NAS and you are good.

But to let you control the daemon via the net, I am making Web UI, that will enable you to fully control synchronization process from your browser.

GamePad64··on Librevault: Open source zero-knowledge peer-to-peer file sync
During the indexing procedure, the value of SHA3-224(AES256(data)) is computed for each chunk.

Then, the list of these hashes is placed into Meta structure. After that, this Meta is ECDSA-signed using a EC point, decoded from A-type secret.

Any other type of secret contain the public part of EC point and can verify the signature.

GamePad64··on Librevault: Open source zero-knowledge peer-to-peer file sync
I don't use it on GitHub page. It updates more frequently than the site. The next revision of the website will contain a new motto, but I have to make a new motto first.
GamePad64··on Librevault: Open source zero-knowledge peer-to-peer file sync
Maybe, you have a GitHub page?
GamePad64··on Librevault: Open source zero-knowledge peer-to-peer file sync
But it is still a web ui, not a native one. Also, SyncTrayzor itself is not cross-platform, so Linux users have to install syncthing-inotify for watching the directories for changes.
GamePad64··on Librevault: Open source zero-knowledge peer-to-peer file sync
There are certain differences between Librevault and Syncthing now:

* Librevault is simpler for the end user. From my perspective, Syncthing doesn't aim to be user-friendly. More like geek-only solution.

* Librevault supports adding a folder by key, like BTSync. And also, it supports a URL scheme for adding a new folder just by clicking it in the browser: https://librevault.com/blog/lvlt-scheme/

* inotify, fsevents, kqueue and ReadDirectoryChangesW support out of the box. Syncthing requires you to install a separate third-party plugin for this.

* DHT support, so it doesn't need any trackers for peer discovery. DHT is Mainline DHT, so it can connect to BitTorrent clients and ask them for peers. It means, that Librevault can participate in the world's largest distributed peer discovery network and will not suffer the lack of DHT nodes.

Also, it has a proper (!) desktop UI inspired by BitTorrent Sync 1.3.

GamePad64··on Librevault: Open source zero-knowledge peer-to-peer file sync
Thank you for advice. This revision of the website is a stub, it does not contain any useful information, just some general words. It will be heavily reworked soon.

Also, I will add the comparison table with Syncthing, BTSync and some cloud storages, like Dropbox.