HN user

memkit

96 karma

MemKit is the spaced-repetition flashcard app I've always wanted. Here's what I mean:

- Minimal friction to use. You can immediately start using the app. You are automatically given an account. You don't have to sign up or type in a username or password. A lot of times I'm reading a book and I only have my phone on me. It's super annoying to log into an app when you get signed out, especially on your phone and especially if you don't use a password manager on your phone. MemKit lets you jot down interesting things you learn without signing in and then merge them into your account later. This is made even easier through email one-time passwords.

- No demands. You don't have to set an email, phone number, or even a username! But you can, if you want to. Email or phone number is a necessity for account recovery, of course. Note that phone numbers are not yet implemented.

- No ads. No selling data. No emails besides those for sign-in and account recovery. No algorithms to maximize use — users should only use the app if and when they want to.

- Maximal simplicity / minimal complexity. There is really only one feature — tags. Tags allow you to group together arbitrary things for ease of review (e.g., #math groups together all math things). When you make a thing, you can associate to it multiple tags. And a single tag can be associated to multiple things. You don't need "courses," and "flashcard sets" preclude the association of a single flashcard to multiple sets, in many competing apps. I have attempted to avoid bloat and complexity as much as possible.

- You grade yourself. Many education apps grade your answers for you. I think self-grading is a crucial part of the learning and memorization process.

- The right technology. This is the most contentious point. I chose Rust and an extremely fast server-side rendering framework, Maud, coupled with a minimal amount of vanilla JS. Nginx is my web server and, I know this is somewhat dubious, redis is my primary DB. I want to see how far I can scale on one $30/month server and a $15/month email service as my only costs, outside of domain registration.

Please let me know if you like it!

Roadmap:

- Phone numbers to reduce friction to sign in

- Better insight into time-to-review, how often a thing was missed, etc.

- API, image, and sound support to enable, say, uploading 1,000 most frequently used Finnish words

- AI generated quizzes. Obviously comes with all current downsides of LLMs but self-grading avoids many of these problems.

https://memkit.app/

Posts9
Comments26
View on HN

Fire retardant itself is much more harmful than heavy metals in this context.

It essentially causes neurodegenerative diseases, especially if you inhale it.

This applies to unintuitive routes of exposure, like taking a hot shower on an Air Force base that used flame retardant in fire drills decades prior and breathing in the water suspended in air.

I did this after breaking my ankle. I was carefully walking the next day, hiking within a week, and skateboarding within 2-3 weeks. Fully healed after a month or two. Everyone thought I was insane but I'm very glad I did it.

I thought, why should we try to intervene with millions of years of evolution? Inflammation has to be there for a reason. Nitpick that statement all you want but in this specific case I'm glad I didn't mitigate the inflammation.

I was unaware of the acronym HELM and told everyone I was doing the exact opposite of RICE on purpose.

Finland has huge toxic algae bloom problems.

The link between BMAA (from toxic algae blooms) and neurodegenerative diseases in predisposed people is basically causal and proven at this point, but it's allegedly suppressed by Big Fishing and Aquaculture.

You may be right. There are many other components contributing to the problem in Finland, too.

Yes, I apologize for being combative. I see your point now.

I think I'm also wrong.

I thought about my original response some more and this is a more coherent version of what I was trying to say:

A problem being in NP is sufficient but not necessary to reduce it to an NP-complete problem.

But that's wrong. It's both sufficient and necessary to be in NP. It intuitively feels like you're tacking on more than you need to by introducing the "necessary" constraint, but it makes sense.

I agree with you, I just think the condition "being in NP" is needlessly confusing. The whole point is that you can always find a reduction from easier problems to harder ones. It just so happens that NP encompasses all the problems easier than SAT.

The reason why your statement is confusing to me is that if you generalize it beyond NP, it breaks down; for an arbitrarily hard complexity class M and an arbitrary M-hard problem, you don't need to be in M to be able to find a reduction to the M-hard problem.

While it is true that their presence in NP-Hard does not require their pressence in NP (and thus are not proved NP Complete)

You're confused here. The two conditions for a problem being NP-complete are (1) it being NP-hard and (2) it being in NP.

You suggest (2) is the issue, but usually it's harder to prove (1) rather than (2). In the context of factorization problems, the factors are simply the certificate that satisfy condition (2).

Your last statement is misleading. A problem being NP-complete isn't exactly the property that allows you to reduce any NP problem to it. Suppose there was a complexity class MP-hard that has no efficient reduction to an NP-complete problem. Then a problem being MP isn't what allows me to write a reduction to the MP-hard problem; I could just as easily write a reduction from a problem in P to the MP-hard problem. Your statement is misleading but incidentally correct because the true condition (NP-hard or easier) happens to be equivalent to your stated condition (NP) for this particular complexity class. It would be clearer to simply state that you can always reduce an easy problem to a harder one.

Everything in finance is isomorphic to some combination of borrow-lend agreements. Betting markets and futures markets are functionally one in the same. The only difference is the oracles and the series of bets required to construct your position.

Amazing comment.

But hamburgers and dildos are good. It's not pleasure itself that has an ugly face; rather, it's seeking pleasure in spite of the cost to others.

You offer spiritualism as a cure. I think our higher end should be not spiritualism but the well-being of those we care about.

It's nice that spiritualism covers all bases: you should care about and help your friends and family; you should practice gratitude; etc. But we should state those things directly, lest fundamentalist screwball ideas like restriction of individual expression creep in under the guise of moral righteousness.

I was similarly confused and finally decided that the commenter could have also been referring to the unsubstantiated fact that Americans drink more black/drip/pour over than Europeans, who mostly drink espresso-derived variants.

I say "unsubstantiated" because a cursory web search didn't turn anything up. Anecdotally, it seems true.

Next, how do they make flame retardant chemicals safe? Exposure to them, even via routes you might not think of, like living near a runway that conducts fire extinguishing drills and then taking a shower in a nearby building and breathing in the runoff, is heavily implicated in numerous extremely debilitating conditions like Parkinson's, dementia, and various cancers.

Kudos to the author. I think this stack will slowly acquire more and more market share as time goes on.

I'm also working on a Rust+WASM+WebGPU game from scratch. The process has been absolutely wonderful.

The stack (or, more generally, game dev from scratch) touches so many important CS concepts: computer architecture and systems programming at the bottom, all the way up to extremely abstract programming language theory and front end web dev at the top. Add in networking and your own distribution platform (even a simple REST website) and you end up doing and learning more than you would in most CS programs.

This is kind of amusing because NP problems, by definition, must have a polynomial-length certification to a given solution that can be run in polynomial time.

The word "certification" can be read as "proof" without loss of meaning.

What you're asking is slightly different: whether the proof-checking problem in logic is NP. I don't know enough math to know for sure, but assuming that any proof can be found in polynomial time by a non-deterministic Turing machine and that such a proof is polynomial in length, then yes, the proof-checking problem is in NP. Alas, I think that all of that is moot because Turing and Church's answer in the negative to the Entscheidungsproblem [1].

It would help your understanding and everyone else's if you separated the search problem for a proof from the verification problem of a proof. Something is NP when you can provide verification that runs in polynomial time. The lesser spoken about second condition is that the search problem must be solved in polynomial time by a non-deterministic Turing machine. Problems which don't meet the second condition are generally only of theoretical value.

1. https://en.m.wikipedia.org/wiki/Entscheidungsproblem

Fair. I don't believe the company that bribed the head of the EPA gives a sh*t about "science" or the health of their customers. This affects my view of how safe their product is.

This is the real world, not a philosophical sandbox. I understand that a person's character should be ontologically castrated from their argument in a philosophical sandbox. But 99% of the time that a company does evil shit like this in the real world, they have very strong reason to do so. It's increasingly likely that Monsanto/Bayer don't want the scientific process to run its natural course. They feel the need to intervene. Why?

To the extent glyphosphate is problematic, it's in being toxi [2], not carcinogenic.

This is a fair assessment based on the published scientific literature. But you have to take into account the fact that the owners of glyphosate have

1) surveilled, harassed, defamed, and threatened individual scientists and

2) paid millions of dollars to ethically dubious scientists to publish articles in favor of the safety of glyphosate

3) paid billions of dollars to victims of glyphosate exposure because they were found liable (or thought they would be) of causing them harm

Given those facts, I think it's reasonable to assume that glyphosate is pretty f*cking bad for you and it's truly mind boggling that people feel the need to defend it.

It feels like everyone you talk to on the topic is a bureaucrat in the Soviet Union engaging in doublespeak. Clearly, the people harassing, threatening, surveilling, defaming, and bribing are the baddies. Clearly, they have something to hide.

Sure... but Roundup definitely causes cancer in humans. It's well established at this point.

"One international scientific organization, the International Agency for Research on Cancer (IARC), classified glyphosate in Group 2A, "probably carcinogenic to humans" in 2015. In 2017, California environmental regulators listed glyphosate as “known to the state to cause cancer.”"

That's not to mention the strong-arming, harassment, and threats towards researchers publishing papers that paint Monsanto and Bayer in a negative light. [1]

1. https://usrtk.org/monsanto/attacks-on-scientists-journalists...

[dead] 2 years ago

Hello, HN!

I've taken a few months off between jobs and decided to properly build something I've wanted for a while now.

MemKit is a spaced-repetition flashcard app done right. (Disclaimer: it's still a work in progress, so it's not "done" in that sense of the word.) Here's what I mean by "done right":

- Minimal friction to use. You can immediately start using the app. You are automatically given an account. You don't have to sign up or type in a username or password.

- No demands. You don't have to set a n email, phone number, or even a username! But you can, if you want to. Email or phone number is a necessity for account recovery, of course. Note that emails and phone numbers are not yet implemented.

- No ads. No selling data. No algorithms to maximize use — users should only use the app if and when they want to.

- Maximal simplicity / minimal complexity. There is really only one feature — tags. Tags allow you to group together arbitrary things for ease of review (e.g., #math groups together all math things). When you make a thing, you can associate to it multiple tags. And a single tag can be associated to multiple things. You don't need "courses" and "flashcard sets" preclude the association of a single flashcard to multiple sets, in many competing apps. I have attempted to avoid bloat and complexity as much as possible.

- You grade yourself. Many education apps grade your answers for you. I think self-grading is a crucial part of the learning and memorization process.

- The right technology. This is the most contentious point. I chose Rust and an extremely fast server-side rendering framework, Maud, coupled with a minimal amount of vanilla JS. Nginx is my web server and, I know this is somewhat dubious, redis is my primary DB. I want to see how far I can scale on 1 $30/month server as my only cost, outside of my domain registration.

Please let me know if you like it!

Roadmap:

- emails and phone numbers (going with mailgun and twilio)

- better insight into time-to-review, how often a thing was missed, etc.

- API, image, and sound support to enable, say, uploading 1,000 most frequently used Spanish words

- AI generated quizzes. Obviously comes with all current downsides of LLMs but self-grading avoids many of these problems.