Pentive | Octo | |
---|---|---|
11 | 8 | |
31 | 651 | |
- | - | |
9.7 | 5.9 | |
8 days ago | 6 months ago | |
TypeScript | JavaScript | |
Apache License 2.0 | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Pentive
-
Anki – Powerful, intelligent flash cards
> I wonder what the ecosystem would look like if things were otherwise.
Shameless plug - I'm building https://github.com/AlexErrant/Pentive which is basically GitHub/Reddit for flashcards. Very much pre-product and a WIP, though the offline client proof of concept is done.
-
Lessons from building GitHub code search [video]
I also enjoyed the Treesitter talk from 5 years ago by Max Brunsfeld https://www.youtube.com/watch?v=Jes3bD6P0To
I'm currently building a query language whose grammar is very much inspired by Github's search syntax. I'm using Lezer, which is a GLR like Treesitter, so this talk learned me some parser generators (I've no formal CS education). Here's my grammar, a playground, and an example search query if anyone wants to play with it
https://github.com/AlexErrant/Pentive/blob/main/app/src/quer...
https://littletools.app/lezer
-(a) spider-man -a b -c -"(quote\\"d) str" OR "l o l" OR a b c ((a "c") b) tag:what -deck:"x y"
-
Using spaced repetition systems to see through a piece of mathematics
Not really. There are options for sharing cards on Anki https://www.reddit.com/r/Anki/comments/14j2jfy/deck_sharing_... but their collaboration features are limited.
I myself am building an Anki clone https://github.com/AlexErrant/Pentive with collaboration built in as a first class citizen, though its far from primetime. Currently stewing on how to get the SR algorithm, FSRS, to compile to wasm.
-
Ask HN: Show me your half baked project
https://github.com/AlexErrant/Pentive
A free, open source, local-first, spaced repetition system that works offline, has p2p syncing, plugins, and first class support for collaboration. It's GitHub/Reddit for flashcards.
I basically took Anki and turned it into a webapp >_>
-
Things you forgot because of React
I find Solid's model pretty damn close to "compiling down to nothing". I chose Solid for my project because I wanted to support plugins that used other UI frameworks. I recently got a Svelte plugin working with the SolidJS router. I could probably make it prettier... but it's literally a call to Solid's `createComponent` with the Router and an anchoring div to which the Svelte component is mounted. Ezpz.
https://github.com/AlexErrant/Pentive/blob/main/example-plug...
- Mycelite: SQLite extension to synchronize changes across SQLite instances
-
An open source web-based flashcard studying system
I'm also building an Anki clone (sigh) that I'm calling "Github for flashcards".
>A free, open source, local-first, spaced repetition system that works offline, has p2p syncing, plugins, and first class support for collaboration.
https://github.com/AlexErrant/Pentive
Very much a WIP, completely unusable, but I recently made a video demoing the technical proof of concept.
-
Anki-Fy Your Life
Anki, imo, already has an open algorithm (that the user can change via plugins), universal interfaces, and is "self-hosted". My eyes perked up at REST api, but it doesn't look like there's a centralized server that hosts shared cards, which is where my mind went.
I'm building https://github.com/AlexErrant/Pentive/ which is basically Anki + Reddit - people can optionally upload their cards for others to download, and the most popular cards rise to the top. It's FLOSS, offline-first, supports plugins and p2p syncing, and is very much a WIP. My proof of concept is almost done though, which demos the critical technologies in a secure way.
-
A Gentle Introduction to CRDTs
I'm using cr-sqlite right now in my Anki clone: https://github.com/AlexErrant/Pentive
It's basically an offline-first flashcard webapp. CR-Sqlite allows for incremental syncing.
With Anki (the app from which I'm taking my inspiration), syncing is _not_ incremental - basically it just copies SQLite files around. So for example, the app could be on an iPhone with cards a card `A` reviewed, but the app on an iPad could make changes to the template on which card `A` is based, and that's enough to cause a conflict - you must take changes from only the iPad or only the iPhone. (To be clear - Anki does have some incremental syncing capabilities - I'm picking an intentionally pathological example.) CR-SQLite will mean that everything is incremental, however.
Basically makes 3 way merges a breeze (or n-way merges, really).
-
Ask HN: What Are You Working on This Year?
A FLOSS, offline-first, spaced repetition system that has first class support for collaboration, curation, and plugins. It's Reddit for flashcards.
https://github.com/AlexErrant/Pentive
I've been thinking about this for a stupid amount of time... thinking that someday someone's going to improve on Anki. Finally got tired of it and said that person's me.
Octo
-
Ask HN: Show me your half baked project
1. Octo, a CHIP-8 assembler: https://github.com/JohnEarnest/Octo
P.S. Octojam 10 runs until 12:00 AM PST on November 1st! See the following if you're interested! https://itch.io/jam/octojam-10
-
Is there a pointer equivalent of declaring an array?
In addition to what other posters suggested, it could be a good idea to try assembly languages as a way to manually work with locations in memory. Something like Octo could be fun if you want to try memory manipulation without worrying about real-world complexities like syscalls and memory alignment. If you want something extra challenging, you could always try x86 / amd64 assembly. Some C compilers even support inline assembly if you want to mix C and assembly.
-
How do I make a "game" for Chip8?
Yes, Octo is the most used tool to create CHIP-8 programs today. John has a little introduction text for writing in its dialect here: https://github.com/JohnEarnest/Octo/blob/gh-pages/docs/BeginnersGuide.md
-
Feedback on my very own C++ CHIP8 Interpreter/Emulator
I also want to thank you all for all the advice you gave to me and others about CHIP8. It was very helpful to read some posts here ! I also used John Earnest's OCTO a lot for debugging.
- Octo
-
Is chip 8 emulator flicker normal?
The octo FAQ touches on this "pre-xoring" technique, and theres a worked example of doing this data preparation in macros. I've also written varioustools that can handle the xoring for you.
-
Executable PNGs
In my own system, Octo[0], I encode programs and their metadata in a similar steganographic fashion in GIF files. As others have noted here, both GIF and PNG offer extension mechanisms and ways to embed "comments", but popular image-sharing sites universally re-encode images and discard this data. The advantage of GIF over PNG (for my purposes) is that I store an arbitrary payload in a fixed-looking image by creating additional frames of animation.
In the past, I've also used a different technique- if you simply concatenate a PNG onto a JAR (which is really just a ZIP archive) you end up with a file that acts like a PNG unless you change the extension to JAR, in which case it acts like a Java executable. This works because the PNG header is at the beginning of the file, while the ZIP header is at the end. Nowadays, though, desktop Java is pretty much dead, so it's a less exciting party trick.
[0] https://github.com/JohnEarnest/Octo
What are some alternatives?
fsrs4anki - A modern Anki custom scheduling based on Free Spaced Repetition Scheduler algorithm
vis-chip-8 - Visual Chip-8 Emulator
mycelite - Mycelite is a SQLite extension that allows you to synchronize changes from one instance of SQLite to another.
chip8-test-rom - ROM for testing chip8 emulator
proposal-shadowrealm - ECMAScript Proposal, specs, and reference implementation for Realms
chip8-test-suite - A collection of ROM images with tests that will aid you in developing your own CHIP-8, SUPER-CHIP or XO-CHIP interpreter (or "emulator")
shellrunner - Write safe shell scripts in Python.
wasm4 - Build retro games using WebAssembly for a fantasy console.
vm2-process - Execute unsafe javascript code in a sandbox
pixload - Image Payload Creating/Injecting tools
ankivalenz - Turn HTML files into Anki decks
chip8Archive - A repository of community-submitted Chip8 programs and their metadata