ryscheng | 2 months ago | on: Prosperous Software: funding dependencies with a revenue-sharing license
ryscheng's comments
ryscheng | 2 years ago | on: Radicle: Open-Source, Peer-to-Peer, GitHub Alternative
ryscheng | 2 years ago | on: Plasmic.app: Visual editing and content platform for building websites and apps
Just for fun during the ETHDenver hackathon, I shipped an LLM-powered NFT generator, with 0 lines of code in 3 hours, and won a cash prize. This tool completely changes the game for me and my team.
ryscheng | 2 years ago | on: Plasmic.app: Visual editing and content platform for building websites and apps
ryscheng | 2 years ago | on: Show HN: Rivet – open-source AI Agent dev env with real-world applications
ryscheng | 3 years ago | on: How to choose a localization approach for your React application
ryscheng | 3 years ago | on: Ignore the haters, and other lessons learned from creating JSON5
ryscheng | 3 years ago | on: High Performance Personalization with Next.js Middleware
I was inspired to write this post when exploring all the many different ways to do implement personalization, and realizing just how powerful Next.js middleware is. So I thought I'd share some of those learnings and a step-by-step guide on how to actually implement it. Totally changed the game for me, makes it so easy to make custom content for different segments while maintaining high performance for my site.
ryscheng | 3 years ago | on: California's Vanished Dream, by the Numbers
For example in San Francisco, they are reviewing drafts now. https://sfhousingelement.org/
ryscheng | 4 years ago | on: Strong/Weak Reasons to Do a PhD in Computer Science
ryscheng | 6 years ago | on: AutoDapp: a proposal to decentralize existing web apps
1. Will this scale? Blockchains vary from the order of ~10^0 tps (PoW) to ~10^4 tps (PoS). https://decentralizedthoughts.github.io/2019-06-23-what-is-t...
Wikipedia sees 50K HTTP requests/second and 80K SQL queries/second. https://www.datacenterknowledge.com/uptime/data-center-provi...
But it is also read-heavy. Let's say if 10% of the workload includes writes (probably too conservative), we barely squeak by... I'm willing to guess the number is way lower than that. They saw 10M page edits for the entire month of Dec 2018. https://stats.wikimedia.org/EN/TablesDatabaseEdits.htm
My guess is, this might be doable :-D
2. Who runs this? and who pays? Great question. The blog completely skips the question about incentives which in my opinion will vary depending on the app. For creating an censorship-resistant Wikipedia, it'll be different than a communications app. Some apps might be better off permissioned (e.g. enterprise settings)
Wikipedia is 43GB of text and 23TB of rich media (images and video). https://en.wikipedia.org/wiki/Wikipedia:Size_of_Wikipedia
If we limit ourselves to just Wikipedia text, it might be reasonable to do this permissionless!
Hoping to write a blog post about that soon after we get more built to show.
ryscheng | 6 years ago | on: AutoDapp: a proposal to decentralize existing web apps
1. Performance: The performance is probably going to be limited. In the sense that most databases have better performance than most blockchain implementations. So you're arbitrarily bottlenecking your writes. There are a ton of really great papers that show you can do WAY better if you are more careful with your distributed design. They usually involve getting into the weeds of redesigning the internals database. Just for fun, I really liked these papers: http://nms.csail.mit.edu/~stavros/pubs/hstore.pdf https://irenezhang.net/papers/tapir-tocs18.pdf https://www.usenix.org/system/files/conference/nsdi17/nsdi17...
So there is a ton of space to improve the performance here, I just wanted to build something quickly.
2. Authentication: Definitely an interesting technical challenge here. Most web apps are written assuming they are one-of-many servers accessing the database, but honest and has root authority. So how do we make sure that a validator has the authority to write to a particular table/row? Right now, this is still an open challenge and would love to engage the community on ideas here. There might be some way to tag/sign all tables/rows with creator, and do some write access control based on that? I'm not sure how many web apps would break though.
3. Write-conflicts: Even without good access control as specified above, most web apps are written assuming they are not the only web server to be accessing the database concurrently. So I would anticipate honest servers would have either good failover logic or be wrapping operations in SQL transactions if they really needed them to be atomic. Either way, I don't see any issues being serialized and appended to the log.
ryscheng | 6 years ago | on: AutoDapp: a proposal to decentralize existing web apps
I'd say you identified the key aspect though, which I agree is not explicitly answered in this blog. "Who runs this" is a critical question and I think it will vary depending on the end application. I'm going to guess there will be settings where a permissioned deployment may be appropriate (think enterprise settings). There will be settings where a permissionless deployment will make more sense (think globally censorship-resistant Wikipedia). It all boils down to who wants to control it and how to convey trust. And for each of those, you probably have different access control policies too.
ryscheng | 6 years ago | on: AutoDapp: a proposal to decentralize existing web apps
Why not do it for decentralization purposes too? Blockchains are just a another class of consensus protocols. IMO one of the defining aspects of blockchains is the stronger threat model. Traditional consensus protocols are designed to be crash-fault tolerant, not byzantine-fault tolerant.
I wouldn't get tripped up by the word "validator". In the academic world we probably would have used the term "node" or "replica". It has a special meaning in the blockchain world because it conveys a sense of trust and work-checking.
"Who pays" is a fantastic question. The blog completely elides the question about incentives which in my opinion will vary depending on the app. For creating an censorship-resistant Wikipedia, it'll be different than a communications app. Hoping to write a blog post about that soon after we get more built to show.
I think it’s time we create a coalition of open source projects that band together and re-license in a way that requires that companies fund their dependencies. In my proposal, I’m trying to maintain as many of the freedoms of free software as possible (to run, study, modify, distribute), while adding simple license terms that force companies that use and make money off of the software to give back.
Let me know if you have any questions or feedback, I’d love to make something work for a wide spectrum of projects!