betrusted-io / betrusted-wiki

Looking for docs on Precursor/Betrusted? Start here.
https://github.com/betrusted-io/betrusted-wiki/wiki
Apache License 2.0
173 stars 6 forks source link

Crazy brainstorming #3

Open dumblob opened 5 years ago

dumblob commented 5 years ago

The following are topics which popped up in my head after I read through the information on the betrusted website.

Hardware oriented topics

Software oriented topics

Proxy device (listed here just for completeness)

Any comments on any of the topics above would be appreciated (it's enough to say "no, not planned" or "tentative" or "yes, that's on our list").

Superpat commented 5 years ago

Email and various other protocols can be used as proxies for SMS messages. But an actual interface to the phone would be cool as well.

A little REPL instead of a dumb terminal could be quite cool.

Calendar / Contact / Email synchronization is a must I think.

Some way to mount the encrypted database / filesystem on a real computer would be nice.

dumblob commented 5 years ago

But an actual interface to the phone would be cool as well.

Not exactly an API (which could be very demanding to maintain as Android/iOS/... APIs and behavior changes drastically every year at least), but even something like "VNC with dithering for black&white and audio & video" will be probably not the most user friendly solution, but probably easier to implement and functional enough even without much maintenance :wink:. In case the VNC will be bitmap-backed (instead of vector-backed where one could artificially increase e.g. font-size), then there will be issues with readability due to huge DPI difference (the small fonts used nowadays won't be readable at all).

There are probably already such apps, but probably without black&white dithering so in the best case we would need to add just that and then implement the client using the constraint requirements of the betrusted device. This would even have the potential to "eliminate" the need for GSM/VoLTE/... proxies.

ediliziosantrapa commented 3 years ago

Lots of great ideas above. I imagine the device will be useful to run as a type of terminal, so CLI or TUI apps for all of the above mentioned may be savvy. You can edit text, take notes, write email, etc, and then depending on whatyou want to do with that text you just say so in the CLI and the text is either saved as a note, or sent as an email or an encrypted sms. There are a few things I would just like to add that I hope can some day be included, and I mean to reach out to other people on the software side as well to see if they might want to contribute to betrusted/precursor development, but in the mean time I am just putting down some ideas so that I do not forget them down the line.

For note-taking: I am very fond of Standard Notes, whose philosophy aims for extreme minimalism, and encryption, and longevity. I think their philosophy is very much aligned with betrusted and it would be very nice to be able to access my standard notes with the nice little screen and keyboard of the Precursor. there is a rust implementation of standard notes here: https://github.com/matze/iridium -barring the ideal of standard notes, then simple text editor like this rust one: https://crates.io/crates/eureka, for saving to git, or simply as above stated using email to save offline messages, or even using email protocol as a way to save networked notes as well.

WireGuard VPN may be too heavy to run on the little precursor, but there is at least two implementation in rust. It would be great to be able to connect to vpn when syncing on the precursor. Wireguard famously small and fast, so hopefully could be a possibility. Two different rust implementations I am not sure of their individual character. One: https://git.zx2c4.com/wireguard-rs/ , and I believe the much more mature: https://github.com/cloudflare/boringtun

There is modern pgp implementation in rust that is worth following: https://sequoia-pgp.org/

Also minisign is a beautiful signature scheme and there is rust crate for it: https://crates.io/crates/minisign

I hope that it would be possible to read epub (ebook) files on the device, this rust crate is essentially fully featured with search: https://github.com/aeosynth/bk . Of course I hope the device will have copy and paste clipboard, as note taking from ebook is very useful.

On a similar thread, I hope that it would be possible to read .zim files, used for impressive compression of entirety of wikipedia and other corpuses, this way it would be possible to have large amount of useful information accessible on the device without requiring internet connection. There are small amount of dated rust implementations for reading zim files: https://github.com/eminence/zim and https://github.com/dignifiedquire/zim , https://crates.io/crates/zim -This would necessitate the feature of the OP for external memory expansion. I don't know if there is safe way to allow micro sd card expansion, but they are cheap and tiny and would be fantastic to store many gigabites of books, writing or other files, even if they are not truly manipulable, on the device as we travel.

Another item that could go on to the expanded memory, or be accessed via network, would be a simple map/navigation tool. This is likely an extreme stretch of the capability of the device. But being able to download some version of map tiles, road networks or something and ideally (but likely impossibly) to do on-device simple directions calculation would be fantastic. This is one of the main things many people use their smart phones for, and would likely be one of the hardest to give up. There is an interesting rust implementation of command-line access of openstreetmap data here: https://crates.io/crates/osm-geo-mapper , this even will list nearby amenities, etc. Ideally it would be able to utilize offline map data downloaded ahead of time so as not to require networking.

Maybe useful, CLI Rust Calendar: https://crates.io/crates/calendar

There is progress in open source gsm/lte code, I don't know how useful but could be interesting to the project. Osmocom is the most mature project I have come across in this area: https://osmocom.org/projects and https://github.com/osmocom

Because of the character of the device with retro appeal, of course snake would be fun to be able to play, two implementations in rust: https://github.com/schulke-214/rsnake and https://github.com/phantomion/snake_game .... of course this is half joke.

I agree with above, waterproof/resistant would be fantastic. Also in regards to messaging proxies, there are services to use XMPP as VOIP client, and there are also ratchet and other e2e encryption implementations for XMPP, and I also believe that XMPP is partway compatible with email, so it could be a very interesting route to pursue. I will repost this in the other thread on delta chat as I realize it is pertinent. The best part is XMPP could possibly act as SMS, Email AND Voice proxy all at once. It is possible to use a phone number with XMPP/Jitter, see here: https://jmp.chat/. Here is a rust console based xmpp client: https://github.com/paulfariello/aparte , this group says they can run xmpp server on tiny embedded systems: https://tigase.net/

thank you for your time, the current state of things can be very depressing, but precursor gives me hope.

ediliziosantrapa commented 3 years ago

More brainstorming:

There is a similar fpga computer called the mega65 which very interesting has the explicit mission to essentially port commodore 64 and other "retro" software to run on the constained hardware. I think this is super hack for the Precursor because there were troves of utilities, productivity apps, etc already written which will run fabulously on low end hardware if it is ported. Some inspiration:

1) https://archive.org/details/softwarelibrary_atari?&sort=-downloads&page=2 2) https://www.lemon64.com/apps/ 3) http://www.retroarchive.org/ 4) https://preterhuman.net/software/

There are countless platforms from the past with processors and memory constraints much smaller than the Precursor, so picking some of the most popular computers of the day like some of the great early macs of the day, apple II, ms-dos, will have huge libraries of software, most of ambiguous licensing. How easy it is to port to modern fpga is a whole other issue... but still there is lots of inspiration out there for applications that do not have many resources.

dumblob commented 3 years ago

In addition to the render on https://betrusted.io we could gather some inspiration from some modern concepts with black & white displays like https://www.concept-phones.com/nokia/nokia-3310-2021-gets-a-larger-screen-fingerprint-scanner/ .

dumblob commented 2 years ago

Some simple monochromatic (or very low-color) apps (e.g. calculator, graphics editor, etc.) are available in the uxn ecosystem - might be worth porting the few KByte virtual machine to the Betrusted platform.