HN user

stereosteve

90 karma
Posts0
Comments44
View on HN
No posts found.

This is great. I’ve been thinking to set up an HF radio rig to talk to friends and strangers that are real people. Maybe the LLMs flood the internet with enough trash and we go back to more voice comms

As a side project I'm working on a multitrack audio play along website. If you are learning bass you can mute the bass track.

I used to play along to Jamey Aebersold CDs back in the day, and now on YouTube there are many Play Along videos... but I thought it would be fun to make one where you have more control.

Here's the demo, feel free to upload a track if you have one handy! https://jamz.stereosteve.com/

The source code is here: https://github.com/stereosteve/playalong

It uses this wave surfer multitrack example, which is a pretty nice vanilla JS project: https://wavesurfer.xyz/examples/?multitrack.js

Now that the basics are working... hopefully I'll actually spend some time actually making some practice tracks!

Just a few days ago I started working on a similar project, but one where you can upload via a UI.

After talking to some artists + musician friends, it was clear that a SSG was going to be a non-starter for most of them.

Currently it just supports simple track upload + playback, but plan is to add Artists, Albums + RSS feed.

Code: https://github.com/stereosteve/SHYM Demo: https://tunez.stereosteve.workers.dev/

There is no auth and everything you upload will be deleted in the coming days. But feel free to upload some tracks!

I don’t disagree. RSS has most of these features and was pretty popular 15 years ago.

My point is that key pairs and signed posts is a good primitive if things are to be re homed and retransmitted.

I think nostr is better in this regard:

  - The "account" primitive is just a key pair, but you can layer more auth requirements on top of that.
  - All messages are always signed by your key pair end to end.
  - Server admin can't read your DMs or edit your messages.  The worst they can do is see public posts or delete events.
  - You can move your messages between servers with via piped CLI commands.
e.g.:
    echo '["REQ", "my_mirror_request_id", {"pubkey": "mynpubkey"}]' | websocat -n wss://source | jq -c '[.[0,2]]' -M | websocat wss://destination

Anyway I know there are reservations, but ultimately I think it got many of the "account" things right as compared to other fedeverse projects where the "webmaster" is still a big deal. Ideally the server side of things would be unimportant, the clients can offer compelling experiences, and people can create their own internet cul-de-sacs in a more chill way...

Maybe nostr is not "the thing" but it's better than the mastodon paradigm.

Similar question: how does it compare to using ClickHouse with http interface (which supports a number of output formats including Arrow and ArrowStream).

It does take a few more commands to start a ClickHouse server, create table and load data in... a friendly loader program could probably get pretty close to Roapi interface.

Both Roapi and Datafusion look very cool! Excited to learn about them.

Running a git server is a bit more challenging than running a traditional stateless web app because git is all filesystem centric. If you use NFS, pages that require many git operations can be very slow. Or if the storage servers have a low-level API some page loads might require many round trips and increased latency or long queues can make things bad.

Gitlab went thru a similar journey from NFS to a high level git api called gitaly:

https://about.gitlab.com/blog/2018/09/12/the-road-to-gitaly-...

https://gitlab.com/gitlab-org/gitaly

There are some other projects like this one that seek to address the problem:

https://github.com/takezoe/gitmesh

Git is already good and synchronizing between peers, but it's not low latency, so does require an extra management layer to make sure everything is correct.

From a quick read of the SnowFS source code, it looks like it splits large files into 100Mb blocks and builds up a zip of blocks over time. A version of a file is an ordered list of hashes for the blocks in that version.

I like the simplicity of this! But is it at all problematic if something changes early in the file and all the subsequent blocks boundaries shift causing many new blocks to be created?

rsync uses a sliding window to handle this situation. The implementation would be more complicated, but have you considered using librsync internally?

This is excellent.

I was recently reviewing Lucene concepts and found this video really good: https://www.youtube.com/watch?v=T5RmMNDR5XI

Also this site has a series of Lucene articles that are pretty nice. The one on Term Vectors in particular: http://makble.com/what-is-term-vector-in-lucene

Based on some quick research it seems like Lucene is already using a sorted skip data structure for the posting list, so I wonder why they had to do a custom implementation? Perhaps it has to do with their custom Document ID scheme and how they want to preserve order in the Posting List being different from the default behavior. It also sounds like searchers are searching on indexes as they're being written, and there is some custom coordination around visibility, which might require diverging from Lucene default behavior.

Either way, pretty impressive!