https://annas-archive.org/blog/putting-5,998,794-books-on-ip...
5,416 karma · joined January 21, 2012
meet.hn/city/us-New-York
Socials: - x.com/pradnelluru
---
https://annas-archive.org/blog/putting-5,998,794-books-on-ip...
This might be a place where “proof of x” concepts from crypto land work.
But we don’t need to go all the way to the maximal solution for it to be practical.
Torrents are a widely-understood, robust way to mirror large files. But there's no "meta-coordination" built in to the protocol. It's not possible, using just torrents, to have the swarm cooperatively assign who stores which chunks. The optimization function here is maximal chunk availability, subject to individual storage limits and reliability (ie: how often they're online).
It should be easy to just press a button to join a shadow library, allocated 100GB, and be part of the mission.
The best effort I've seen in this space is some guy running a script that crawls the number of seeders for a list of SciHub torrents. Users manually pick the ones with the lowest seeds. All very cumbersome, and prone to staleness.
Of course, this is all a technical problem, separate from infringing copyright or whatever. In the same way as torrents being a technical solution for sharing files, in a general way.
So the point isn't to have your web component be different from the rest of the page. The point is that you can pass in parameters to make an off-the-shelf component look how you want. However, exactly how much freedom you want to give users is up to the component author. It is possible for there to be too little freedom, true.
See here [1] for a concrete example of someone writing a reusable web component, and figuring out how to let users customize the styling.
[1]: https://nolanlawson.com/2021/01/03/options-for-styling-web-c...
Even storing a graph in memory, you're going to have load a lot more cache lines to traverse/query its structure. For remote graphs, this translates into more network calls.
The smart thing Netflix did here is finding the minimal abstraction that supports their online querying needs. Turns out that they need a few things above a bare KV store:
1) Idempotency keys allow multiple reads/writes without reordering issues. You can use them to do request hedging, which greatly helps w/ tail latency, at the cost of higher resource usage.
2) KV, with the value being a map. A little more structure, which can use the backing store's native structure.
3) Passing client/server parameters back and forth in a handshake. This allows clear request policy propagation, so the whole path behaves the way the client op wants it to.
4) Filtering/selection - to reduce the set of items returned, on the server side. So the network + client don't have to bear the extra burden.
The summary is: "minimal viable structure", "maximal chances to hedge requests / reduce data movement".
Expecting a worker to come to the factory out of fear or good will is not the way. Just write it into the contract/expectations/evaluations.
It's a no-brainer to get the Pro for this reason, if you care about photos.
Questions:
1) Was the problem able to be solved with one machine?
2) Was the problem reliably able to be solved within a time-bound, or was it "spiky"?
3) Was the solution all or nothing? Aka would you get a partial/suboptimal solution after a time-bound?
The key here is not just the rate of failure, but the rate of failure in a system of multiple nodes.
And - "distributed systems problems" don't only arise with several servers connected by a network. Any set of nodes with relations between them - files on disk linked logically, buffers on different IO devices - these are also going to face similar problems.
A mistake people make all the time is that massive companies will put all their resources toward every project. This paper was written by four co-authors. They probably got a good amount of resources, but they still had to share in the pool allocated to their research department.
Even Google only has one Gemini (in a few versions).
For my college graduation, the dean did something small to make the ceremony more meaningful. He asked us all to stand up, look back to our family, and applaud them for supporting us all these years. For me, looking back at my parents and thanking them for all they've done for me was a beautiful moment. And it was a full-circle moment for our family, the culmination of a long journey of immigrating to the US, moving around in search of stability. We had moved to be able to buy a house and to get us good, affordable educations. Both of those dreams were fulfilled at that time.
I don't recall much else from that ceremony. Not the speakers, but a few of the interactions afterward with my fellow students and their families.
I used to switch to shell or Python to do one-off scripts. But there's not a super great reason why I can't do the same in C++, which is what I know best. All the build stuff is easy to do in my company's repo, so that's not a big blocker.
Of course, there's the elephant the room for general purpose tensor machines, which is CUDA - famously closely guarded Nvidia. But with the new wave of "above-CUDA" APIs like TensorFlow, PyTorch, and Keras, there's an opportunity to skip the CUDA layer altogether.
LLMs themselves are becoming a commodity, plus or minus prompt-following/format-following growing pains. In a year or two, we'll have pretty decent general LLMs that can make use of databases and tools/APIs.
It's a race to see who can integrate all these things in a good way. It really is an execution problem, not an idea problem - it's so obvious.
It's hard to read data with widespread anti-abuse checks (CAPTCHAs), lack of open-format data (RSS support being spotty), and restricted APIs (ex: Twitter API). Companies have all the incentives to prevent bot use, and select for human eyeballs.
If we had a Yahoo Pipes sort of golden age, GenAI agents would have a vaster playground to play in, and would be more useful for us.
Consider building an agent for choosing what to do on weekends for a group of friends. The agent would need to keep state for past activities (X, Y, and Z went upstate to Storm King last week) and users' preferences (ex: liking dosas or Calder, dietary restrictions). This part is easy enough - you could just keep a notebook that's passed as context. Older context gets simply deleted or condensed into high level points.
But would it be easy for the agent to:
1) Look up nearby restaurants and events? (Perhaps Resy/OpenTable allow listing restaurants, but it's likely they have tons of anti-abuse tech. Is there even a place where you could see a list of public events - Google pays a third-party for this feed.)
2) Actuate on behalf of the user? (Do Resy and OpenTable allow authority delegation so the agent could book restaurants for users? There's no standard way to do this across venue types - concerts, museums, cooking classes. Is it realistic for agents to click through these sites on their own?)
I recall I used to individually send snaps to like 30 friends each time, back before Snapchat invented Stories. I had to think a tiny bit, and put a tiny bit of effort, for each person. We lost that when people started posting to stories only.
Ultimately it's a cost issue. If they wanted to, they could fact check the top million question queries - but they don't want to spend on that.
It's not as egregious as some of the generative AI results spewed out by the lowest-cost-inference LLMs they hooked up to Google search a few months back.
Sometimes there are communities in these spaces - NUMTOTs or small Discord servers. Other times its just marketing foo foo.
What I came up with:
* Each page gets its own folder.
* An optional METADATA file in each folder has stuff like the type of the page (blog post, photo gallery, code listing).
* The index file can be in Markdown or rST or something. I'd just branch to a different parser based on the file name suffix.
This is simple and lets me evolve the blog over time.
For a personal blog, an ideal mix might be just branching to a different HTML converter based on the