Reading this, my first thought was 'This must be a joke, surely'. But, sadly, it isn't.
247 karma · joined June 30, 2019
Reading this, my first thought was 'This must be a joke, surely'. But, sadly, it isn't.
I made a very simple feedback/bug report web app which can be integrated into other websites using a one-liner, because I wanted to quickly start getting user feedback for my other projects. Feel free to give it a try.
It was also a fun way to learn ClojureScript, which I now love using for my side projects (although I find I'm slowly moving towards Elixir/Phoenix).
I saw it recommended here a while ago, haven't tried it myself.
My take on the todo list, with a feature the procrastinator in me appreciates. Don't forget to bookmark the URL (with UUID) if you don't want to lose your list, as there are no user accounts.
Whenever I want to try out new tech stacks, I add a project here. So far I've played with (and really enjoyed) Django+intercooler, ClojureScript + REST API and Phoenix LiveView, but have only made the bug reporting/feedback system public (that's the ClojureScript one).
During the lockdown I managed to start a project I'd been thinking about for a while: a simple website where users can submit predictions/promises made by public figures and then follow up on whether they've come true/been kept. Each author then gets their own track record page and, once their quotes have been put to the test, they also get a credibility score.
I've found it frustrating in the past that people (often policitians, but it by no means limited to them) just keep promising or predicting the wildest things and then pretend it never happened once they achieve their goal.
With all the wild claims about COVID-19 going around this year, one month to go to the U.S. election and parlamentary elections due in my home country soon, I think this site is more timely than ever.
Initially quotes had to be submitted manually and the author had to have a Wikipedia page, but I've recently also implemented Twitter and Reddit bots so that users can easily submit quotes from those web sites as well. Given some of the comments I've seen there over the years, it seemed appropiate.
Please try it out and let me know what you think. Feedback is highly appreciated!
Stack: Django + Gunicorn / nginx, PostgreSQL, some Intercooler.js and vanilla JS to make the experience smoother, Bulma CSS.
For my website ( https://ontherecord.live/ ) I'm relying on user feedback/manual moderation, which currently works but doesn't really scale.
I think bit rot is an even bigger problem (either that or people maliciously quoting their own page/a Wikipedia article, which they can then change). I'm considering using the Wayback Machine ( https://web.archive.org/ ) to preserve a copy of the page being quoted, similar to what Wikipedia is doing, because unlike a published scientific article web pages can and do change over time.
I completely agree, I think the next step will be to open up user accounts (but keeping them optional), so that I can get a track record for registered users and invite the most active/correct ones to start moderating. At the moment I can go through the submissions myself and it doesn't (yet) take up that much time.
I find the other part (automating validation) fascinating intellectually, but I'm currently focusing 100% on implementing the functionality of the site itself (Reddit integration is at the top of the list), so this will have to wait. If you're interested in discussing this further at any time, you're more than welcome to also reach out (my e-mail is in my profile).
https://docs.djangoproject.com/en/3.0/
There is some material on using Django with intercooler.js:
https://www.reddit.com/r/django/comments/5nj242/psa_intercoo...
https://engineering.instawork.com/iterating-with-simplicity-...
but in the end I did something slightly different: for actions I just have in my views:
if 'X-Ic-Request' not in request.headers:
# render full page (which includes the fragment template)
else:
# render fragment template (which Intercooler will interpolate into the page)
That way, should I get to that page by any other way (user has disabled JS, I have a link in my page because I want a full page reload), it still works fine. Hope this helps.I had a look at Unpoly, that looks very interesting and could simplify the backend code even more.
On the technical side, the logs show over 6600 unique visitors in the last 12 hours, with over 1100 of them (and 18k requests) during the busiest hour. I know that's not too impressive, but it's still good to see the basic VPS running the server didn't break a sweat (load average peaked at around 0.1).
In the mean time feel free to post content you're interested in, and also contact me (e-mail is in my profile) if you have any feedback. Thanks again!
https://pragmaticstudio.com/phoenix-liveview
Those are the videos I've been watching just to get a better idea of the concepts -- I agree, they are well made. I actually found them via HN about a week ago.
I'm thinking of reading this once I finish the videos: https://pragprog.com/book/phoenix14/programming-phoenix-1-4
I've tried to address this by only accepting quotes with a 'due date', so I can easily bring them back into the spotlight (top of the home page in the Open section) once they can be assessed.
1) Fake quotes do concern me, but for now I've settled on requiring a single reputable source, preferably the primary source (so in your example the DoH press release, if available, would actually be a better source). I've also provided a 'Report quote' button to let users flag fake quotes. I am planning to allow users to validate and/or post additional sources for quotes.
2) I've considered adopting a whitelist approach, but given I can't possibly know all the relevant sources for all the topics which can be covered, I'm just manually accepting quotes for now (the 'does it look credible to me?' test). Things might get even more interesting if/once I start getting quotes/sources on a topic I know nothing about or even in a language I don't understand.
3) Tracking down the primary source is definitely an issue I've already run into when trying to post the first quotes. Ideally, I would like to only accept 'primary sources', even though I know it takes extra work to provide them. Maybe implementing what you suggest in 1) would help with that.
Another feature I'd really like to implement is to automatically archive (on the Internet archive's Wayback machine) the source once I validate it, so that quotes don't lose their sources over time.
Automating that sounds very attractive, but I wouldn't even know where to start. NLP? I've heard algorithms are sometimes used to automatically make trades based on news stories, so I imagine such a system could initially help moderators by providing suggestions/assessments?
I disagree about promises though, I believe if you promise to (not) do something and then break that promise, you should be held accountable for it. Otherwise, people will keep promising more and more outlandish things, because you eliminate the downside.
I've started work on Reddit integration (/u/OnTheRecordBot -- it will be a bot you can call, similar to RemindMe!).
Tags are also already present in the backend, but not yet implemented. I imagine they will be come necessary once the number of quotes/topics increases.
- Wikipedia authors (because there's some kind of threshold for relevance there)
- Twitter (because I can automate the validation with a bot -- see @OnTheRecordBot).
I've been thinking a lot about what makes a prediction/promise testable. So far I've summarized my conclusions in the 'How it works' page, but if anyone has any references on this I'd love to hear about it.
Also, there are no user accounts so all submissions/votes are anonymous, in case anyone wants to submit something they're interested in.
Edit: Also, we try to follow our guidelines on what a promise/prediction should be, you can find them on the 'How it works' page.
The stack is Django + Gunicorn / nginx, PostgreSQL and some Intercooler.js and vanilla JS to make the experience smoother.
I've also been trying to learn Elixir + Phoenix, as I find some of the concepts (e.g. LiveView) very promising.