From 75d627626f8a83ec84b508f1ce420ccec76f7f20 Mon Sep 17 00:00:00 2001 From: Tait Hoyem Date: Fri, 4 Feb 2022 01:30:06 -0700 Subject: [PATCH] Add more detail to diagram creation tool --- ideas/index.md | 82 ++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 80 insertions(+), 2 deletions(-) diff --git a/ideas/index.md b/ideas/index.md index bb9a5a8..9a14257 100644 --- a/ideas/index.md +++ b/ideas/index.md @@ -176,8 +176,86 @@ I would have multiple services, and would price them differently depending on my * Most expensive option * Allows further development of the web tools for our own good. * Opens some position for semi-skilled collage/uni students. - -### Cost and Copyright +4. Generic Tool Access (added on 2022-02-03): + * Give access to tools to create a massive amount of diagrams standard to any university experience. + * Allow it to be styled somewhat for convenience of the professor. + * Sell the university this tool as a "generic" diagram creation tool. It should then include everything from a Gantt Chart to a timing diagram to a pie/bar chart to plot graphs, etc. + * This allows me to sell it to them as a tool for the professors, instead of specialty transcribers. + * Upsides for them: + * Have all diagrams for the students accessible *by default*. A teacher need only "export as ..." some accessible format for any student entering the class. + * The above looks great on their reputation. + * Even in the case they decide not to share any of the slides with the public (see next section), it helps the most people. + * Downside for them: + * Proffs need to learn a new tool (this could be a HUGE change for them, so it would need to be a *very* gradual adoption). + * Cost is higher than Microsoft/Apple's "free" editor tools. + * They may already pay for enterprise MS licenses and don't think it's worth it to add more cost to something which may not work. + * Including almost all diagram types imaginable is a *HUGE* task, and this cannot be understated. + * Make each diagram a *SEPARATE* program/page as much as possible. Make them independent enough that a new format can be added to one tool fairly easily, but not at scale; it's not necessary to have that level of abstraction. + * Have a few tools/libraries for high-level manipulation of certain types of formats, for example: + * A library to manipulate the PIAF version of a diagram, options might include: force capitalization, allow more colors than white/black, change font size. All of which would have warnings saying this is not recommended unless you understand the student's accessibility needs very well. + * A library to easily create audiograms. This could be useful for a clock timing diagram, some charts, etc. + * Formats available, for more generic diagrams; obviously specialized diagrams will not have very many output options due to their complexity/inaccessibility across more than one or two formats. + * HTML/SVG with/without JS (without is EPub compatible) + * Audiogram + * PIAF (microcapsule paper) diagram + * Plain text + * R output may be useful (?) + * Spoken (would require some kind of vocalizer commercial license) + * Each type of diagram simply needs a converter created for it called `DIAGRAM-TYPE_TO_FORMAT-TYPE` and it should become automatically available. + * Language possibilities: + * Rust (Desktop) + * Rust (WebAssembly?: Desktop/Mobile web) + * JS (Desktop/Mobile web) + * Swift (Mobile native) + * Java (Mobile native) + * Rust (mobile native? on Android?) + * I would prefer Rust (with some exceptions, like the audiogram tool, which is easier in shell script due to its simplicity) for the following reasons: + * If I change any type information, it stops me from leaving errors in the program. The compiler is very opinionated. + * Easy to implement tests and compare previous outputs to current ones to see if they are still a match after refactor. + * Dependency management is included for free. + * Public place to share code/libraries + * Gives me many options as to where to run the binaries: I think you can compile to ARM (iOS), WebAssembly and native x86-64 for Windows/MacOS/Linux support. I want tools to be universal, so this is the risk I take. + * Offer things for the following disabilities/accessibility needs: + * Dyslexia -- dyslexic fonts + * Blindness -- tactile/digital/audio formats + * ADHD -- plainer formats to have less distraction + * MacOS users -- No MS product involved, no proprietary formats. (Or at least the option to have a non-proprietary format.) Especially useful in design/business. + * Linux users -- No MS product involved, no proprietary formats. (Or at least the option to have a non-proprietary format.) Especially useful in I.T. + * Anything else -- Having alternate formats easily available to you as a professor allows new ways of teaching. Perhaps they decide learning from audio is better for a certain thing they are creating, they can just do it... no extra work required. + +### 10.1 Interface + +What will this look like, let me dream for a second here: + +* When editing diagrams themselves, have a simple and advanced mode: + * Advanced mode is for CS-related courses where the professor is already familiar with code in some way, it offers access to low-level details of converted diagrams, and even allows overrides if the professor thinks they can create something better. + * Simple mode will be like such: + * Options like: "License", "Copyright owner", "Year" and "Watermark" will be filled in from default settings and/or clock. + * Start with a visual representation of the graph: (possibly accessible) SVG. + * Allow editing of this graph from the graph itself. Have add, delete and edit buttons all over just like a WYSIWYG graph editor. + * Allow editing using keystrokes for efficient use by people who want to learn more advanced tricks. + * Allow editing of the graph (by opening a ``````) with plain text. Show a JSON representation which can be edited directly. Have appropriate warnings, etc. + * At the bottom, have a "download/save as ..." all format options window. + * Save to the cloud unless otherwise stated in the institution policy. +* User management: + * Show each diagram made; allow tagging, directory structure + * Edit email/payment info/default license + * Refer a collegue + * Show usage stats over time/this month + * "Create a diagram" button +* Institutional management: + * Show how much each instructor/transcriber uses the tool. + * Overall stats + * Edit payment info/contact email + * 24/7 support line (may be up to an hour for help in the first few years) +* "Create a diagram": + * When pressing this button, go to a page which shows a "directory" of sorts with different kinds of diagrams. + * Evnetually will be big enough for a search function. + * For example: Computer Science, Electrical, Statistical, etc. + * Once clicked there, there may be sub-categories until you get to a diagram you want. + * This will open the diagram creation screen whereby you will see what is described above. + +### 10.2 Cost and Copyright So here's my plan for sticking to "free culture" licensing while still maintaining profit: