From 004e5218ce2bcd70358940964a43ebac231b84d4 Mon Sep 17 00:00:00 2001 From: alex Date: Fri, 23 Aug 2024 21:06:18 +0200 Subject: [PATCH] Reprioritize ideas --- IDEAS.org | 257 +++++++++++++++++++++++++++--------------------------- 1 file changed, 129 insertions(+), 128 deletions(-) diff --git a/IDEAS.org b/IDEAS.org index 368716f..6018c16 100644 --- a/IDEAS.org +++ b/IDEAS.org @@ -1,7 +1,19 @@ -* Manual for safe digital life +* Make digital life safer - In Spanish, https://www.incibe.es/ciudadania/formacion/guias is not terrible, but not great either. + +** Key escrow for everyone + +- Easy-to-use key escrow/secret sharing +- Provide emergency recovery of passwords, keys, 2FA, etc. +* Better access to news +** News aggregator + +- Basically news.google.com (grouping of the same news across different publications) +- But with "regeneration" of headlines (e.g. replace headlines with "extremely descriptive" headlines) +- And smart filters for topics (e.g. I'm interested in TV series, but not realities) + * Easier self-hosted communities ** NixOS Pubnix ** Nice mailing lists @@ -13,8 +25,31 @@ - max n messages over m days feature. n=0, don't send me emails. n=1, send me a digest every m days. n>=2, stop at n-1, then wait until the m period is over to send me a digest. ** Federated real-time communications using open protocols https://github.com/alexpdp7/frtcuop +** Easier own-your-Fedipub identity +*** ActivityPub reverse proxy + +Run the reverse proxy on your domain so you can "duplicate" your identity on your own domain +*** ActivityPub SaaS kit + +(Maybe Yunohost) + +** Scalable personal cloud + +This is basically a hybrid of https://linuxcontainers.org/incus/ and https://proxmox.com/en/proxmox-virtual-environment/overview -* HTML/JS only browser engine +1..n node VM/container hosting platform + +- ZFS storage (use https://github.com/marcan/takeover.sh for easy set up of a ZFS mirror root system) +- Automation ready (Ansible, Salt, Foreman, etc.) +- Tools to create VMs from cloud images automatedly. See [[https://gitlab.com/libosinfo/osinfo-db/]], [[https://github.com/alexpdp7/cloud-run]], [[https://github.com/virt-lightning/virt-lightning]] +- Monitoring friendly +- Apt for single public IP + - Integrated DNS/DHCP + - VPN interfaces + - Reverse proxies + +* Simpler web +** HTML/JS only browser engine This is likely: https://github.com/txtdot/txtdot Also: @@ -28,38 +63,10 @@ chromium --headless --dump-dom mastodon.social/@foo/12345... | w3m -T text/html - Extensible and scriptable, to generate "article mode" scripts, scrapers, and "API proxies" (or redirect to farside.link, etc.) - Proxy -* Touch controller/meeting controller/desktop shortcuts + calendar - -https://mutedeck.com/ is basically this. - -- API server to control Google Meet (mute, etc.) -- Use a USB gamepad to mute in videoconferences, etc -- Small webapp for touch interface in phone -- Displays and alerts on upcoming events -- See https://github.com/alexpdp7/meet-controller - -* Parallel execution framework - -See https://github.com/alexpdp7/scripts-py-libs - -- A tool to run stuff such as CI builds which need sophisticated parallelization -- Create differently sized resource pools (for CPU-bound tasks, "API"-bound, etc.) -- Local execution of workflows on a workstation, remote execution on a CI server -- Handle task dependencies and artifact passing from parent to child tasks -- Capture stdout/stderr of tasks, allow viewing in realtime -- Timestamp stdout/stderr for crude profiling -- Implement a CI system on top? - -Some parts could be implemented with OpenTelemetry. -For example, piping command output as OpenTelemetry logs. - -** Process nanny - -See [[https://github.com/open-telemetry/opentelemetry-specification/blob/main/experimental/trace/zpages.md]], [[https://gitlab.com/etke.cc/tools/ttm/][ttm]] for Matrix. +* Simple web proxy -- A program to manage long running processes -- Acts as a bot in IRC, email, Slack, etc. posting when the job is done, providing updates, etc. -- Starts an xterm.js to watch the output +- Proxy + web frontend that does ~chromium --headless --dump-dom $URL --virtual-time-budget=10000 | w3m -T text/html -dump~ +- Perhaps pluggable DOM manipulation * Better "smart TV" experience @@ -72,32 +79,6 @@ Vivaldi's "spatial navigation" supposedly does this, but chokes on D+. ** Run Android on powerful x86 inside Kodi https://github.com/supechicken/waydroid-androidtv-build -* Simple web proxy - -- Proxy + web frontend that does ~chromium --headless --dump-dom $URL --virtual-time-budget=10000 | w3m -T text/html -dump~ -- Perhaps pluggable DOM manipulation - -* "Cloudy" Gemini client - -- Multidevice bookmarks, certificates, etc. -- Perhaps "personal" web frontend - -* Terminal mail client -- Easy set up of common mail accounts (perhaps using mbsync, notmuch, mu, etc.) -- Sane defaults -- Markdown email (write email as Markdown, send as plain text + HTML) -- Probably https://jmap.io/ can make implementing this easier - -WIP: https://github.com/alexpdp7/epistle - -Perhaps use mblaze - -* Databases in text markup documents - -- Embed queries of tables - -See https://github.com/alexpdp7/pandocsql https://github.com/alexpdp7/pandoc_datalog - * Userland WASM Linux distro - Bootstrap a Linux distro to run on WASM @@ -107,40 +88,11 @@ See https://github.com/alexpdp7/pandocsql https://github.com/alexpdp7/pandoc_dat - Could replace Docker/containers for developers - Similar to https://github.com/WAVM/Wavix -* Binary "upstream" package manager - -https://github.com/alexpdp7/ubpkg/ (also discusses some alternatives) - -- Package manager that downloads published binaries on the Internet -- Manifests describe how to fetch binaries (e.g. from GitHub releases) -- Manifests are just files that can be referenced by URLs, or be contained in repositories of manifests - -* Extensible lightweight markup language - -- A language similar to AsciiDoc... -- But with a well-defined AST -- Complex nested lists -- Styling of code blocks (highlighting, user input, replaceable...) -- See https://github.com/jgm/djot / https://github.com/opendevise/asciidoc-parsing-lab/ -- Helper for "prose linters". - -* WOL tool - -- Can be used from browsers/apps -- "Network-transparent" - -Probably Home Assistant can do this. - -* Streaming DB +* Databases in text markup documents -That's probably https://github.com/MaterializeInc/materialize , but it's not OSS. +- Embed queries of tables -- Simple relational database -- Can act as replication target of other databases -- Supports a limited SQL subset that can be easily reasoned about functional dependencies -- Can stream efficiently the results of an SQL query (e.g. keep a query running and receive new/modified rows) -- Supports efficient replication of a subset of a database (initial checkpoint + streaming or batched updates) -- Functional dependencies could be used to create materialized views *and* indexes +See https://github.com/alexpdp7/pandocsql https://github.com/alexpdp7/pandoc_datalog * CRUD framework @@ -157,11 +109,6 @@ A completely declarative SQL CRUD framework - REST API - Commercial frontend for design -* Key escrow for everyone - -- Easy-to-use key escrow/secret sharing -- Provide emergency recovery of passwords, keys, 2FA, etc. - * SQL2 See https://github.com/EvgSkv/logica, [[https://prql-lang.org/]] @@ -172,18 +119,72 @@ See https://github.com/EvgSkv/logica, [[https://prql-lang.org/]] - Declarative join via foreign key constraint names - Better ordering for code completion (e.g. FROMs first) -* Easier own-your-Fedipub identity -** ActivityPub reverse proxy +* Streaming DB -Run the reverse proxy on your domain so you can "duplicate" your identity on your own domain -** ActivityPub SaaS kit +That's probably https://github.com/MaterializeInc/materialize , but it's not OSS. -(Maybe Yunohost) -* Statically-typed AST transform-friendly language +- Simple relational database +- Can act as replication target of other databases +- Supports a limited SQL subset that can be easily reasoned about functional dependencies +- Can stream efficiently the results of an SQL query (e.g. keep a query running and receive new/modified rows) +- Supports efficient replication of a subset of a database (initial checkpoint + streaming or batched updates) +- Functional dependencies could be used to create materialized views *and* indexes -- A Haskell/Rusty language, but with GC and nice compiler errors. -- First-class support for AST transforms- both one-off (apply this transform to the source code and commit the change) and ongoing (define AST transforms to run as part of the compilation process). -- Maybe such language would never need reflection, so refactoring would be very safe. +* Ecosystem for mountable e-ink displays with wireless charging and magnets + +- For example, a small e-ink tablet that you can attach to a wireless charger with magnets in your fridge, with an always-on display of a shopping list, and a microphone to add new items. +- The tablet is completely optional, can be replaced by a different device, etc. +- How to have flexibility, such as different form factors and still provide a pleasant and pretty experience? (e.g. can you attach displays of different sizes to the same fridge and have it usable and look good?) + +* Binary "upstream" package manager + +https://github.com/alexpdp7/ubpkg/ (also discusses some alternatives) + +- Package manager that downloads published binaries on the Internet +- Manifests describe how to fetch binaries (e.g. from GitHub releases) +- Manifests are just files that can be referenced by URLs, or be contained in repositories of manifests + +* Extensible lightweight markup language + +- A language similar to AsciiDoc... +- But with a well-defined AST +- Complex nested lists +- Styling of code blocks (highlighting, user input, replaceable...) +- See https://github.com/jgm/djot / https://github.com/opendevise/asciidoc-parsing-lab/ +- Helper for "prose linters". + +* Touch controller/meeting controller/desktop shortcuts + calendar + +https://mutedeck.com/ is basically this. + +- API server to control Google Meet (mute, etc.) +- Use a USB gamepad to mute in videoconferences, etc +- Small webapp for touch interface in phone +- Displays and alerts on upcoming events +- See https://github.com/alexpdp7/meet-controller + +* Parallel execution framework + +See https://github.com/alexpdp7/scripts-py-libs + +- A tool to run stuff such as CI builds which need sophisticated parallelization +- Create differently sized resource pools (for CPU-bound tasks, "API"-bound, etc.) +- Local execution of workflows on a workstation, remote execution on a CI server +- Handle task dependencies and artifact passing from parent to child tasks +- Capture stdout/stderr of tasks, allow viewing in realtime +- Timestamp stdout/stderr for crude profiling +- Implement a CI system on top? + +Some parts could be implemented with OpenTelemetry. +For example, piping command output as OpenTelemetry logs. + +** Process nanny + +See [[https://github.com/open-telemetry/opentelemetry-specification/blob/main/experimental/trace/zpages.md]], [[https://gitlab.com/etke.cc/tools/ttm/][ttm]] for Matrix. + +- A program to manage long running processes +- Acts as a bot in IRC, email, Slack, etc. posting when the job is done, providing updates, etc. +- Starts an xterm.js to watch the output * SQL Query tool @@ -194,12 +195,6 @@ Run the reverse proxy on your domain so you can "duplicate" your identity on you - Native GUIs frontends - Smart join completion -* News aggregator - -- Basically news.google.com (grouping of the same news across different publications) -- But with "regeneration" of headlines (e.g. replace headlines with "extremely descriptive" headlines) -- And smart filters for topics (e.g. I'm interested in TV series, but not realities) - * Presentation tool - A tool to edit reveal.js-style slides @@ -208,30 +203,36 @@ Run the reverse proxy on your domain so you can "duplicate" your identity on you - Optional mode to limit slides to "hero images" and a reduced number of words per page. See [[https://www.nytimes.com/2010/04/27/world/27powerpoint.html][We Have Met the Enemy and He Is PowerPoint]] - Teleprompter/good speaker notes mode -* Scalable personal cloud - -This is basically a hybrid of https://linuxcontainers.org/incus/ and https://proxmox.com/en/proxmox-virtual-environment/overview +* Terminal mail client +- Easy set up of common mail accounts (perhaps using mbsync, notmuch, mu, etc.) +- Sane defaults +- Markdown email (write email as Markdown, send as plain text + HTML) +- Probably https://jmap.io/ can make implementing this easier -1..n node VM/container hosting platform +WIP: https://github.com/alexpdp7/epistle -- ZFS storage (use https://github.com/marcan/takeover.sh for easy set up of a ZFS mirror root system) -- Automation ready (Ansible, Salt, Foreman, etc.) -- Tools to create VMs from cloud images automatedly. See [[https://gitlab.com/libosinfo/osinfo-db/]], [[https://github.com/alexpdp7/cloud-run]], [[https://github.com/virt-lightning/virt-lightning]] -- Monitoring friendly -- Apt for single public IP - - Integrated DNS/DHCP - - VPN interfaces - - Reverse proxies +Perhaps use mblaze * Better "frontends" for console programs with OpenTelemetry support https://github.com/alexpdp7/rust_tracing_starter -* Ecosystem for mountable e-ink displays with wireless charging and magnets +* Statically-typed AST transform-friendly language -- For example, a small e-ink tablet that you can attach to a wireless charger with magnets in your fridge, with an always-on display of a shopping list, and a microphone to add new items. -- The tablet is completely optional, can be replaced by a different device, etc. -- How to have flexibility, such as different form factors and still provide a pleasant and pretty experience? (e.g. can you attach displays of different sizes to the same fridge and have it usable and look good?) +- A Haskell/Rusty language, but with GC and nice compiler errors. +- First-class support for AST transforms- both one-off (apply this transform to the source code and commit the change) and ongoing (define AST transforms to run as part of the compilation process). +- Maybe such language would never need reflection, so refactoring would be very safe. -* C64 Roguelike +* "Cloudy" Gemini client + +- Multidevice bookmarks, certificates, etc. +- Perhaps "personal" web frontend + +* WOL tool + +- Can be used from browsers/apps +- "Network-transparent" +Probably Home Assistant can do this. + +* C64 Roguelike -- 2.47.3