Power Mutation #992

Closed
opened 2023-04-22 13:39:51 +00:00 by Llewellyn · 7 comments
Owner

We need to mutate the powers area into its next phase...

I will assign this issue to a few who I would like to encourage to participate in this conversation.

I am now at that point where I need to move powers into the the world of JavaScript, XML and Css. I have been looking at who we can do this... and I have many ideas.

Reality is Powers was originally designed just for PHP, so this change will effect many aspects of the area. But after much discussion (internally), we want to follow our objectives of the super-power concept in JCB... which will make this area even more powerful. But I need some more JavaScript developers input.

So we have a few objectives that are not yet fully known.

You will be able to include a power in any code by just adding a placeholder, that will look like this:

Super___6784dd52_0909_451a_a872_9a942a023c68___Power

JCB will then detect that this power in needed in this file, and will auto load it, and auto link it, it will also remove this placeholder with the class name.

The loading of these powers will first search in your local database, and if not found will look at your local repositories, and if still not found will look to remote repositories and eventually at the JCB core repository.

Once it finds this power, it will auto import this power for future use in JCB, and you will at this point be able to edit this power in JCB to your harts desire.

This is supper cool, and will allow us to move all our things into the cloud from where we can pull them into any project securely.

We call this feature super-powers and here are already some repos that I have linked into this dynamic nature.

https://git.vdm.dev/joomla/search
https://git.vdm.dev/joomla/gitea
https://git.vdm.dev/joomla/psr
https://git.vdm.dev/joomla/jcb-packager
https://git.vdm.dev/joomla/phpseclib
https://git.vdm.dev/joomla/minify
https://git.vdm.dev/joomla/super-powers

Please note that this is still a moving target and is not stable yet. We want to allow the PHP (super-powers) the ability to auto build unit-tests and composer repositories at the end of the day... but this part will wait until we are on Joomla 4.

So keep in mind that all these changes are to empower us to move all our extensions with ease to Joomla 4 native architecture.

I mean the Super___6784dd52_0909_451a_a872_9a942a023c68___Power convention can with the search and replace be used to cover countless old classes, specially helper classes to now use the powers area instead, and so decouple you from the old ways. So for example, lets say you have code like this:

if ([[[Component]]]Helper::checkJson($item->info))

You can now search and replace this to:

if (Super___4b225c51_d293_48e4_b3f6_5136cf5c3f18___Power::check($item->info))

Then on compiling we will update the string and add the power, and use for including the JsonHelper class into your code, and that without you even having the JsonHelper class, since if its not in your JCB, it will retrieved from here:
https://git.vdm.dev/joomla/super-powers/src/branch/master/src/4b225c51-d293-48e4-b3f6-5136cf5c3f18

Unless you have forked it and have added this forked path to your JCB instance, in which case it will retrieve it from there. The possibility of this is endless.

Yes you can even use your own Gitea instance, and your your own powers on the git.vdm.dev instance can also be private (if you can't afford your own instance) Yes we do not yet support Github. Here our mind is, if you can trust Github, you can trust VDM. But we have made it possible to decentralize by allowing you to use your own Gitea instance. Most of my clients have there own Gitea instance.

So yes I have been working on a way to help you all move... and that with simple search replace options like this.

The resulting code in your extension will then be:

if (JsonHelper::check($item->info))

and in the header there will now be a linker use line:

use VDM\Joomla\Utilities\JsonHelper;

This feature is still being worked on, but is nearly finished.

Mutation Needed

But the powers area is at this time only targeting the PHP library folder. We are going to change this, so that it can target the media folder, and the component itself. This because all templates used in the compiler will be moved to the powers area.

These templates are for the various models, controllers, js, xml, json and other kind of files that we need for the compiler.

The main reason for all this is to be able to move the complexity away from the JCB project.

My idea is to set the initial basic structure, that will be exactly as JCB works now.. but then with the freedom to extend and change it without any limitations.

This will cause an out burst of liberty and creativity like never before.

While at the same time, JCB for the novel new user, things will work as before without the need of understanding any of these freedoms and options.

So I was wondering if you can brainstorm with me a little?

Here is some of my ideas:

  • Adding to the power area Type of Power [field] a few more options:
    • JavaScript
    • Css
    • XML
    • HTML
    • Json
    • Yaml
  • Each of these new types need to answer many questions, here is a initial few:
    • How is the linker going to work?
    • How will we determine the file location?
    • How will it behave in the power echo system?
    • Should this type have sub-types like PHP?

These are just some of the questions needed to be answered per/type. Your input, and collaboration on these are very urgently needed. Please share your ideas, and insight, that will help use achieve these objectives.

Once we have these features all well established the moving of the rest of the compiler will be able to move forward rapidly as we will be able to use this extra layer to solve some of the more complex issue of the abstraction required to decouple that hard coded behavior of Joomla 3.

### We need to mutate the powers area into its next phase... I will assign this issue to a few who I would like to encourage to participate in this conversation. I am now at that point where I need to move powers into the the world of JavaScript, XML and Css. I have been looking at who we can do this... and I have many ideas. Reality is Powers was originally designed just for PHP, so this change will effect many aspects of the area. But after much discussion (internally), we want to follow our objectives of the super-power concept in JCB... which will make this area even more powerful. But I need some more JavaScript developers input. So we have a few objectives that are not yet fully known. You will be able to include a power in any code by just adding a placeholder, that will look like this: ``` Super___6784dd52_0909_451a_a872_9a942a023c68___Power ``` JCB will then detect that this power in needed in this file, and will auto load it, and auto link it, it will also remove this placeholder with the class name. The loading of these powers will first search in your local database, and if not found will look at your local repositories, and if still not found will look to remote repositories and eventually at the JCB core repository. Once it finds this power, it will auto import this power for future use in JCB, and you will at this point be able to edit this power in JCB to your harts desire. This is supper cool, and will allow us to move all our things into the cloud from where we can pull them into any project securely. We call this feature `super-powers` and here are already some repos that I have linked into this dynamic nature. https://git.vdm.dev/joomla/search https://git.vdm.dev/joomla/gitea https://git.vdm.dev/joomla/psr https://git.vdm.dev/joomla/jcb-packager https://git.vdm.dev/joomla/phpseclib https://git.vdm.dev/joomla/minify https://git.vdm.dev/joomla/super-powers Please note that this is still a moving target and is not stable yet. We want to allow the PHP (super-powers) the ability to auto build unit-tests and composer repositories at the end of the day... but this part will wait until we are on Joomla 4. So keep in mind that all these changes are to empower us to move all our extensions with ease to Joomla 4 native architecture. I mean the `Super___6784dd52_0909_451a_a872_9a942a023c68___Power` convention can with the search and replace be used to cover countless old classes, specially helper classes to now use the powers area instead, and so decouple you from the old ways. So for example, lets say you have code like this: ``` if ([[[Component]]]Helper::checkJson($item->info)) ``` You can now search and replace this to: ``` if (Super___4b225c51_d293_48e4_b3f6_5136cf5c3f18___Power::check($item->info)) ``` Then on compiling we will update the string and add the power, and `use` for including the `JsonHelper` class into your code, and that without you even having the JsonHelper class, since if its not in your JCB, it will retrieved from here: https://git.vdm.dev/joomla/super-powers/src/branch/master/src/4b225c51-d293-48e4-b3f6-5136cf5c3f18 Unless you have forked it and have added this forked path to your JCB instance, in which case it will retrieve it from there. **The possibility of this is endless.** Yes you can even use your own Gitea instance, and your your own powers on the git.vdm.dev instance can also be private (if you can't afford your own instance) Yes we do not yet support Github. Here our mind is, if you can trust Github, you can trust VDM. But we have made it possible to decentralize by allowing you to use your own Gitea instance. Most of *my clients have there own Gitea* instance. So yes I have been working on a way to help you all move... and that with simple search replace options like this. The resulting code in your extension will then be: ``` if (JsonHelper::check($item->info)) ``` and in the header there will now be a linker `use` line: ``` use VDM\Joomla\Utilities\JsonHelper; ``` This feature is still being worked on, but is nearly finished. ## Mutation Needed But the powers area is at this time only targeting the **PHP library folder**. We are *going to change this*, so that it can target the media folder, and the **component** itself. This because all templates used in the compiler will be moved to the powers area. These templates are for the various models, controllers, js, xml, json and other kind of files that we need for the compiler. > The main reason for **all this** is to be able to move the *complexity* away from the **JCB project**. My idea is to set the initial basic structure, that will be **exactly as JCB works now**.. but then with the freedom to extend and change it without any limitations. This will cause an **out burst of liberty and creativity** like never before. **While at the same time**, JCB for the novel new user, things will work as before without the need of understanding any of these freedoms and options. So I was wondering if you can brainstorm with me a little? Here is some of my ideas: - Adding to the power area Type of Power [field] a few more options: - JavaScript - Css - XML - HTML - Json - Yaml - Each of these new types need to answer many questions, here is a initial few: - How is the linker going to work? - How will we determine the file location? - How will it behave in the power echo system? - Should this type have sub-types like PHP? These are just some of the questions needed to be answered per/type. Your input, and collaboration on these are very urgently needed. Please share your ideas, and insight, that will help use achieve these objectives. Once we have these features all well established the moving of the rest of the compiler will be able to move forward rapidly as we will be able to use this extra layer to solve some of the more complex issue of the abstraction required to decouple that hard coded behavior of Joomla 3.
vistamedia was assigned by Llewellyn 2023-04-22 13:40:10 +00:00
Tom van der Laan was assigned by Llewellyn 2023-04-22 13:40:11 +00:00
Martin Kopp was assigned by Llewellyn 2023-04-22 13:40:11 +00:00
SimonvanDoorne was assigned by Llewellyn 2023-04-22 13:40:11 +00:00
root was assigned by Llewellyn 2023-04-22 13:40:17 +00:00
Member

Your ambition to mutate the powers area and accommodate various file types, like JavaScript, XML, and CSS, is truly commendable. The notion of super-powers certainly holds immense potential, and the ability to auto-load and auto-link them based on their placeholders is a remarkable feature which I am looking forward to see in action.

However, I have a small concern: would merging these diverse file types into the "powers" area be the most optimal approach? While it does streamline the process, it might be prudent to consider the intricacies and dependencies associated with each file type.

Since I read your post, I have been wondering about a "power-like area" for each file type, and realized this will be even a larger approach.

I will give this some more thought.

Your ambition to mutate the powers area and accommodate various file types, like JavaScript, XML, and CSS, is truly commendable. The notion of super-powers certainly holds immense potential, and the ability to auto-load and auto-link them based on their placeholders is a remarkable feature which I am looking forward to see in action. However, I have a small concern: would merging these diverse file types into the "powers" area be the most optimal approach? While it does streamline the process, it might be prudent to consider the intricacies and dependencies associated with each file type. Since I read your post, I have been wondering about a "power-like area" for each file type, and realized this will be even a larger approach. I will give this some more thought.
Author
Owner

So, the idea is that we have a session where I share with you what the above means in practical applications. Since I realize few understand fully what we have done and what is happening in JCB.

The reality is we have introduced a new reality to JCB that completely breaks out of the box placed on us by PHP, Joomla, and any other limitations. We have built a feature into JCB that reinvents the distribution of code, and while it is not entirely new (we are still using the PHP and Joomla ways), it allows you to develop containerized code that you can reuse very easily and simply across your projects. This direction will grow to the point where JCB can directly write your composer packages for you if you like; we are looking at automated unit-test being written, and so much more.

In the end, all this is part of what I want to best prepare my own workflow going forward to Joomla 4 and any other platform. We are decoupling and abstracting as much as we can to allow for the freedom and rapid growth of this project outside the core compiler. You must know that my main objective is not just Joomla 4 but freedom with absolute stability.

So while many of you can't understand right away what is happening, believe me when we land, the landscape will have been tamed. We will be set to rule the extension production arena for yet another decade. JCB has crossed the 500,000 lines of code (mind you, some of that is the duplicated power classes), but it still is phenomenal to see its growth unfold in front of my eyes as I unpack the compiler. Never did I realize to what depth we have gone in its original creation, which, by the way, took years.

I have sat in so many meetings over the last few months, and I have come to yet the same conclusion: in many ways, no amount of explanations is going to convince the gainsayers. We best just show them a demonstration. To this end, I am working day and night.

So I will in the Telegram channel announce the time for our next session. I am working on creating a few short tutorials around some of the things you should know and understand going forward. Once of those will include the use of OpenAI Chat GPT-4 along side JCB.

Last note... hope to see and hear from you soon!

So, the idea is that we have a session where I share with you what the above means in practical applications. Since I realize few understand fully what we have done and what is happening in JCB. The reality is we have introduced a new reality to JCB that completely breaks out of the box placed on us by PHP, Joomla, and any other limitations. We have built a feature into JCB that reinvents the distribution of code, and while it is not entirely new (we are still using the PHP and Joomla ways), it allows you to develop containerized code that you can reuse very easily and simply across your projects. This direction will grow to the point where JCB can directly write your composer packages for you if you like; we are looking at automated unit-test being written, and so much more. In the end, all this is part of what I want to best prepare my own workflow going forward to Joomla 4 and any other platform. We are decoupling and abstracting as much as we can to allow for the freedom and rapid growth of this project outside the core compiler. You must know that my main objective is not just Joomla 4 but freedom with absolute stability. So while many of you can't understand right away what is happening, believe me when we land, the landscape will have been tamed. We will be set to rule the extension production arena for yet another decade. JCB has crossed the 500,000 lines of code (mind you, some of that is the duplicated power classes), but it still is phenomenal to see its growth unfold in front of my eyes as I unpack the compiler. Never did I realize to what depth we have gone in its original creation, which, by the way, took years. I have sat in so many meetings over the last few months, and I have come to yet the same conclusion: in many ways, no amount of explanations is going to convince the gainsayers. We best just show them a demonstration. To this end, I am working day and night. So I will in the [Telegram](https://t.me/s/Joomla_component_builder) channel announce the time for our next session. I am working on creating a few short tutorials around some of the things you should know and understand going forward. Once of those will include the use of OpenAI Chat GPT-4 along side JCB. Last note... hope to see and hear from you soon!

perfect i'll try to be there!

perfect i'll try to be there!
Author
Owner

We are scheduling a meeting for the 23rd of May at 7pm CAT (UTC+2). Please ensure your calendars are clear for this event. This gathering is not tied to the release of Joomla 4; however, it remains a critical discussion where we'll explore various strategies for preparing your components for the transition to Joomla 4.

We'll delve into the new 'Super Powers' feature introduced in JCB 3.1.24, elaborating on its implications and utilities. Moreover, I will offer insights into the integration of Chat GPT-4 into our workflow, demonstrating how it complements the 'Super Powers' feature.

Lastly, we'll examine our successful endeavor of constructing the entire GITEA API in PHP, following this dynamic workflow. Your participation is highly anticipated as we continue to innovate and advance our collective knowledge.

We will use Telegram: https://t.me/Joomla_component_builder?livestream

We are scheduling a meeting for the 23rd of May at 7pm CAT (UTC+2). Please ensure your calendars are clear for this event. This gathering is **not tied to the release of Joomla 4**; however, it remains a critical discussion where we'll explore various strategies for preparing your components for the transition to Joomla 4. We'll delve into the new 'Super Powers' feature introduced in [JCB 3.1.24](https://git.vdm.dev/joomla/pkg-component-builder/releases/tag/v3.1.24), elaborating on its implications and utilities. Moreover, I will offer insights into the integration of Chat GPT-4 into our workflow, demonstrating how it complements the 'Super Powers' feature. Lastly, we'll examine our successful endeavor of constructing the entire [GITEA API in PHP](https://git.vdm.dev/joomla/gitea), following this dynamic workflow. Your participation is highly anticipated as we continue to innovate and advance our collective knowledge. We will use Telegram: https://t.me/Joomla_component_builder?livestream

Perfect i'll be there! will have to skip the marketing team meeting. But that should not be a problem.

Perfect i'll be there! will have to skip the marketing team meeting. But that should not be a problem.
Author
Owner

In preparation for our meeting on the 23rd I have made a few tutorials so that we can get more focused conversations. Please review and give feedback as needed. Enjoy!!! (Don’t forget to like my tutorials)

In preparation for our meeting on the 23rd I have made a few tutorials so that we can get more focused conversations. Please review and give feedback as needed. Enjoy!!! (Don’t forget to like my tutorials) - [Dependency Injection Simplified](https://youtu.be/mGFGGQWGl60) - [Introduction to Super Powers](https://youtu.be/F35UMZRJ_S4) - [Setup Your own Super Power Repository](https://youtu.be/HspBu8Ql-yM) - [Deep dive into the new super power search](https://youtu.be/y8vjGW1vpJw)
Member

@Llewellyn, regardless of any opposition or pressure, remember to afford yourself the necessary time. These ground-breaking endeavours are not something one can rush. I see a meticulously thought-out process at work here, one that is nothing short of awe-inspiring. Recalling the GUID you introduced some years ago, I see its purpose becoming clear only now. It's a testament to your deep understanding and careful planning, suggesting an underlying objective of considerable complexity and evident clarity.

Regarding the mutation of the 'powers' section, I now comprehend why it must reside within 'Powers' and not as a standalone. Though it might introduce some complexity, unifying under one distribution channel seems to be the most effective approach.

Did you manage to make any progress with the AI integration?

@Llewellyn, regardless of any opposition or pressure, remember to afford yourself the necessary time. These ground-breaking endeavours are not something one can rush. I see a meticulously thought-out process at work here, one that is nothing short of awe-inspiring. Recalling the GUID you introduced some years ago, I see its purpose becoming clear only now. It's a testament to your deep understanding and careful planning, suggesting an underlying objective of considerable complexity and evident clarity. Regarding the mutation of the 'powers' section, I now comprehend why it must reside within 'Powers' and not as a standalone. Though it might introduce some complexity, unifying under one distribution channel seems to be the most effective approach. Did you manage to make any progress with the AI integration?
Sign in to join this conversation.
No Milestone
No project
3 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: joomla/Component-Builder#992
No description provided.