Nanogram is designed for the enthusiest who wants complete data sovereignty on their social media platform.
Spin up your own instance on termux for Android.
Demo here.
Install instructions are at the bottom of the readme.
Nanogram is designed for the enthusiest who wants complete data sovereignty on their social media platform.
Spin up your own instance on termux for Android.
Demo here.
Install instructions are at the bottom of the readme.
Why is it a shell script that makes Python scripts? Im definitely not running that on my machine
The script builds the home directory that’s all. It’s building many other files than just the python app. All the html files, css, tor config, ect.
Here is the directory it builds in the virtual termux environment.
Why are those files just not in the repo then, so it is easy to see what is going on? Why the “clever” script to make them?
At this point they could be separated file by file into the repo no doubt.
I did it for development ease and to make sure everything was interacting properly together for each iteration.
To implement one feature you need to touch many parts of the program. html, css, python app, SQLite database logic. Having it all as a giant monolithic program greatly improves a LLMs ability to see every part for context. Having a bunch of separate files is not great for the context window.
Ok… I guess…
I mean, I gotta say, I’ve been a professional developer for over 20 years now, and also using LLMs as a senior dev, to help with day to day stuff, and development. Never have anything like that ever seemed like a way to make things easy to develop.
It is most certainly not easy to understand as a human, and to figure out.
Here’s a tip:
Writing good code, is about writing it for the next human, not for the machine.
I’m not saying it’s the correct or proper way to do things; it was just the eaisist way for me to keep track of everything. This entire thing was created on mobile and I found it was quicker to keep things in one copy pastable format.
The work flow was: ponder new features, discuss ways to implement, implement and generate the monolith with the implementation, copy paste into the terminal, test to see if it’s what I wanted, tweak stuff until I’m happy, rinse and repeat. It wasn’t like this was a one liner prompt into a LLM.
not to be rude but as someone who has no coding background I feel like I can read and understand what’s going on in this raw source pretty well at this point after watching each portion generating 100’s of times. Why can’t you read and understand it you are a 20y senior dev?
It is not structured in a way that is easily understandable, or quick to get an overview over.
It’s one big mess of code, all piled together.
Why? Because it’s long and complex? It would be the same exact thing just separated. What’s the difference honestly?
Here is a overview.
It starts with defining environment variables, app directory, file permissions for the directory.
Then it assembles/installs or updates the dependencies.
Then is concatenates the python app. The python app is big because it’s complex with all the game logic of three mini games.
The python app grabs all it’s dependency packages it needs, creates the database, defines all the functions I wanted such as… What’s a like, what does a comment button do, what does a login button do, what’s a Scrabble game, what’s a chess game, what’s a read receipt… All these functions define when and where to interact with the memory of the database.
Then the html templates are concatenated. This is shell of what is served to the client so they can interact with the database.
Next the CSS file is born. This is just a skin to make it all look nice.
Finally, it finishes with the CLI server manager. It provides the operator admin functions. Turn the server on, off, networking on and off, backups, invites to server, uninstall the whole app and more.