Open source SuperMemo

From SuperMemopedia
Jump to navigation Jump to search

Original idea (2000)

Open source SuperMemo for Linux

luis wrote: Let's start open source of SuperMemo for Linux. We can use Kylix that makes it easy to convert Delphi projects for Linux.

Result

This project begun under the leadership of Luis, but never saw a fully compiled SuperMemo in Kylix.

New Idea (2006)

Open source, new GUI

OP wrote:

  • If SuperMemo really wants to make GUI part open source, fully compilable source code and several Delphi files relating GUI should be available. I know a bit Delphi. I really hope I can optimise GUI. Perhaps, Supermemo can hold a GUI competition to share wonderfully written GUI
  • Make GUI part of the program open source. The author either doesn't care GUI or is incapable of improving it. By making that part open source, I am 100% sure that open source community will make GUI 1000 times better

Result

We tried a small-scale interface competition. We could not find consensus on which produced variant is best. The propositions differed vastly from the original and were rather liked only by their respective authors

New appeal (2022)

New appeal

An Appeal to Open Source SuperMemo

Result

We had a discord meeting for supermemo anniversary (December 2022), but few developers attended. No viable conclusion.

Cons

  • all open source attempts until now failed, propositions outnumber contributions by 1000 : 1; the sourceforge project did not move into implementation stage in 2-3 years
  • opening portions of SM2002 code did not contribute a single line of code or bug spotted in SM2004 (not even until Apr 2006)
  • opening GUI alone is hard as connecting the interface with functionality is a 1-person-month, new interface propositions (several) have been all voted out (old habit inertia), progress in functionality is too fast to hope open source would keep up, synchronization alone would require a dedicated individual orchestrating the project
  • chicken-and-egg dilemma - as long as there is little progress in open source initiative, there is little motivation to spend time on opening source files
  • for legal reasons, the newest algorithm behind SuperMemo (Algorithm SM-8 through Algorithm SM-18) cannot be open (earlier versions are well documented at supermemo.com)
  • there are already two powerful open source spaced repetition tools available: Anki and The Mnemosyne Project.

Pros

There are users of SuperMemo which could design an fully functional interface that would make beginners happy on Day 1. A newcomer to SuperMemo with solid programming skills could do a better job than an old-timer with old bad habits.

Plan

Viable open source project needs a strong open source community around the tool. SuperMemo community (e.g. see supermemo.wiki) might not be numerous and strong enough to take over development (yet). However, this limitation can be overcome by employing a social concept network. In this case, however, the theoretical framework is rudimentary. The concept is not ready for implementation.

Seeing that open-source attempts and GUI overhauls to date have failed, consider licensing the algorithm for use with Anki. For example: a plugin that allows Anki users to use the SM-18 algorithm without exposing the actual proprietary algorithm.

Before Dr. Wozniak retires/passes, consider donating the entire codebase to an established spaced-repetition company, preferably in the open-source community, like Anki.

See also: Opening source of SuperMemo 18

Exemplary problems

Contributors

If you have your own GUI ideas, send pictures. They can be published here and, perhaps, inspire future versions or add some spark to the open source idea

Another user's comment

Start or release an Open Source version of SuperMemo, so it can be used on an Ubuntu Linux PC (see: SuperMemo_for_Linux).

Similar ideas/concerns

It might make sense to integrate all ideas into one:

Summary of user propositions

  • Some users wish for a version of SuperMemo that is compatible with different operating systems, such as Linux, Mac, Android, iOS, etc.
  • Some users suggest using web technologies, such as HTML, CSS, JavaScript, etc., to create a cross-platform SuperMemo that runs on browsers or web apps.
  • Some users propose reworking the SuperMemo interface and functionality to make it more user-friendly, intuitive, modern and customizable.
  • Some users envision a future SuperMemo that integrates with other tools and services, such as Anki, Roam Research, Obsidian, etc., to allow for seamless knowledge management and learning.
  • Some users discuss the challenges and trade-offs of developing a new SuperMemo, such as preserving the existing features and data, ensuring security and privacy, maintaining performance and stability, etc.
  • Some users express their appreciation and gratitude for the current SuperMemo and its developers, and hope for continued support and improvement.

Open source a tool, rather than the entire application

Regarding the problem of "not enough developers". Can you consider releasing a tool (such as Plan, Tasklists, or Sleep Chart) as open source software to gauge community interest? The level of contributions received could inform future decisions regarding the public release of the source code of the other parts of SuperMemo.

SuperMemo Plan does not possess any particularly unique proprietary information that could potentially lead to the downfall of the company. Therefore, releasing the source code this tool could be a viable option for the company to explore :)

The SuperMemo Plan tool is relatively simplistic compared to other features within the application, but it will serve as an initial test to evaluate the level of input from contributers.

Challenges of open source

We tried open source more than once and there was always a problem of insufficent cumulative energy and/or leadership.

However, there are many more challenges of open source:

  • Bewildering technology choices: There are many different technologies and frameworks available for creating software, and choosing the right ones can be difficult and time-consuming.
  • Scarcity of end-to-end experts: It can be hard to find developers who have the skills and experience to work on all aspects of a software project, from design to deployment.
  • Complex vendor ecosystems: Open source software often depends on other software components or services provided by third-party vendors, which can introduce compatibility, security, or licensing issues.
  • Challenges in building a secure open source solution: Open source software can be vulnerable to malicious attacks or unauthorized access, and ensuring security requires constant vigilance and testing.
  • Ignorance on the capability of the product: Users may not be aware of the full potential or limitations of an open source software product, and may have unrealistic expectations or demands.
  • Technical debt: Open source software can accumulate technical debt over time, which is the cost of maintaining or fixing poorly designed or implemented code.
  • Complexity: Open source software can become very complex and difficult to understand, modify, or debug, especially when there are many contributors or dependencies involved.
  • License issues: Open source software is subject to various licenses that govern how it can be used, modified, or distributed, and complying with these licenses can be challenging or restrictive.
  • Long-term viability of companies developing OSS: Open source software companies may face financial or operational difficulties that affect their ability to sustain or improve their products.
  • Security breaches: Open source software can be exposed to security breaches that compromise the data or functionality of the software or its users.
  • Confusing complexity: Open source software can have confusing or inconsistent documentation, user interfaces, or code structures that make it hard to use or learn.
  • Updates: Open source software can have frequent or unpredictable updates that introduce new features, bugs, or compatibility issues.
  • Community and licensing: Open source software relies on the participation and collaboration of a community of developers and users, which can have varying levels of quality, responsiveness, or professionalism. Licensing issues can also arise when different open source projects have conflicting or incompatible licenses.
  • Training: Open source software may require specialized training or education to use or develop effectively, which may not be widely available or affordable.
  • Lack of customer support: Open source software may not have dedicated customer support or service teams that can provide timely or reliable assistance or solutions to users' problems.
  • Mystery sources: Open source software may not have clear or trustworthy sources of origin, development, or maintenance, which can raise doubts about its quality, reliability, or security.
  • Compatibility: Open source software may not be compatible with other software products or platforms that users need or prefer.