A SuperMemo of our own: Difference between revisions

From Pleasurable Learning
Jump to navigation Jump to search
Line 53: Line 53:
*'''Support for any modern browser'''
*'''Support for any modern browser'''
**Imports should be possible from Chrome and Firefox and not just Edge as SuperMemo 19 is planned.
**Imports should be possible from Chrome and Firefox and not just Edge as SuperMemo 19 is planned.
== Features not found in SuperMemo ==
Users left feedback and [https://supermemopedia.com/wiki/Your_Suggestions feature requests] across the years in [[Supermemopedia]]. [https://supermemopedia.com/wiki/Your_Suggestions This list] can be useful even today, discarting outdated suggestions for obsolete technologies.
To Mention a few features I personally think are important:
* Support for formulae language (LaTeX, Mathjax, etc)
* Backlinking, internal crossreference.
* Multiple screen support.
* User interface in multiple languages.
* Proper UTF-8 support. (SM uses high and low surrogates; text exports are lossy and messy).
* Customizable keyboard shortcuts.


=== Rellevant open-source projects ===
=== Rellevant open-source projects ===

Revision as of 11:38, 21 June 2023

Current issues with SuperMemo

  • Aged user interface
  • Aged user experience
  • Closed-source (propietary) and paid
  • Not so much active development. Many bugs remain unfixed.
  • Lack of support for modern standards such as PDF, markdown, LaTeX.
  • Horrible customer support

Current state of the Supermemo community

We need to know the current user base of SuperMemo first, including the wanna-be users who doesn't actually use SuperMemo because of a dealbreaker, but they would use it if that dealbreaker is gone.

We need skilled software developers among the SuperMemo community, specially for the early adopters.


Are there software developers skilled enough to built an app as an open source alternative to SuperMemo?

Current state of Piotr Wozniak's vision

We all know that user experience plays a significant role in the adoption of a product. While we, the existing users, might find satisfaction in mastering the steep learning curve of SuperMemo, wouldn't we want more individuals to discover and enjoy this tool?

Previous attemps for an Open-source SuperMemo

In the 1990s, the concept of open-source SuperMemo was introduced, following the initial achievements of other open-source initiatives. Zoran Maximovic and Piotr Maksimczyk created online versions of SuperMemo, while Luis Gustavo Neves developed SuperMemo for Linux using the SuperMemo 8 codebase.

Tomasz Kuehn initially proposed the idea of an open-source SuperMemo for Linux on October 24, 1997. However, around 2004, the availability of CrossOver software diminished the demand for a native Linux version, consequently affecting the progress of the open-source project. In 2006, Florian Zwicke and Filip Glowacki introduced their own variations, and in 2008, Darek Murakowski revitalized the idea.

Despite these efforts, successful open-source versions of SuperMemo have never emerged, and there has never been a native SuperMemo specifically designed for Linux. Some users sucessfuly used SuperMemo in Linux computers by using Wine or other tools with some main features broken. Keep in mind that runnung SuperMemo on Linux doesn't make it open source. The oposite is true, an open source app doesn't need to run under Linux systems.

An honarable mention is SuperMemo Assistant (SMA) which is entirely open-source. SMA is not an app or a replacement for SuperMemo. It is a companion app for SuperMemo 17-18 versions which extends its functionalities through plugins. It has been developed quick hacky as it runs over compiled code. Its has been mostly developed by one person, Alexis.

Incremental Reading (IR)

Incremental Reading has a steep learning curve. SuperMemo, to date, is the only software that implements Incremental Reading (IR) satifying the minimum definition of incremental reading as described by Piotr Wozniak. Even though, his definition of IR seems to be too specific of SM, that is, SM implementation of IR. See Minimal definition of Incremental Reading for more details.

Most of the learning curve comes from IR method itself. So, even with a modern UI, a more intuitive UX etc the paradigm of IR will be the bottleneck. A user is expected to encounter new difficulties, skills to develop across time as well as unlearning bad habits. Hence, there is a limitation of who the app can flatten the learning curve.

What principles should a new SuperMemo-like app have?

  • Open Source
    • Licence that any fork should keep the licence of being kept open-source.
  • Local first
    • Forget about SaaS (software as a service) only.
    • The user owns his or her own data.
  • Use of open standards
    • The information is accessible outside of the app, it can be exported to third parties, research can be done, etc.
  • Multi-device support
    • Support for both mobile and desktop versions.
    • All major operative systems are supported: Windows, Linux, Mac, etc.
  • Use of plugins (add-ons)
    • Users can customize their own experience, specially when their motivation contradicts some learning principles of Incremental Reading such as gamification.
  • Support for any modern browser
    • Imports should be possible from Chrome and Firefox and not just Edge as SuperMemo 19 is planned.

Features not found in SuperMemo

Users left feedback and feature requests across the years in Supermemopedia. This list can be useful even today, discarting outdated suggestions for obsolete technologies.

To Mention a few features I personally think are important:

  • Support for formulae language (LaTeX, Mathjax, etc)
  • Backlinking, internal crossreference.
  • Multiple screen support.
  • User interface in multiple languages.
  • Proper UTF-8 support. (SM uses high and low surrogates; text exports are lossy and messy).
  • Customizable keyboard shortcuts.

Rellevant open-source projects

Gulpereel, an open-source project for a command-line tool for Incremental Reading written in Python. It is currently in very early stage of development.

Logseq, a privacy-first, open-source knowledge base (KPM).

Anki, the most famous open-source flashcard app with Spaced Repetition Software (SRS).

Speki, a source-code command-line app with some IR features.

Incremental Writing plug-in for Obsidian developed by Jamesb

Incremental Reading Anki-addon by vhong, which is an attempt to introduce some of the IR principles into Anki.

Wrath0fLog1c's Shared semantic representation of the project

  1. Create a shared project document: Set up a shared document and repo (I like Google Docs and GitHub, Notion could also work?) that serves as a central hub for all project-related information. This hub will contain a brief yet comprehensive overview of the project goals, proposed features, technical choices, and an organized timeline or roadmap with milestones. Also contains additions and modifications towards the roadmap.
  2. Assign roles and responsibilities: Clearly outline the roles and responsibilities for each participant, along with their focus areas. This will enable everyone to have a more precise understanding of their contribution to the project and accommodate individual preferences and commitments.
  3. Regular check-ins: Set up periodic online meetings for all participants to discuss progress, address concerns, and share updates. This will promote a strong sense of collaboration and ensure that everyone's voices and ideas are heard. I would like to give attention to the need for asynchrony though, because not all of us would be able to participate in these check-ins. Perhaps set up a Twitter account and host a recorded Spaces? We can also use Otter for transcription.
  4. Continuous revision and adaptation: Allow the project document and roadmap to evolve over time. As new information arises or as participants propose changes, update the document to keep everyone informed of the project's current state.
  5. Visual representation: Create a visual representation or mind-map of the project's architecture, components, and dependencies. This will provide a graphical overview of the project's structure and interrelationships, making it easier for participants to absorb information, see the bigger picture, and identify potential areas for collaboration.
  6. Training and support: Encourage participants to share tutorials, resources, and best practices related to the chosen technologies and approaches. This will help everyone develop the necessary skills and knowledge to work cohesively on the project. Like a Collective Knowledge Bank that we can import into our preferred SRS's?

I think this could allow the project to become more unified and manageable, and everyone can continually update their mental framework with new information. This will pave the way for a more efficient, collaborative, and successful development experience for the new SuperMemo app.

Questions

Why do you think SuperMemo for windows remains clozed source?

What do you think it will happen if SuperMemo is open-sourced?

Who will be the main target user base for the Open source SuperMemo?

References

https://supermemopedia.com/wiki/Open_source_SuperMemo

https://supermemo.guru/wiki/Open_source_SuperMemo

https://supermemo.guru/wiki/33rd_anniversary_of_SuperMemo#Open_source_SuperMemo

https://supermemopedia.com/wiki/An_Appeal_to_Open_Source_SuperMemo

https://supermemopedia.com/wiki/Completely_rewrite_SuperMemo

https://forums.ankiweb.net/t/incremental-reading-in-long-term-future/596