Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

More philosophy ideas #1

Open
m-onz opened this issue Apr 28, 2020 · 7 comments
Open

More philosophy ideas #1

m-onz opened this issue Apr 28, 2020 · 7 comments

Comments

@m-onz
Copy link

m-onz commented Apr 28, 2020

I really like this repo and general idea to avoid complexity and prefer simple clear things in general over big complicated things.

To add to this I've got some more themes...

  • avoid excessive build chains and transplitation
  • avoid fancy new things (mainly language features and esoteric design patterns).
  • clarity is always better than cleverness
  • anyone can make a mess, its hard to be concise and simple
@achou11
Copy link
Owner

achou11 commented Apr 28, 2020

Awesome!

avoid excessive build chains and transplitation

Do you think this falls under the idea of tooling, or is it slightly different? Just curious!

avoid fancy new things (mainly language features and esoteric design patterns).

Would love to know some examples of this. I personally don't mind the idea of using more advanced language features, but agree that it could be overkill given the context. As for design patterns, I'm sure that they're generally unnecessary in a single-file context 😄

clarity is always better than cleverness

Absolutely! Not super sure how it fits into the philosophy off the top of my head but I'm sure it applies somehow.

anyone can make a mess, its hard to be concise and simple

Love this one! Definitely a good one to include and expand on.


If you want to create a PR with additions/revisions, I'd definitely welcome it! I want this to be a living document and have no intention of being super strict with it – as long as the changes seem appropriate.

@telamon
Copy link

telamon commented Aug 12, 2020

Wow I'm very happy to find more people engaged in this idea. 👍 !
During my own experiments i discovered an additional benefit of a single file applications.
They can be downloaded very simply by doing a Righclick + "save as".
That way you can easily continue using the application offline by opening it via file:// proto or share it with someone else p2p.

@m-onz
Copy link
Author

m-onz commented Aug 13, 2020

Fantastic... @telamon you just triggered random ideas about ai, metaprogramming and self generating code... you should also checkout tidliwiki because it does this already... imagine a file that rewrites itself (metaprogramming - or self modifying code). It would be a very interesting way to do smart contracts and other cool p2p interactions in a safe way... in theory... a file could save a new version of itself... deleting old data that may be used to break foward secrecy and other cryptographic properties.

As an example... imagine a file that has the last block of a hash chain but does not store the preceding blocks at all... may the last 2 for example... does this mean you have an immutable, cryptographic protocol that forgets things?

Any how: the possibility of using "save as" or programmatically re-creating these self contained websites or apps is intriguing!

I need to explore:

Self modifying code,
metaprogramming,

How do you stop it from becoming a worm of some kind? Or maybe that's what your trying to build!

Imagine an AI algorithm.. you have self modifying code and a reward system... the code rebuilds until the rewards are earned. For example your trying to make an application... you have code that generates applications... and a way of judging how good each attempt is. You just iterate and iterate until you have "an app" that does the things you need and is judged ok... but you didn't "program" the app per say. So something like metaprogramming vs re-inforcement learning... just brainstorming!

I like the self-contained file as a p2p resource.. that may do something.. self mutate / change etc... the possibilities are endless!

@m-onz
Copy link
Author

m-onz commented Aug 13, 2020

This isn't the best place to write this but I've been thinking of ideas about a CLI only p2p internet accessible from terminals, and micro-controllers.

You could host single page files as websites and browse them as text streams via CLI or via dedidicated hardware (ie micro-controllers).

It would be a text only internet overlay network... it could be used to share p2p resources.. find things.. host things etc...

force everything to work at utf8 text streams so its nice and unixy and we can pipe things again! yay!

We could pipe things around and interop between things... the only annoyance is text based protocols are not very resource or space efficient compared to binary protocols.. but I think its a tradeoff and no one likes working with binary protocols.

@telamon
Copy link

telamon commented Aug 21, 2020

@m-onz happy to hear the sound of your gears spinning! :)

I stumbled onto the single-file pattern this spring while I was researching browser-virii as a joke. 😅
I believe that single-file apps is an ultra-portable pattern that is worth revisiting.

Currently I started porting some of the single-file experiments I have to hypernet. Originally I wanted to use picofeed as a storage solution for single file apps (turning the hash-space of a URL into an ultra-portable database).
But the hyper(core/drive) is a pretty close match tech-wise, maybe you'll like beaker browser check it out if you already haven't.

The apps there are working under similar constraints as if you're running all your frontend from file:// without a single trusted server in sight - there's currently no limit to keep your app in a single file on beaker, but I suspect that some of the architecture could be reused to build cross-protocol browser-apps.

@m-onz
Copy link
Author

m-onz commented Aug 26, 2020

great thanks @telamon I've been meaning to play around with beakers latest API's that open up a lot of possibilities. I also need to check out your work in detail, from a quick glance at picofeed it looks great and I will dig through your github when I get the chance.

The problem with micro-controllers is they can't browse the current "modern" web... most modern web and browsers are just too bloated with crap (cookies popups??). I am imagining very minimal protocols and constraints (like everything being streamable utf8) so that you can get a microcontroller doing really cool p2p interactions.

Computers draw lots of electricity.. are horrible to keep secure and mainly built on complex proprietary software (ridding with bugs)... we might start doing more p2p stuff if we all actually trust whats going on... thats why i'm exploring modular computing with micro-controllers... dedicated devices for certain tasks that you don't have to care about securing as much because the damage is limited... its bloody hard to hack a micro-controller with limited attack surface.. and even if you do it gets you nowhere. Couple this with brain dead simple protocols and provably secure quantum resistance math and we might be able to.. send files, exchange money, smart contracts, geo-related p2p interactions... and all the stuff that isn't really happening yet.

@telamon
Copy link

telamon commented Aug 31, 2020

@m-onz that sounds very interesting. I hope this is not too far off-topic, but I share your sentiment and suspect that bloat has been one of the limiting factors so far in my attempts to design a coin-less p2p internet.

Portability is super important for replication and data size adds "weight" that you're sometimes required to consider. I shared the idea once with a friend and we built tic-tac-nano. I don't yet know what to use it for, maybe as some kind of test-data-structure for distributed experiments but it's the highest amount of silly that I've ever managed to compress into a single integer.
If i ever find a use for it then it will most likely be in a single file application, using a 20bit data-model makes any other choice seem like bloat 😄

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants