The performance on mobile is kinda suck tho, took like 30 seconds to wait for PoW on difficulty 4 on Firefox Android. By that time I have to resist the urge to switch to do something else.
One of my idea was establish a copyright renew system in which first year is free, then for second year the right holder will pay $1 to retain the rights, third year pay $2, fourth year pay $4, fifth year pay $8... which follows the power of 2. If they cannot pay for next year then the copyright will fall into public domain (or allows more restrictive form of non-commercial). Most of the worthless stuff will expire at around 10-15 years. Then around 35-40 years for big works that generate tons of revenue if they can pay that amount.
Interesting, I tried to convert Z combinator in SKI to this using the lambda calculus example then print out the tree. Untested:
z = (t (t (t t (t (t (t (t (t t (t (t (t (t (t t)) (t t))) (t (t (t t)) (t t))))) (t (t (t t (t (t (t t (t (t (t t t)) t))) (t t)))) (t (t (t t (t (t (t (t (t t)) (t t)))))) (t t))))) (t t (t (t (t (t (t t))))))))) (t (t (t (t (t t (t (t (t (t (t t (t (t (t t (t (t (t t t)) t))) (t t)))) (t (t (t t t)) t))) (t t (t t))))) (t (t (t t (t (t (t (t (t t (t (t (t t (t (t (t t t)) t))) (t t)))) (t (t (t t t)) t))) (t t (t t))))) (t (t (t t (t (t (t t t)) t))) (t t))))) (t t (t (t (t (t (t t (t (t (t (t (t t)) (t t))) (t (t (t t)) (t t))))) (t (t (t t (t (t (t t (t (t (t t t)) t))) (t t)))) (t (t (t t (t (t (t (t (t t)) (t t)))))) (t t))))) (t t (t (t (t t (t (t (t (t (t t (t (t (t (t (t t (t (t (t t (t (t (t t t)) t))) (t t)))) (t (t (t t t)) t))) (t t (t t))))) (t (t (t t (t (t (t (t (t t (t (t (t t (t (t (t t t)) t))) (t t)))) (t (t (t t t)) t))) (t t (t t))))) (t (t (t t (t (t (t (t (t t)) (t t)))))) (t t)))))))) (t t)))))))
Original tested but unoptimized and also converted using tool:
var K = a => b => a;
var S = a => b => c => a(c)(b(c));
var Z = S(K(S(S(K(S(S(K)(K))(S(K)(K))))(S(K(S(K(S))(K)))(S(K(S(S(K)(K))))(K))))(K(S(S(K))))))(S(S(K(S(S(K(S(K(S))(K)))(S))(K(K))))(S(K(S(S(K(S(K(S))(K)))(S))(K(K))))(S(K(S))(K))))(K(S(S(K(S(S(K)(K))(S(K)(K))))(S(K(S(K(S))(K)))(S(K(S(S(K)(K))))(K))))(K(S(K(S(S(K(S(S(K(S(K(S))(K)))(S))(K(K))))(S(K(S(S(K(S(K(S))(K)))(S))(K(K))))(S(K(S(S(K)(K))))(K))))))(K))))));
Any source code in any programming language can in theory be encoded in unary, requiring only a single symbol (and without any need for extra grouping or whitespace). It's not gonna be efficient, though.
Yeah, I think I'm going to take the author's advice and use Tree Calculus to generate JSON config files. That way I won't need to use a bloated tool with a JSON parser just to output configuration.
Z = \f. (\x. f (\v. x x v)) (\x. f (\v. x x v)) can be much simpler, namely
S (S (K (S S (K (S (S K K) (S K K))))) K) (S (K (S S (K (S (S K K) (S K K))))) K)
That's a good suggestion, I hadn't considered that. I could charge a fixed fee for access to the relay server, and then if it weren't in the relay's cache it'd use your API key so you'd be dynamically billed without losing access to the cache. It'd be a fairly large change for a small audience though (how many people are willing to setup API keys etc?). You'd find that it'd be more expensive if you used it a lot and less expensive if you didn't - right now I'm giving people access to ~1.8x more credit than they're charged for (please don't abuse it! I'll notice with how few users I have, anyway).
Right now my focus is on why not a single user has converted from the demo, and yet I got four from posting it on producthunt without a demo. I think I might not make it clear enough when it's ended - it stops translating and tells you if you open the popup, but maybe people aren't noticing?
I tried it and wanted it to work, but it only translated a few sentences on the page for me. On the highest level of difficulty, the whole page should be highlighted, don't you think?
One more recommendation: collect emails for people like me who want to see how your project develops over time.