Pentive
zfsbootmenu
Pentive | zfsbootmenu | |
---|---|---|
11 | 161 | |
31 | 763 | |
- | 2.4% | |
9.7 | 9.2 | |
8 days ago | 4 days ago | |
TypeScript | Shell | |
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.
zfsbootmenu
-
Bash Debugging
We use a couple nice home-grown functions in ZFSBootMenu to help debug things. We have a zdebug logging function that's peppered liberally throughout the code base - https://github.com/zbm-dev/zfsbootmenu/blob/master/zfsbootme...
Hitting ctrl-t on our main menu will, when booting with debug logging enabled, show a screen like this: https://imgur.com/Ge75zkP
We also have a flamegraph profiling mechanism that can be enabled with https://github.com/zbm-dev/zfsbootmenu/blob/master/zfsbootme... . That will dump data to a serial port, which when re-assembled, can be used to produce a graph like https://raw.githubusercontent.com/zbm-dev/zfsbootmenu/master...
Bash is suprisingly flexible.
-
Pure Bash Bible
A lot of what's in the Pure Bash Bible is horrifically slow. Many of those things are substantially faster, even when paying the cost of starting a new process, when you use an external and commonly available tool. I wrote a bash performance profiler that outputs data in a format that flamegraph.pl recognizes - it really helped identify where we could improve the performance of ZFSBootMenu.
https://github.com/zbm-dev/zfsbootmenu/releases/tag/v1.12.0
Don't fall in the trap of thinking things have to be written entirely in bash; it's okay to use other tools to help fill in the gaps.
-
Some preinstalled options/defaults suggestion
If instead of "opensuse" you're asking for bootloader as grub can't boot from zfs, then, like i metnioned, i don't use grub2, i uninstalled it, instead i'm using https://github.com/zbm-dev/zfsbootmenu
-
ZFSBootMenu how to increase font resolution?
I thought the following was supposed to fix this issue: https://github.com/zbm-dev/zfsbootmenu/commit/84da18e64ebcc0c483e7b2c7d3972f7d91784e63
-
How do I configure the refind.conf and refind_linux.conf (and or config.yaml (for ZFSBootMenu)) files properly when installing Arch Linux with ZFS Native Encryption?
All release assets, including EFI executables and kernel/initramfs pairs, are signed with signify, which provides a simple method for verifying that the contents of the file are as this project intended. Once you've installed signify (that's left as an exercise, although Void Linux provides the signify package for this purpose), just download the desired assets from the ZFSBootMenu release page, download the file sha256.sig alongside it, and run:
-
How to keep Ubuntu from creating a dozen /var subdirectories?
I think the consensus is that you probably shouldn't be installing a ZFS on root using the native installer anymore. They aren't really maintaining the packages that make that work. Instead the suggestion is to go the zfsbootmenu route of installing.
-
Cloned my root dataset and now it won't boot because NTP daemon can't reach time servers
Glad to hear that everything is working for you! I've opened a PR that adds a warning about this condition - it should likely make it into 2.2.0.
-
Ubuntu 23.04 Desktop's New Installer Set To Ship Without OpenZFS Install Support
You can install following instructions at https://openzfs.github.io/openzfs-docs/Getting%20Started/Debian/Debian%20Bullseye%20Root%20on%20ZFS.html which I've automated with https://github.com/HankB/Linux_ZFS_Root/tree/master/Debian. For scripting, you should also look at https://github.com/zbm-dev/zfsbootmenu. I'd probably go that way if I were starting from scratch.
-
Void Linux and root-on-ZFS question
ZBM provides an amazingly useful script in it's wiki here. This runs when a new kernel is updated by xbps and it snapshots your system before the kernel is installed. This creates a boot environment, and via the magic of ZFS boot environments, allows you to rollback any kernel update to a known, working configuration.
-
When root on ZFS breaks on Arch Linux
* https://docs.oracle.com/cd/E86824_01/html/E54764/beadm-1m.ht...
> A ZFS boot environment is a bootable clone of the datasets needed to boot the operating system. Creating a BE before performing an upgrade provides a low-cost safeguard: if there is a problem with the update, the system can be rebooted back to the point in time before the upgrade.
* https://klarasystems.com/articles/managing-boot-environments...
Or perhaps:
> In essence, ZFSBootMenu is a small, self-contained Linux system that knows how to find other Linux kernels and initramfs images within ZFS filesystems. When a suitable kernel and initramfs are identified (either through an automatic process or direct user selection), ZFSBootMenu launches that kernel using the kexec command.
* https://github.com/zbm-dev/zfsbootmenu
What are some alternatives?
fsrs4anki - A modern Anki custom scheduling based on Free Spaced Repetition Scheduler algorithm
root-on-zfs-systemdboot - Dual-boot Root-on-ZFS config for Debian w/ systemd-boot
mycelite - Mycelite is a SQLite extension that allows you to synchronize changes from one instance of SQLite to another.
archiso-zfs - Easily load ZFS kernel module on any Archiso.
proposal-shadowrealm - ECMAScript Proposal, specs, and reference implementation for Realms
ramroot - Load root file system to ram during boot.
shellrunner - Write safe shell scripts in Python.
dracut - dracut the event driven initramfs infrastructure
vm2-process - Execute unsafe javascript code in a sandbox
zectl - ZFS Boot Environment manager for Linux
ankivalenz - Turn HTML files into Anki decks
nonguix