* Nice mailing lists - GH-style user/organization creation - Every user/organization can create mailing lists - Mailing lists have a web UI - The mailing list UI can be completely customized to look like microblogging, blogs, comment systems, etc. - 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. * 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) * Userland WASM Linux distro - Bootstrap a Linux distro to run on WASM - Should be able to run as a non-privileged user, installed in the user's home directory - Focused on userland programs, not a full OS - Should be able to run on non-POSIX filesystems - Could replace Docker/containers for developers - Similar to https://github.com/WAVM/Wavix * 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/ * Streaming DB That's probably https://github.com/MaterializeInc/materialize , but it's not OSS. - 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 * CRUD framework - https://github.com/alexpdp7/v2f - https://github.com/alexpdp7/zqxjkcrud A completely declarative SQL CRUD framework - CRUD definition is done through SQL objects (schemas, views, etc.) - Permissions - Row auditing - Multiple components - Server-side HTML frontend - 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 - A new language that compiles to SQL - Handles RDBMS differences - Makes queries composable (e.g. declare a query object, then add paging/sorting, for framework usage) - Declarative join via foreign key constraint names - Better ordering for code completion (e.g. FROMs first) * Parallel execution framework - 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? * Random review experiment I want to review all my blog posts (~1000) for formatting, broken links, etc. I do not want to keep a list of the blog posts I have reviewed. If I review n posts at random every t time period, what is the probability over time of reviewing p% of posts? Create a website to run this experiment. * ActivityPub reverse proxy Run the reverse proxy on your domain so you can "duplicate" your identity on your own domain * Statically-typed AST transform-friendly language - 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. * SQL Query tool - ipython notebook style interface - Backend + multiple frontends - HTML/JS Frontend - Curses frontend - Native GUIs frontends - Smart join completion * HTML/JS only browser engine - Use an existing JS engine to implement a browser that can parse HTML and execute JS, but which has no concept of graphics - Could be used to implement a text HTML browser that can access the modern web - Extensible and scriptable, to generate "article mode" scripts, scrapers, and "API proxies" * Presentation tool - A tool to edit reveal.js-style slides - But also record and do basic audio editing - So it can help with timing/pacing, and even generate a nice video - 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 * Touch controller/meeting controller/desktop shortcuts - API server to control Google Meet (mute, etc.) - Use a USB gamepad to mute in videoconferences, etc - Small webapp for touch interface in phone - See https://github.com/alexpdp7/meet-controller * Scalable personal cloud 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.) - Monitoring friendly - Apt for single public IP - Integrated DNS/DHCP - VPN interfaces - Reverse proxies * 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?) * C64 Roguelike * Software development book ( https://github.com/alexpdp7/wakat ) * Pure HTML5 decentralized IM system https://letsconvene.im/ https://github.com/alexpdp7/imnei - Uses web push - Conversations are URLs to be shared - "User identity" is a private URL to be shared to handle multi-device - End-to-end encryption - Can have WebRTC audio/video - Anyone could run its own instance, as it is clientless there is no friction to have multiple providers - Broadcast channels to be a pseudo-social network * Federated real-time communications using open protocols https://github.com/alexpdp7/frtcuop * Deterministic embeddable simple language for calculator and notebooks https://github.com/alexpdp7/plankalkul/ , that deprecated https://github.com/alexpdp7/pdp7_calc/ .