Veritula – Meta
#3953·Dennis HackethalOP, 18 days agoThere’s still an issue on ideas#show. When an idea has nothing but a code block, there’s too much of a margin at the bottom, between the block and the border of the highlight.
Fixed as of a44c6c0.
#3951·Dennis HackethalOP, 18 days agoDone as of
cc1ab95.Ruby example:
rubydef criticized? ideapending_criticisms(idea).any?enddef pending_criticisms ideacriticisms(idea).filter { |c| pending_criticisms(c).none? }enddef criticisms ideachildren(idea).filter(&:criticism?)endJS example (h/t ChatGPT):
javascriptfunction criticized(idea) {return pendingCriticisms(idea).length > 0;}function pendingCriticisms(idea) {return criticisms(idea).filter(c => pendingCriticisms(c).length === 0);}function criticisms(idea) {return children(idea).filter(c => c.isCriticism);}
There’s still an issue on ideas#show. When an idea has nothing but a code block, there’s too much of a margin at the bottom, between the block and the border of the highlight.
#3950·Dennis HackethalOP, 18 days agoCode blocks need syntax highlighting.
Veritula used to have this feature but I removed it when diffing changed.
When the code overflows horizontally, a subtle inset shadow on the side shows that you can scroll:
const posts = [{id: 1, title: "Understanding JavaScript Closures in Depth", url: "https://example.com/articles/javascript-closures-deep-dive"},{id: 2, title: "A Complete Guide to Modern Web Development Practices", url: "https://example.com/articles/modern-web-dev-guide"},{id: 3, title: "Exploring the Node.js Event Loop and Async Patterns", url: "https://example.com/articles/nodejs-event-loop"}];function formatPost(post) {return `${post.id}: ${post.title} -> ${post.url}`;}function prettyPrint(posts) {return posts.map(formatPost).join(" | ");}console.log(prettyPrint(posts));
#3950·Dennis HackethalOP, 18 days agoCode blocks need syntax highlighting.
Veritula used to have this feature but I removed it when diffing changed.
Done as of cc1ab95.
Ruby example:
def criticized? ideapending_criticisms(idea).any?enddef pending_criticisms ideacriticisms(idea).filter { |c| pending_criticisms(c).none? }enddef criticisms ideachildren(idea).filter(&:criticism?)end
JS example (h/t ChatGPT):
function criticized(idea) {return pendingCriticisms(idea).length > 0;}function pendingCriticisms(idea) {return criticisms(idea).filter(c => pendingCriticisms(c).length === 0);}function criticisms(idea) {return children(idea).filter(c => c.isCriticism);}
Code blocks need syntax highlighting.
Veritula used to have this feature but I removed it when diffing changed.
#3481·Dennis HackethalOP revised about 2 months agoFeature idea: pay people to criticize your idea.
You start a ‘criticism bounty’ of ten bucks, say, per pending criticism received by some deadline.
The amount should be arbitrarily customizable (while covering transaction costs). The user also indicates a ceiling for the maximum amount they are willing to spend.
There could then be a page for bounties at /bounties. And a page listing a user’s bounties at /:username/bounties.
When starting a bounty, the user indicates terms such as what kinds of criticism they want. This way, they avoid having to pay people pointing out typos, say.
Anyone can start a bounty on any idea. There can only be one bounty per idea at a time.
To ensure a criticism is worthy of the bounty, the initiator gets a grace period of 24 hours at the end to review pending criticisms. They may even award a bounty to problematic criticisms, at their discretion. Inaction automatically awards the bounty to all pending criticisms at the end of the grace period. If doing so would exceed the ceiling, more recent criticisms do not get the bounty.
Been trying a slight modification of bounties in prod for a couple of weeks or so. Working well so far.
@dirk-meulenbelt recently offered to chip in for a bounty I want to run. That got me thinking: multiple people should be able to fund bounties.
Tyler says:
No preview necessarily, or the first sentence upon mouse-over could work. I’m imagining a structural view independent of the main view. (Though still suggest looking at columns for each idea in the main view).
#3904·Dennis HackethalOP, 23 days ago@tyler-mills says:
I keep coming back to a graph-based presentation. Every comment a node, edges red if ending in criticisms. I crave a way to see structurally how many red criticism threads and grey comment threads are stemming from a given idea. The red ones could be bold and bright if they lead to an uncriticized idea, else dim and thin. Then we can see at a glance which ideas are sources of more criticisms, and/or hold greater opportunities for further criticism — can see which ideas are “deeper” niches, one might say (..!). Have greater evolvability…
Basically not doable for the user with the current bubble+hashtag method. But again it could just be an optional view. I think I mentioned I find that Kialo does a cool job with their sun dial diagrams (which are optional).
How would you preview text in nodes?
@tyler-mills says:
… I’m finding the threads a bit cumbersome to keep track of. Would love an option to have each top level idea in a column, and horizontal scrolling would be fine with me if there are many of them.
@tyler-mills says:
I keep coming back to a graph-based presentation. Every comment a node, edges red if ending in criticisms. I crave a way to see structurally how many red criticism threads and grey comment threads are stemming from a given idea. The red ones could be bold and bright if they lead to an uncriticized idea, else dim and thin. Then we can see at a glance which ideas are sources of more criticisms, and/or hold greater opportunities for further criticism — can see which ideas are “deeper” niches, one might say (..!). Have greater evolvability…
Basically not doable for the user with the current bubble+hashtag method. But again it could just be an optional view. I think I mentioned I find that Kialo does a cool job with their sun dial diagrams (which are optional).
#3504·Dennis HackethalOP, about 2 months agoLet’s say somebody starts a bounty with permissive terms, asking for virtually any kind of criticism. They set a high ceiling, hoping for many submissions. $200, say.
If they only end up getting one or two small criticisms, for typos, say, they won’t like having to pay 100 bucks a pop.
In other words, the few criticisms you end up getting may not be worth the ceiling.
In a future iteration, the user could additionally set a per-criticism ceiling. Which the site would recommend setting when using permissive terms.
This way, the user could set a total budget of $200, say, while capping each criticism at $30, for example. The first 6 eligible criticisms would each get $30, and the next one would get $20. The remaining criticisms would get nothing.
This approach effectively merges #3474 and #3472, giving users maximum flexibility to choose the best outcome depending on what kinds of criticism they anticipate getting based on their terms.
#3474·Dennis HackethalOP revised about 2 months agoRather than set a fixed amount for each pending criticism (#3421), the ceiling could be divided among all pending criticisms equally.
Let’s say somebody starts a bounty with permissive terms, asking for virtually any kind of criticism. They set a high ceiling, hoping for many submissions. $200, say.
If they only end up getting one or two small criticisms, for typos, say, they won’t like having to pay 100 bucks a pop.
In other words, the few criticisms you end up getting may not be worth the ceiling.
#3472·Dennis HackethalOP revised about 2 months agoThe initiator of the bounty could choose a ceiling for the total they are willing to spend. They could additionally specify the amount per pending criticism.
For example, a user would indicate that they are willing to spend a total of $100 at $10 per criticism.
This approach is more complex for the bounty initiator than just indicating a total amount they are willing to spend (#3474). It’s best not to require users to do math.
#3430·Dennis HackethalOP, about 2 months agoBut that would mean that the first criticism receives a payout at the same time the last criticism receives a payout. That creates an incentive to ignore new bounties in favor of older ones.
Given the need for a deadline, all critics get paid at the same time anyway.