logoalt Hacker News

unified101today at 10:20 AM6 repliesview on HN

I don't think this goes far enough! Make the actually app store be the same file itself. so it's a living application and the file is constantly updated to how you use it. Copy it around, and you carry your data wiht you as well.

Let's go deeper. it's a webserver app + the server code + application code + db, so pocketbase++ where it's also the deployment target.

Then combine it with APE liek system, and the same file loads and stores things on every platform. evil laugh

Very cool hacking! My hats off to the author.


Replies

arnsholttoday at 10:59 AM

The application writing its state to the executable is basically Smalltalk (or Lisp). It's an extremely powerful way of writing software, IMO.

show 1 reply
wduquettetoday at 6:33 PM

The TCL community experimented with an idea like this many years ago; they were called "structured documents" or "starpacks". What we found was that (A) it's usually more convenient to keep the data in a separate file, and (B) virus checkers can get suspicious when your app starts modifying itself, leading to unintentional comedy in operations. YMMV.

regularfrytoday at 11:34 AM

I didn't have this idea exactly but I did play around with sqlite as an embedded database for packing ruby apps into a single file a while ago. It was less direct than this: you basically compiled all the dependencies (including .so's) into a fake filesystem that an overridden `require` loaded from, which was unpacked to a `:memory:` database at runtime from a `.data` section that got bolted onto the interpreter. It died when 1.8->1 9 changed how the build system works and I never got round to updating.

A version based on this which carries around an overlay filesystem would be comparatively straightforward, the hard work is already done.

pizzafeelsrighttoday at 2:28 PM

This has been my hope.

BIOS -> Database that has everything including OS.

This way we get WORM and AI integration.

pstuarttoday at 2:07 PM

Doesn't redbean do this in a more portable way (not ELF dependent)?