Saturday, June 24, 2023

DTR & Data Verifier


Add the Data verifier component to the DTR.

When we add something we can also check for errors. Is still a bit messy but is a evolution from the Normal DTR which we just add data. In here we also recived the option to check. So the data can add all kind of things to it. 

It add's a layer in separeting "settings from logic". Which is a objective of the software\project.

We can see in the image that our characters do not need to have data base information associated. But in this way we can also check if every thing is accurate before entering the software.

The logic can be choosen by the developer. In here is just to serve as an example. Not forcing any method like in some frame works they have this established logic from objects to database and view like in the MVC frameworks.

Instead it have a list of possible verifications we can do. Is possible to verify: files, paths, rows, data, data types, etc... if any error accure since we are one step before the software we can present alternatives or solutions to fix the error.

Think this could be use in most projects. Because the tool does not have dependencys by it self. You can plan your project in the tool width the logic that you want or from your project then if no errors occur you can either use this file format or convert it to another.

 if you use this format you have the rest of the tools that work it. But is nice to have the option to make it work width other tools. We don't know what kind of languages and projects need it. The good aspects of open source.


Monday, June 19, 2023

Tool : DTR & First tool

The information is stored in a text format DTR (Database format text Reader)


It work with an internal mini Database within the software without resorting to very heavy database software. Information is Link  by keys. The prog will fetch all "skills" that have the same character id. The skill keeps track of what character this skill corresponds to.


Characters_index_keys : 

  • Character_id, 
  • Character_name, 
  • Biografy_id, 
  • Skill_id, 
  • Spells_id, 
  • Items_id, 
  • Weapons_id, 
  • Status_id;

skills_index_keys = character_id, skill_name, ability, tags, targets;

Normally this is how Databases work what I did was convert that method to .txt files. The character.txt file is related to the skills.txt file. Will avoid too much processing time will + direct no information.

"Will be available in the next version: The Box 1.x"

Think this will be the first tool

Because it will have the structure for the other things. For example the hole project structure will lay on top of this mechanics. Since C is a compiladed language and not a script language we can't make changes on the fly. So for that is much better to get the values from files and create a dinamic mecanism to work width it.

Bit wierd why develop PHP when you can do it in C width a dinamic information coming from files. It will do the same you manipulate values on the fly. The diference is that you can see the machanisms that do this things.

It will remove the need to use extra languages like Javascript\Css\Html\etc... You have every thing incide just one language and the data files.

The planning is probably much bigger then PHP while in PHP you pump the functions and just need to update you can see in here the planning is going for a couple of years now. But the end result will be much better.

Dinamic Text structures

For what i see to make this work we need to make dinamic text structure. Which will represent other things lather.

  • New connections
  • Represent data
  • Represent functions
  • Make calls
  • create new structures 
  • ...

work in progress

Monday, June 5, 2023

Programming Philosophy

Software principles :

  • The concept for this programming philosophy is that all variables are gobal. This is done to avoid messing around in changing things around lather.
  • Stack librarys are a type of library used to incorporate large blocks of code which replaces functions. They are mainly loops which have capability to perform dinamic functions. Are not as slow as functions but still dinamic enough to be used.
  • Files inherit parts from other files. Like the standard_variables or functions.
  • The evolution to the CSS coding style. Allow to deppen the use of the global variables
  • Now seeing the possibility of more costume files. But this kind contracti the principle of inheritence of the philosofy. (Like having a string.h vs standard_variables.h)
  • More things can be standard not only variables. Like templates and files but of course they  depend on variables like a standard template in the end is standard variable.
  • The style uses underscore "_" to separate names.
  • In standard variables The first name should not be abbreviation IMG_jpg image_jpg.
  • Why not use imageJpg. The pros is that is true it creates dinamic which may be better to read. The cons is that if one day forget a Upper case is extremly hard to see it. That's the main reason i abbandon this pratice. Some fonts don't separete that well upper and lower letters. And the representation for a space in computer language is the sign "_" underscore. The main reason is to minimize errors.



Standard programming names

Workspace


OOP vs C


If you read this tutorial it have the error.  variables out side main declared as extern. which for what this expert say does nothing. Logically is saying i will receive a value if there is one, since none was declared previously it receive nothing. : https://www.tutorialspoint.com/cprogramming/c_variables.htm


------------------





[code]
typedef int to integer. [/code]

not sure if we really need this step, or that much text because then you have another problem of to much text, to few not readable to much also can cause problems.

------------------


We can simulate oop width static which restricts a function or a variable just to one file. For fans of oop we can achieve something like that in C



file1.c
static var1
static function1(){}

file2.c
static var1
static function1(){}

same stuff is redeclared.





Project administration & Media Fire


Preferring "Media fire" over other projects, 

like Github:

  •  you have to upload file 1 by 1 which is very pre history for computares and software capability today.
  •  Another issue you can't have empty folders or move large amount of files in your project, you have to move them 1 by one.
  •  Can't delete folders, you have to remove files for it to disappear. 
  • And you guessing how you remove files in there for it to disappear? Maybe you guesses correctly again you have to remove files 1 by 1. Insane work! 
  • It is not possible to administrate a large project like this moving files 1 by 1. There is a lot of editing to be done.
  • Why not use the tool for the page? "They maybe attempt to attack again" : why use this wired tool when you have FTP's services for like dozens of years. In computeres that's a lot. Like from the 1920's or so we have FTPS services. 
  • A FTP service is pretty simple stuff you see what is missing and it uploads as simple as that width tons of FTP clients. Which one more advanced then the other.

GitHub It is probably a great tool if you paid but for the free service it "leaves a lot to say about"...

Media fire host like 20% or 30% of files today. which is a lot of all online files content. Very easy to use and they don't even require register to use only to keep files lather.

https://www.mediafire.com/folder/numb2imcdi21c/the_box

 I can say : Media Fire have one of the greatests services in terms of file hosting. Probably number 1.

Planning 3.0 & Tool List


Finishing the 3.0 planning; evolved a bit, from stack librarys which was the style of the web framework, to CSS like code, in to tool abstracting things in this 3.0 version.

 This is to big so some things are a more long therm planning. Others don't plan to give support to all settings. This was the original plan just be able to finish planning and see what will happen. 

 But now frameworks are doing a lot. Reading some things on GTK 4.6 it give support to full applications in Gnome enviorment. If you need to do a web browser to your application you can do it in GTK 4 pretty potent aplication to be able to do all that. A couple years a go the development of a web browser as a highly complex task...

-----

Another standard we are starting to witness is the funcionality standard. For example if we know that most if not all games have a character. We can start creating standard things for this funcionality. 




Tools list and links structure :

  • Editors ->
    • Code Editor.c
    • Text Editor.c

  • Code ->
    • console.c
    • commands.c

  • Structure code ->
    • Components
  • Project ->
    • Admin
    • version.c
    • bug.c
    • tasks.c
  • Management ->
    • dtr.c -> database format text reader. To improve access to information.
    • links.c
    • librarys.c
    • file_browser.c
    • back_office.c
  • Learn ->
    • tutorials.c
  • Web ->
    • Forum : it reflects well the philosophy of the software which is to have tool to automate a great deal of tasks. It allow to administrate forums in a much more robust way.
    • Social
    • Chat
    • Market
  • Servers ->
    • FTP
    • MySql
  • structure.c -> the structure mecanics develop, is not related to the general structural filosofy of the box, but a dedicated tool to handle things.
  • projects_web.c
  • Lore ->
    • Characters
    • Spells
    • Items
    • Weapons
  • Tests ->
    • Unit Tests




  • Open Files

    • * support to open source files and standardization. So that apps can communicate better

    • DB - Access to a more losse Database designs
    • Animations - open source animations, so that can be reused.
    • 3D models - other info related not only to 3D model
    • projects - access to open source project file design
    • map - standard maps & open source acess

  • Hierarquy

    • Standard & prototypes - Manage variables, Projects, functions, names, Linux Distributions; joining tasks, prototypes

  • Project

    • Project - administrate the project, create, edit, (->relations)
    • Relations - Control the relations of what file is doing what, Types of files, overview
    • administrate project - Do large scale administrative goals for the project.
    • Updates script - tool to manage updatates abstaction language for projects.
    • Merge Projects - Merge similar projects, to set new objectives, need structure to detect stuff installed.
    • paths - Settings for the project
    • Projects On online - Access to project information, in a better way then search for information (updates, reviews, comments, etc)
    • Pay - Pay small subscriptions to projects, or do donations. Pay small subscriptions to projects, or do donations.
    • Updates -
    • Requests
    • Feedback -

  • View

    • File Browser - Organize projects better width costume file viwer; categories and detailed information.
    • Shortcuts - manage shortcuts in the computer in a abstracted way.
    • Search tool - Advanced search behaviors
    • Dependencys - for what files are relation to, display of the hierarquy.
    • Web Browser - Load Html web pages inside the software

  • Base

    • DTR - Database format text reader - high performance access to text & abstractions.
    • Encrypt tool - Encrypt information from other tools.
    • Version - Manage software diferent versions, comments and requests.
    • Updates - Control updates to files, folders or project. Can work online.
    • Translation  - Manage translations for all kinds of things
    • programing

  • ABSTRACTED TOOLS

    • Themes - Abstracted, Organize information by themes
    • Labels tool - Abstracted, labels to inherit throw out other things(ex->code editor)
    • Favorites Tool - manage local links in the computer and projects also for other tools a centralized way to manage local links.
    • Notes - Abstract, notes (->calander->links) Create notes to add to diferent parts or tools, instead of having notes in all things, just one centralized note.
    • Categories - Abstract,  Manage categories, for diferents things in for tools Tags format.
    • Groups - Create groups
    • Paths - Abstraction and managment of paths for other things.
    • Connections - Create connections between things.
    • Saves - Save sessions, games, maps, etc...
    • Format - Format files to any thing

  • AUTOMATE TOOLS

    • Console -comands using the load and unload method
    • Commands - List of commands, for diferent software, can used width calander
    • The box script - to manage web pages
    • Language scripting - Script using natural language, abstraction (not real)
    • TBP - The box programming language (long therm thing)
    • Classes Manager - Objects administraction development
    • Function Tool - Automate functions, Load functions in to the tool and test them (functions, variab
    • Structure - installed stuff via build and deconstruct.
    • Modules - Administrate in a modules format ->module : video player, audio player.
    • Templates - (Load templates in to the modules, interact from modules width templates, (change, edit, load, interfaces,)
    • Prototype - Create prototypes for any thing write load packages to speed development. Includes stuff from other tools
    • Install Tool - like Make but  visual to see dependencys and manage how things are instaled create. Will work width make if possible.
    • Snyppets - Code Manager, comments, updatable code pieces.
    • Sheets - Use cells width functions
    • Bases frames - Base frames a base, we can create a tool to manage them. For example RTS base, RPG, etc...
    • AI - Create behaviors or bots. Inter link : Console, Comands, tasks, calender

  • Management

    • Calander - Organize or Schedule thinks by dates.
    • Tasks - (->project, )
    • GIT - Management for project files in a team format; Manage project online
    • Email - Email reader, incorpurated in to the mensage system
    • Contacts - Misc list of contacts (email, social, ids, blogs, etc...)
    • Links - Costumized information on links, shared the costumized information online, view by rank or normal, Can automate tasks width other, like send emails, cards, etc...
    • Tutorials - (links comments) Connect comments in tools like manual or design document tool. information from information tool.
    • information - general information, integrate text web pages.
    • Librarys - group links or files for game development
    • File Manager - Keep track of relevante files Tool, administrate files
    • Page Manager - Manage the content of pages
    • Links manager - Administraction of links for web pages what which page is doing inside the Box. To prevent 2 equal links.
    • OS Manager - Manage operating distributions sistem structure, files, librarys, install etc...
    • Backoffice - Manage your projects by adding a back office, to extend current box administraction.
    • Network manager - Manage who see what, user privileges.
    • Folder structure - Add notes to folders to administratre projects.

  • Social

    • Play List - Most liked music. list organized music & video or misc.
    • TV/Radio - Plays but organized width people most like.
    • Emulator - Maybe is possible to connect width other things

  • Testing

    • Bug track -(-> os. tool) Report, register and control bugs, link bugs.
    • Calculator RPG - (->lore->game design) calculate game things, can load functions
    • Battle Simulator - Load basic status
    • Game Simulator - Load parts of the game.
    • Test tool - Unit Test, Regular test, Function test, Object test, file tests.
    • Fragment Load -  Load only the linked parts of the program, this creates a discentralized system to test your game.
    • Pre compile - A pre compiler step to check if every thing is ok. It works width things installed in structure. Should also be able to set a compiler in the IDE.
    • Tiles Isometric - Tile Edit projects
    • 3D engine - Run the project 3D game only (open GL) will be suported. Maybe we could develop a non compiled version like PHP just to check stuff.

  • GAME

    • Talks -  manage the npc/bot talks text
    • Script - Create scripts 
    • Animation - Create animation in a standard file format
    • Maps editor - Edit map in a standard file format
    • Shadder - Admin shadders in a proper tool
    • Textures - Admin textures in a proper tool
    • Network - Abstract network for game
    • Tiles engine - Run a tile project
    • 3D engine - Run a 3D project
    • 2D engine - Run 2D project

  • Design

    • Game Design manual - Inter active manual (->talks->lore)
    • Lore - Names (generator), Historys, Characters, items, dungeons, heros, races; view online, include in to a project (add, delete, edit, post online). (->talks->lore) or information parts
    • Manuals - (->classes)

  • System

    • Auth tool - autenticate, Inscription or Register to any kind of thing. Events, groups. Create one login register tool for all aplications.
    • Servers  - Have ready servers to do tasks. Mysql/FTP/WEB/Torrents/Files/game network/stream/IRC/Chat/ show online servers.
    • Mensage system - Create a more standard comunication mensage sistem. Based on security.
    • Administration - Manage content, relations, users, priveliges
    • Downloader - Manage downloads lia land integrate them width other tools
    • Torrents - Once we made some things we can post your things online for your network in a torrent format. Or public.

  • Security

    • Guardian - Since the software allow high level tasks we will have a costume firewall to monitor all this kind of actions. Register of suspicius actions. Action Patterns.
    • The Gate - Control permissions to files.
    • TB script - A script that have security measures inputed.

  • Editors

    • 2D editor - Simple edition to update speed tasks
    • Font Editor - Create, edit, and access free fonts
    • Logo Editor - Create logos width a simplified tool
    • Code Editor - Link things direct in to code
    • Text Editor - Edit text files
    • Database  - Graphic handle db extensions interface (->project->structure>)  Manipulate the database.
    • Video/audio editor - Small edition of audio end video so that the developer can have video done for his project.
    • 3D objects create /Editor - Create 3D objects based on shapes & algoritms
    • Page Editor/publisher - If you put your project in projects online then you can create a page
    • for it. Do easy updates
    • Tiles editor - Tile Edit projects
    • Menu editor - Edit in graphical or in text the graphical part of a software.
    • Assembly Tool - Manage assembly code.

  • Pages

    • Health - A tool dedicated to shared healp tips
    • Invoices - A tool to process them for the sales
    • Material - Materials for houses.
    • Servers - file,  Software to administrate a file server.
    • Micro - A tool for microphone talk, shared, record, etc...
    • knowledge tool  - A tool to manage knowledge and share it width other people. Exchange of seeds, explore cientific studys (Aggro Culture / cientify Lab)

  • WEB TOOLS

    • Chat - Talk tool, advanced IRC
    • Mensage System - A more robust mensage system inside the software.
    • Gallery - display gallerys by themes
    • Page - Update your page width new things and connect them to the network. Also inside the software pages will be full 3D. Maybe   create a standard 3D pack, so the downloads times are not to heavy.
    • Software rate - rated software, to show the best projects.
    • Requests - Ask funcionality for diferent kinds
    • Categories -  Create categories to administrate content
    • Post Manager - Manage post already made.
    • Article writte - Social tool to show to all people the things that you writte. (->themes)
    • Servers Online - Display all kind of servers
    • Market - Post your production to sell/buy advertise things.
    • Tournaments - A open source tool to create your own tournaments and publishe them. So other people can see them
    • mails - Access mail service in the software
    • web Services - automate add services forum/wiki/irc/pages/Server/Emails/Payshop/mensages
    • Tutorials Online - Manage tutorials that people post.
    • Open project - Manage open projects not just for software.
    • Portfolio - Display your skills
    • Game Manager - Like tournament tool, but much more limited
    • Streaming - used for dating, games or video chats. (->dating)
    • Courses - Create and prepare classes online or offline.
    • Companys - Page companys, teams, groups,
    • Curriculum - Manage your professional expirience, find contacts.

  • WEB

    • Debate - Debate topics in a group, width tools connected
    • Comunity's - Themes management
    • Teams online - To keep track on members/recruit/news
    • Dating - Free Access to dates sistem
    • Renting - Renting is a high cost activity when is just a simple service. 
    • News - Select the most relevante news
    • Books Online - Post your book to the community
    • Culture tool - Organize culture for people
    • Transportation - Organize shared transportation or delivers for some of the products posted.
    • Cientific Lab - Access cientific research and easy shared width other.
    • Events - Create events for any kind of activity that will be shared to the networks or wall of the software.
    • Cooperation - Cooperate width others in any kind of projects. Admninistrat
    • Quiz - Social app for aquire knowledge.
    • Contest - Create prizes for contests. If you want to organize a local contest and instead of hard raise all the sponsores can use the tool to help organize things and contacts.
    • Causes - Accompany problems that people may have.
    • Employment - Tool to advertise your jobs offers.
    • Internship - Search companys that are looking to integrate intern people.
    • Promotions - Organize promotions
    • Payments - Make payments to allow for the market to work
    • Paid content - To organize a large project you may wish to get first sponcers, the tool help show the project and getter donators.

Sunday, June 4, 2023

Standard Programming & Variables


"Get to the conclusion that if we adopted standards for things like variables, we can access programs we don't know or have any knwoledge about them. "

That's the main strenght in using standard variables. Instead of inventing a new way to name variables. In a way "we are re-inventing the wheel" or repting our selfs heavily. Which is not good to make all that repetition. Because is a high amount of work that is wasted. 

Now the software evolve a bit from just variables more things are becoming standard. Let's say the way how we do templates. If you have a diferent author a diferent site and diferent framework. Or even some times diferents works they all have a new structure. But lets assume our templates now have a standard way of doing things.

We can also access other people templates just by looking at our templates. That's a high amount of stuff we do not need to memorise which will increase heavely the work flow.


 



 





 

Session 

includes/header_files/session.h

For the links on top we have things that are more sharable. I often put those in the same organization standard/structure. Expect this ones since they share their will be in their own thing to be easy updated. 


char session_name;
char session_tool;
char session_file:
char session_files; 
char session_themes;


session_save()
{

}

session_load()
{

}

The CSS code style



Since the filosofy used is based on structure framework of files. The CSS programing style extends the base filosofy.

A simple example of the base files inherit. Since parts of variables may be used in more then one file instead of being in a file like "DTR" is up one level so that more files inherit. Is a base method used in the software. 

  • Main ->
    • Standard Variables
    • Standard Functions
    • Standard Templates
      • DTR 
      • Interactive Manual
      • Lore


The CSS code style :

Got the ideia when i post the concept at Game Dev forums. People where doing all kind of tips. Then i though also hold be nice if the code do it. Then update it so that now is the basis of also the code style.


We can see in the example once we have: the file extension, error type, and path to files we no longer need to repeat this variables they are inherit. Like CSS code this allow to have highly complex rules width out re-writting to much stuff.


#include "variables.h" 
#include "path.h"
#include "error.h" 


path_folder = "\store_structures\"; 

file_name = "store_structure"; 

file_extension = ".h"

error_name = "unable to open file"; 

build();

file_name = "file_map";
build();

file_name = "variables_map";
build();

file_name = "color";
build();

file_name = "print";
build()

file_name = "type";
build()

For the last example we need another folder so is just a matter to change it. It assume  

path_folder = "\includes\"; 
file_name = "font"; 

build()


Why is this good?

If we ever need to change something in the functions the setting are separated. As the MVC separated logic from presentation. The Separtion of settings from logic may also add a step in your capability to be modular and lather do changes. 


// All files using application structures folder[/code]

Now we see 2 folders included width a CSS rule, store_structures folder and application structure. Error works for both since they are including files.

Can't auto include system libraries since they build auto include, so they are in the main folder, width main.c, they are just included directly. Let's say we are in a diferent operating sistem, that does not use “../” this type. It will work.

Tool - Code editor.

 The connection width Code editor. 

Wanted to created a costume code editor to perform tasks for our own style of programming. (At least will be at the planning for development still seing the best options).

We can see the connection between text editor and code editor. Comments added in text editor, can now be viewed in code editor. They are hovered. Other things can also be hovered or clicked  like : tutorials, code snippets, information, file inherit,  comments, code connected, etc…

Open Links : Something i see is missing from code editor is the ability to open files directly from editor: "open directly : files, functions, variables;…"

Short things width theme : 
lets say we click on a function we can get all stuff connected : files, variables, comments. And display in a new page width all the stuff connected.

The mode debated in previous post to prevent errors: A bottom, “rename”. we click in that button and when we click on a function, it stores the connections so we can rename in safe.

 Display in a menu width all the connections. So it does not make the software slow by waiting for connections of functions. This prevents always displaying connections.  it could bother a bit the work since was always displaying connections this way is by click. In this way we have a button to rename functions, variables or things width connections.

Functions will have a color or a icon to show it have connections, When you want to rename a connected function. Need to click first in the rename mode and then rename : If it was no icons, no need to activate rename button, we can edit directly.
 
ps : width the file map we can also rename all files that have the same variable since it is stored in “file map”, we know which files have that variable. It probably will be delegated to synchronize. From temp data files to temp project files.

The links look :

 Organized the information by topic, so we have less generic stuff. Then the same for :  folders application struture, game and online stuff or related to online.



And the last piece of the puzzle.

A potent search engine to connect all the stuff. We can search just a piece of information, like a ip for a game. Or complex search rules, that can get any information.

This ill help to publicity any thing width out the need to resource to money. This money based search's is very problematic for our needs in today times. We just need to : access the local market, pay; publicity a private game server pay; get publicity for a small application pay…

(in dev interface)

We can separate the information width lists or by : theme,  region, language, author, type, rank, location, by tags of any thing we can connect, etc…

 

 


 

Saturday, June 3, 2023

The Box, Development tool



I have worked and applied the concepts of structured code to a Procedural PHP engine for the web. I have the idea to develop a open source tool for the community in C.

The engine will be build in C, to have better performance.

It is on google drive : https://drive.google.com/drive/folders/ ... sp=sharing


Git Hub : 

Discod

https://discordapp.com/invite/Mwgxgzf

How to build inherit files ?

movement.c // handles movement
score.c // handles score
team.c // handles team
team_rts.c // handles team for a rts game
team_fps.c // handles team for a fps game
team_rpg.c // handles team for a rpg game

The AI Language ?

@PHP open tag : <?php

@PHP echo string : echo "hello free game dev comunity";

@PHP close tag : ?>

This will make it very easy to output : string hello word -> miss something

AI Structure back trace ?

Handle file and variables dependency automaticaly for us. Back tracking what is being included and where.

variable red_team -> declared at main
called in : teams, game, network.

notices :

-> Possible error at game
-> slow performance at network.

Include pre build Library's packages ?

Art" a thing that will be possible will be to have game ready Art, In a ready to use packages. Instead of we all updated this stuff, search, and create or own library's we have a ready structured library that speed up this process.

3D characters (open source)
3D characters (Paid)
3D Tree's desert (open source)
3D Tree's tropical (open source)

Build in tools : Screen play & character creation & Name generator ?

We could also have more built-in tools, to speed the process of creation the game concept, like a proper name generator, a character stats and list generator that will be game ready.

A example: You insert your list of spells in the program, and once you are ready for production click in generate file and it generate the production programming file ready to be used in the game. This will minimize mistakes and debugging time.

The tool interface example ?


The tool will speed up the programming process and other's process's, by having a set of tools available.





Payment ?

Patrons are very popular way to have costume made code. Better to donate for a open source tool then for a engine which even if you buy all lunches and subscriptions you will never have access to the code unless you pay a very high amount of money which is is almost enough to develop a new engine.

help in Development

Is always good to have people helping

Patron

add a Patron page so ppl can contribute with $$; https://www.patreon.com/user?u=16271332

News



Sorry for the delay on news but think any one can understand the current world events. For a long time i was not able to work on the project now grabbing the design again, and correction some contradictions which i already See in some of the posts.

Forum posts is becoming a big havoc, since we can't delete post, stuff become outdated, admins should check that out...

So the news :

Think i will also published The BOX web PHP which i should have done from the beginning; people where reading posts from the the ting and was not online. We can now read and test it out. Was reading forum game dev posts and see people struggling width PHP so i thought that i should have posted that more earlier it may help some which are starting.

Think i will open repository's on other languages.

Lyberta mention C++ and Rust as better options, they might be. But we can do all kind of versions, no need to keep width only one version, to help people working by them self's. Knowledge take time to acquire. If you have that knowledge for that's nice.

One think, just don't go and make your own repository we all know how will end like Linux : 1000 distro's all working on the same things : environment software, install tools, etc... big wast of work we only need 1 or 2 good tools or distro's.

So we can have like this in Git HUb:

The Box      - C++
"                 - Rust
"                - Python
"                - C
"                . Lua
!                 - PHP (This one is a bit different since it was another project, need to updated in it own purpose.)

Lyberta say he was going to quiet open source, if any one have is contact tell we can start to do it in C++ also. For what i read C++ have the code all properly organized, the down side I mention in other posts, is nested stuff we will not get that much performance as in C. But the bad part of C is require a lot of knowledge, so he kind in a non evolving much situation +-.

[b]If you need any repository in other languages just say, not going to open them in advanced since people may change their mind since things have taken so much time to be updated.[/b]


Now we are going to see the new design:

 I was graduated in Multimedia but my curse didn't mention well on the Design so i was struggling a bit; assumed the information they passed me was correct  or enough. Found  a book and i buy it's on design and explain essential principles which we need to do the design at a minimal level. Do and do it width out many afford. The design Is Now evolving pretty fast, no longer wasting many time in the design details...

Lets say you open a repository for your favorite language and where do you start? (Finished the design on the project.txt mapping file which hopefully be kind of standard for open source projects.)

You can start by create the project tool, to create and edit the file. How does it work? It map all things inside our project, it's like a Make file used in compiling but in here instead is used for the project.

Not covering all; you can see it in the image, but for example : project online is just a matter to edit the file and put it online. Fix a broken div or partition of the interface; if it is register in the file project and some one inside the code delete by mistake it will enforce a left panel for links for example and so on...

Will see lather what can update, is a lot of work as you can imagine...



Standard programming - Master DB

Projects repeat things in the Data Base. For example users is something that is repeated for many aplications since all need to login. A master DB for users remove a lot of redudancy.

- standard programming names ( to add information on how things are done where used, etc...)

- librarys ( to manache the information on compiled librarys on C)

though in adding a master db to our projects this will have the stuff that repeats, you can use it for any project. Will contain :

[b]Master DB[/b]

- Users (general information)
- Bans (kind of bans get)
- apps (application where the user is register)

[b]Your DB[/b]

lets say i'm register in : the box, this forums game dev. just add this to the apps. No point in adding a user management part to all of our dbs.

The files Still very raw is just to keep updating, (maybe chance also the style lather)...

Instead of "doing large posts" adding the information to the files it will be much more organized, and prevent going forward and backward in the posts for the details.

Friday, June 2, 2023

Files, Unit Tests, Macros, Interface


 

- As mention on previous post from now on all things will be on files. Only a few things will be debated and  updates to files will be refereed.

- Unit tests are a new thing and it should be present on any professional code, if you don't have unit tests your code is very limited. The explanation for Unit tests is very simple is a function to call another function to make tests : string_copy() , ut_string_copy(), 2º should call 1º. Is so simple don't know why people don't adopt it. Prefer to search for bugs which will take a lot of time.

- macros The header files are mainly for macros, which as is explained by professionals is not .c it have other type of rules. It resume C code in to a more mathematical form.

- interface found! this very nice code for the interface. is simple and very professional. It will be in the interface.c. It can be used on small projects .

- Since will be adding and working width the files will explain them in here.


Files: (just overview)

Macros.h (many things are macros .h and not .c code. people confound pre processor and C rules)
general_manipulation.c (the code in one library, so we can edit and make improvements to code)
standard_variables.c (separation of variables, it could be in general manipulation but if you don't need any of that functions, is ready to use to another file like in OOP)
str.c (rules for the str files, if you need another is separeted)
db.c (db functions)
css.c (rules for css)
progs_learn.c (prog examples to learn)
definitions.c (separate definitions in to one file to make more manipulation)
ut_general_manipulation.c (unit tests for general manipulation
interface.c (interface parts, width code)
the_box.c (the box functions).

Ps: time limitations prevent to add all things will be just the interface and unit tests.

First Tools and The 1.x Series



For the first version of the 1.x series which is a working series plan to have a couple of tools working; In previous post a 0.x series was just do demonstrate how things where doing it was not working. Since now my knowledge in C grow a bit we are going to have a functional series of 1.x. 

 

We can't start with all tools which is to much work, so planning to have a basic set of tools for the 1.x series. Think will update like : 1.0.x since will be adding stuff to the same series; For the 2.x the plans is to have all the tools in the main software now they will be separated in it's own folder, working independently.

the_box\progs

The amount of tools designs are roughly 100. Some may be lather absorb in to others, others may be extend. It have become a very large project width out founding and partners at the moment.

 

The basic set of tools will be :

 

Links - Mange links in a more robust way, we can access link, and post them online. Share your things widths you can search online but without being spammed width publicity in top 10 sites; information is half by explorers and not professionals and most likely some one abusing your private information. Of the clicks you make.

Tasks - Administrate task, at this stage it does not involve planning.

Notes . Add notes wchih can lather be incorporate in to other tools.

Commands - List of commands to prevent having to writte txt files width them, so they can also be updated by the community (if we can get a server)

Console - Console evolve a bit it now is working width all the stuff posted before, know it was a bit of mess because i was posting and working on the same time. So the information seem a bit diluted. 

Project - The creation and edition of the project width a tool + a file.

Lore - It was announce very earlier is a tool to add the environment aspects to a project

Code Editor  - 

Text Editor - 

File Browser - Didn't though in starting width this tool, but once the code is working maybe is not that hard.

 


 

Standard programming : Files & Folders Structure

Standard programming now includes a lot of stuff. It start just by affecting variables but now have extended to other parts of the project.

 Often the projects have a big mess in the folder & files structure.

One of the things in standard programming is to represent the files in the folders. A folder that contain include files should be named "includes" we can't read it other way :

The Box folder structure->

    Abstract -> a folder to have sub includes files, they often have some kind of data or functionality.
    Includes -> Normal includes people mix them width macros, but many things does not need to be in a header file.
    Headers -> It could be renamed to macros, but for now is just headers. Trudly header files that contain macros mainly. Macros and header files are pre processor you can only gain performance width them.
    Progs -> Standalone option for the main this will easy development. Cause less bugs, to develop things separitly and if need to load less stuff.

   Data -> To store our dinamic data 

   Projects -> Other stuff we do

The structure is becoming very redable...

This way we do not need study the project structure which is time consuming. Lets imagine you have to read 1000 projects on git hub what kind of projects will you prefer to study? A time saving option, width folders representing what it's inside.

Think in putting some files,


The Box Script

Is a alternative to web scripting, see if i will end updating it to programming...

It's 2 or 3 times more modular then the web stuff we have today. Is not actually a script but just rules, we load it to C and he creates the things for us. Is mainly to create a graphic environment.


1 - we can work in any amount of projects in the same file (project=the box)
2 - it does not uses extensions they are declared (image_extension=jpg,png)
3- reuses code parts (line_id)
4- it have security enable checks (security=ask)
5- load text from files in to it (element=10)
6- the end of line is at the begging and not in the end bullets like style ( tbs -> )
7- in theory could support other languages but i don't know if it will happen (css, html, js, php, C# ->)
8- tags stack (id=sub_menu, id=main, level=2, block=list, text_id=text)
9 - it have levels (level=2)
10 - at the bottom you can see other language code how is incredible they are much more complex...
11 - Loading order is organized by order tag "order=1, order=2", to arrange thing for us. (is decimal in case we need to re- organize 1,2 ... 1,7 without the need to change others)

basically one while loop organize the rules and the 2º loop construct it is very simple. Think in putting it to work in just a html server it just need text to work...

while(1) // organize
{
project the box
order =
level =
line_id =
id =
blocks=
text=

project Medivel titans
order =
level =
line_id =
...

Project Eva project
order =
level =
line_id =
...

}

while(1) // assemble
{
the box
load images
load windows
load text
load models
load templates
load modules
...
}

What is happening in the examples:

- we are reusing a login/register throw 3 projects, the_box,eva project, medivel titansl.
- we doing auto querys to the db
- We have web script width real time security
- Call on effects functions
- we have losse programming if you want to add something at the begging to the box project, and lather call the other two projects, you can re assign the box project again in a 2º time and continue to do things.
- we don't have large amount of text in the file is coming from other files throw element= tag, we can have titles, sub titles names, etc... any text... but if not needed is not inside. Make the file really small.
- define in the script amount of pages or item per page
- tags for other languages : C#->, PHP -> normal or composed, C#, PHP, TBS -> a line that support multi programming languages, (could generate more errors)

*some things still need more work like how templates, modules inter act and programing at this stage did only most web things.

The rest you can see for your self...

Ex:

tbs -> project=the box
tbs -> current_page=boot
tbs -> version=1.x
tbs -> img=logo order=1
tbs -> project_folder = applications/pages/the box
tbs -> assoc_keys=
tbs -> file_link=articles
tbs -> image_folder=
tbs -> icon_folder=
tbs -> image_extension=jpg,png
tbs -> torrent=8A5148D6306606F5250F8E14AC7657FC9012A520
tbs -> tile=the box
tbs -> id=main, items_pages=10
tbs -> autor = jdc
tbs -> email = eva.project.dev@gmail.com plex
tbs -> link = https://thebox0.blogspot.com/?zx=8aeda2665c691d35
tbs -> db=users, db=articles, db_query=all store=db_articles
tbs -> link_file=icons store=icons elements=all
tbs -> allow_commads(), effects
tbs -> id=all, space: m 10, p 20, text_translate(),
tbs -> id=main, type=box, level=1, text_id=text1
tbs -> id=sub_menu, id=main, level=2, block=list, text_id=text
tbs -> id=right_menu, id=main, level=2, block=list, text_id=text
tbs -> id=links
tbs -> id=effect_hover, block=effect, level=3, script=hover_effect
tbs -> id=sub_menu, text_replace(), text_translate(),
tbs -> id=login_menu, user_login(), user_register()
tbs -> page=login, page=register, page=main, level=2
tbs -> page=boot, level=1
tbs -> open_file(), security=ask
tbs -> array security=
tbs -> url= redirect=no security=1
tbs -> text= the box , order=1, text= software development tool order=2
tbs -> id=main text= web site dedicated to make posts on the software
tbs -> line_id=1 list=Link1, Link2, Link3

tbs -> file_link=articles element=10

tbs -> order=5 display=list title= Downloads, Media Fire text =

Preferring "Media fire" over other projects, like Github you have to upload file 1 by 1 which is very pre history for computares and software capability today. Another issue you can't have empty folders or move large amount of files in your project, you have to move them 1 by one. Can't delete folders, you have to remove files for it to disappear. And you guessing how you remove files for it to disappear? Maybe you guesses correctly again you have to remove files 1 by 1. Insane work! It is not possible to administrate a large project like this moving files 1 by 1. There is a lot of editing to be done.

Why not use the tool for the page? They maybe attempt to attack again : why use this wired tool when you have FTP's services for like dozens of years. In computeres that's a lot. Like from the 1920's or so we have FTPS services.


tbs -> line_id=1

tbs -> order=5 display=list title= Downloads, Media Fire file_link=articles element=2

img=project_tool

tbs -> project = tides of time

tbs -> title=tides of time

tbs -> button= login, register

tbs -> password, re-password, user name, translation=all

tbs -> icons=gold,food,

tbs -> links= Characters, Attack, exception= on page-tides of time remove=characters, attack

tbs -> clock=4m

tbs -> project=medivel titans

-> line_id=1 (links)

tbs -> project=eva project

-> line_id=1 (links)

-> structure= math lib
-> structure= standard variables

-> module= player

-> module= map

-> script = attack if=range<200

-> template=a1

-> JS-> snyppet = javascript

-> map=level1

->graphics=opengl 2.0


php, C#, Css, HTML, Js ->


------------------------------

css -> p {margin-top: 100px; margin-bottom: 100px;}
html -> <div id="main"><ul><li> a </li><li> b </li><li> c </li><li> d </li></ul></div>
js -> let x = "Volvo" + 16 + 4;
php -> echo strlen("Hello world!");
C# -> using System;

namespace HelloWorld
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello World!");
}
}
}
Java ->

public static void main(String[] args) {
Main myObj = new Main(); // Create an object of class Main (This will call the constructor)
System.out.println(myObj.x); // Print the value of x
}


$(document).ready(function(){
$("p").click(function(){
$(this).hide();
});
});

New Programming Language


Linked vs Math Languages


Doing a bit of research on how to build a programming language to fit this new style, and to put things to work like the layer, a method debated a few posts before. Which inside the programming language is not that easy to make. Some things are better to develop on a new programming language.


One think that i was looking at programming languages and notice they are heavyly matematical. If you don't like math, well you are in trouble. But since programming does not need to be mathematical since it is related to though can be linked.


This is the progress that i made. We simple just not declare variables but also all there propertys, a bit like OOP but just in variables. We use diferente simbols to instanciante and declare. Because it may contain functionality. 


The code will drecrease like "30" lines to just 3?


Function - operatores, and funcionality

Relations - how is related, to declare arrays and list

Connections - declaring scoops, like put a variable inside a function width out putting it there manualy.


ª declare

& call

º override


* this = is updated to just - . The other one is a operator, which is a bit ilogical to be in the code declarations.  


Index for declaring variables :


Simbol, name,  type , size, error , function, relations, connections




[code]


Declare


ª, array_names , array , 255 , "array_name invalid", array_add(), "" , "";

ª, counter , int , bool , "counter invalid", ++; max 100 , "" , "";

ª, LOOP, function,

ª, repeat, int , bool , "counter invalid", repeat , "" , "";

ªarray_names - "lyberta", "scamerson", "dread knight", "ninja".


Logic


%repeat,

&counter,

&print,


[/code]

The Structure - Build & Deconstruct



The structure will work as a operating system. Will add stuff in to the structure and remove it . 

We will have 2 methods,Build (named to not repeat any stuff) and Deconstruct. 

In the example we are going to see a simple method to build a math.h library in to the install list, and a over view of the installed things. also the deconstruct to uninstall the library. This is under develop things may change but think you get the point how we can do all this stuff width just command width out using any graphical environment.


The possibility's to the Build & Deconstruct methods and very large. In here i'm just touching the surface.


My seem a bit redundant but maybe you are not seeing the possibility's. Less people programming, accessing others build methods, find faster the dependency's and errors, manipulate the project without touching the code, etc...


[code]


int build_math_lib ()

{

structure_includes_amount++;

structure_abbreviation = "LIB";

structure_name = "math";

structure_includes = "#include <math.h>";

  structure_dependency's = {"exp", "double tanh"...};

structure_files = {"simulator", "RTS"};

return 1;

}


int deconstruct_math_lib()

{

structure_includes_amount--;

structure_name = "math.h build in";

structure_includes = "#include <math.h>";

structure_dependency's = {"exp", "double tanh"};

structure_files = {"simulator", "RTS"};


        return 1;

}


[/code]


Structure over view : 


Example of a structure list

Structure

name : The Box

includes : 100

files : 500

functions : 300

variables : 1000

dependency's : 2000

Installed :

lib math (battle_simulator, main, calculator)

lib string ()

lib limiths

lib stdio

lib stdlib

lib time 

lib standard_variables

lib standard_variables_game

lib standard_functions

lib standard_functions_game

script player_move

window 3D enviorment

sound wave

sound ogg

img JPG Compress

img JPG 

img PNG

OS Linux bindings

OS Windows bindings

OS  bindings  

DB mysql

DB mongo

DB Script


I wanted to do a DataBase master for users which i mention on a post before. to avoid including again the users. Now i came up width a design for it. The result seems pretty surprising. If it works will be the highest level achieved in programming languages. Your program will become completly modular, you can updated to any thing you want.


It mixes: procedural, objects, db's, data, programing, interface. script, graphics, administractiom, All things in the same file. So in the same file we have the prototypes and the declaration or instances. The prototype is the "Master DB" a diferent format and in the others we have the information. You can update your databse in real time, convert the project to online width a few clicks, and the possibilitys for the program to evolve are unlimited.


It's hard to explain it in pratice because you can improve it to any thing. Now it have this state, but lather can be much better relational. But these is enought to discribe. We have 3 parts: operators logic for the master DB ;  Master the prototypes, and 3º Instances. Think is the best design of those i'm doing.


It avoid a lot of problems, like fails in the db, not be able to desin when coding, program become to heavy in a earlier stage, coding to much while just desiginig, and so on, etc... The design can achive all parts that you need and the sintax is very simple.


example : a Ultima Online skill, named "status" it as a name and a max value of 100 in a decimal format and a Operator :  Status : name, float value (max=100)


DB script :


Operators


max - a int or float value can't go above max


DB Master


User : "user_id", "user_name", "user_password", user_email, validate_account, 

Abilitys : name, min_effect, max_effect, effect

weapon :  name, min_damage, max_damage, ability

Armor : name , armor, type

Building : name, armor,

Vehicle : name, armor, damage, ability

Character : profession, speed, ability

Tool : name, language,  function

Equipment : name, min_effect, max_effect,

Status : name, float value (max=100.0)


DB The Box


Tool : standard variables, C, hieraquy 

Tool : search engine, C, main

Tool : search engine, C, main


DB Medivel Titans


weapon :  long sword, 8, 14

weapon :  Axe, 1, 24

weapon : wand, 1, 8, healing

ability : wand healing, 1, 8, + health

Vehicle : wagon, 100 , 1-10,

building : tower, 400, 0, 



DB Eva Project


Character : gazer, 0 , 

ability : wand healing, 1, 8, + health

Building :

Vehicle :


DB Ultima Online


status : strenght, 1 

status : bard, 0.0 

status : swordmanship, 0.0 

status : axe, 50.0 

status : alchemy, 0.0

Added this object : file_map.h



it connects stuff for us inside the software

To Implemented auto generation of projects

 Connected and linked files inside our project could be used in the mappper tool (in development). A more advanced connections or all connections in one place. In here it is used for development. We don't need knowledge on "framework" it kind know that for us.

Another placed is used is in the tutorial tool . For example we could know what files are using this tutorial. It connect a tutorial to files that are using that kind of theme.

Auto generation of projects also used : so we know what we need to include, and what kind of functionalitys, If we create a simple program that needs : a interface, text, math, operating system. The software knows what that files are and do to include and connect to mount the software.

[code]
file_map.h

char file_name;
int file_hierarchy;    // order of include;
char file_functions[];     // functions it uses
char file_functionality; // what it does
char file_dependency's; // what it inherit
char file_theme; // the theme of the file or object "colors"
char file_operating_system;
char file_description;
char file_tutorials;
char file_types; // what kind of data it handles, jpg, models, etc...
char file_structure // where is loaded from or group of files, example : application structure
char file_description  // loads the description from the file.  

[/code]

The other part is to store. We store stuff in the .txt files so we could also map a library used in C. External library, or a piece of code, from some kind of framework. It probably need also to link external files. If the framework is installed. We also could add parts of external code to our program.

hi

Rules

Rules, Steps & methods This is the current way to implement and be implemented but there could be more things to add : Root or loader  (...