SShortSingh.
Back to feed

StudyLoop turns markdown notes into verified flashcards using only the source text

0
·4 views

The author built StudyLoop, an open-source MIT-licensed Python terminal tutor, after finding that writing flashcards by hand was too slow and LLM-generated cards could invent facts. The tool treats the user's markdown notes as the sole source of truth, sending each passage to a model that must return a card with a supporting quote. Cards are stored only if the quote is an exact excerpt of the passage and the answer's wording is substantially grounded in it, while each card keeps a line-range citation back to the source. In a live run on a sample HTTP caching notes file, 30 of 32 proposed cards were accepted and 2 rejected for unsupported quotes. Scheduling uses the SM-2 spaced repetition algorithm, and the ask command answers questions by retrieving passages with BM25 ranking, without any network call.

Read the full story at DEV Community

This is an AI-generated summary. ShortSingh links to the original source for the complete article.

Discussion (0)

Log in to join the discussion and vote.

Log in

Related stories

0
ProgrammingDEV Community ·

Stack3 Security Uses TigerGraph to Link Repo, Package, and Wallet Threats

Stack3 Security is a Web3 security platform built at Hacker House Goa for the TigerGraph Open Innovation track. It aims to connect threat signals that are usually investigated separately, such as malicious repositories, suspicious packages, phishing websites, and risky wallet requests. A VS Code extension clones and scans public GitHub repositories in quarantine without executing their code, checking for auto-run configurations, exposed secrets, and risky npm dependencies. A Chrome extension inspects suspicious websites and intercepts wallet requests before they reach MetaMask, while degrading gracefully if unavailable. A central dashboard offers scanning, authentication, and a one-hop threat graph view that shows connected threat intelligence.

0
ProgrammingDEV Community ·

Keep etcd peer and client certificate trust separate before scaling a cluster

etcd is a durable control store used by many Kubernetes and platform deployments, and its peer and client connections access the same state. Because a certificate authenticating a cluster member can act with more authority than an ordinary client certificate, treating them as one broad TLS population weakens the cluster boundary. The guidance recommends separating them through distinct certificate profiles, subject alternative names, issuance policies, and allowed peer names, even when a single CA is used. Operators should verify TLS in both directions on every member, map each client certificate to a specific workload with least-privilege access, and test that peer and client certificates are rejected at the wrong endpoints.

0
ProgrammingDEV Community ·

AutoDAgger lets compact robot policies learn from a teacher with far less data

Researchers introduced AutoDAgger, a method that recovers teacher trajectories during a student policy's own rollouts instead of in a separate data-collection stage. It collects recovery data more than twice as fast as the human-monitored HG-DAgger and removes the need for a person to supervise the process. Using an autonomous reward model to trigger teacher takeovers, a student policy rose from a baseline score of 27.8 to 63.9 after 30 episodes and 77.8 after 90 episodes. The TILDE approach reportedly outperformed all evaluated baselines on three manipulation tasks, though the study tested only those tasks and assumed a reliable reward signal. Its robustness under sparse teacher interventions or noisy rewards remains unresolved.

0
ProgrammingDEV Community ·

kanna-di: A Compile-Time Go DI Tool as a Successor to google/wire

Google's wire is no longer accepting new features, leaving Go developers looking for an alternative for compile-time dependency injection. The author introduces kanna-di, which generates plain Go code without runtime imports, like wire. Unlike wire, it requires no provider registration: developers mark a container struct with a //kanna:container annotation, and the tool infers constructors from each field's type and resolves their parameters recursively. Interface implementations are specified with a di:"with=..." tag, and any non-injectable setup, such as opening a database, is written by hand in the composition root. Running go generate then produces a di_gen.go file containing a newServer function that wires all dependencies together.