My response to redllar in previous email is about the same as Andrew Lee. I do agree with Andrew Lee to have more comprehensive configuration ini document. There are still lot of settings that i never play with them yet.
I had more detail response for the second email. The mind map below is the sum up of it. I'll elaborate my mind map later. Take a look if you can get the idea behind it.
As of 8 Nov 2010
In general, if we want to produce a product we must know the process flow. Yes, process flow is the critical thing we must identify first before we design/built any tools for creating a product. Baking a cake, making car, producing oil etc.. All of them require identifying the process flow first. The same case should also be applied to portablizing an application. Our product now is a portable application. Before we discuss a suitable GUI for JauntePE, allow me to make a study on the portablizing process flow.Portablizing Process Flow
So, what is the process flow of portablizing an application?
I have been in the world of portable application for quite a time. I start with a simple batch script. Then I learn script launcher (Autoit/NSIS), commercial application virtualization and JauntePE. Based from my experience, I can “see” that all of these tools are basically using the same high level Process Flow
. The high level Process Flow is
- Creating a Project
- Configuring a Project
- Building final Package
From now onward, I will simply call the high level Process Flow above as Process 1, Process 2 and Process 3. Note that there will be two outputs from the process flow; one called Project
and other called Package
. I’m using two different terms to ease the documentation later. A Project is our unfinished product
. It also can be said as a "source code" of the product. A Package is a finished product
. I have mention earlier our product is a portable application.1. Creating a Project
This is where the portable maker identify/collect/understand the required files & registry (component) for the target application. The script launcher & commercial application virtualization AFAIK is normally using a 2 state comparing method to achieve the goal. Exercising the application is done in the middle of the state in order to capture the entire component.
JauntePE however is using more sophisticated method. JPE Quickie redirect the installer in order to identify/collect/understand the required component of the target application. The Project is also exercising under the redirection for further step of identify/collect/understand the component of the target application.
In 0.4.0 GUI, redllar was using term Action
to describe the portablizing process flow. Then he came out with Action Panel to organize the previous The 12 Step Program
. The Action is probably the reason for making 0.4.0 GUI looks to wordy and cluttered. So, I would like to propose the Installing Action
and Exercising/ Discovery Action
to be put under the Creating a Project process flow (as shown in my Mind Map above). “Hiding” those two actions into one process flow will make it neater and we will gain opportunity to create the minimalist GUI. Note that in the Mind Map I also add Option2 as an alternative method (probably in future) for Creating a Project process. IMO, there will be high chance to integrate the Option 2 easily in the future if the JPE GUI is based on the suggested high level Process Flow.2. Configuring a Project
For script launcher, portable maker will start preparing a script for the Product manually based on the snapshot result in Process Flow 1 and also the application behavior observation during the exercising action.
For commercial application virtualization; after completing Process 1 it will ask a user to configure the basic configuration
in the wizard. Then the Product is given a specific set of configuration
based on the wizard as well as snapshot result in Process Flow 1. I stated specific configuration because all application component is set to Full isolation mode by default ie equivalent to JPE [FilesystemIgnore] or [RegistryIgnore] setting. At this stage, a basic user normally accepts the suggested configuration and quickly proceeds to Process Flow 3. A Novice/Expert user however can have their time to modify/change the suggested configuration. Note that the commercial application virtualization Project file cannot be exercise further after completing Process 1 stage.
For JPE Quickie, the Product is given a generic set of configuration after Process 1, normally using _Normal3.ini. But JPE can provide a specific set of configuration (Partially optimized/fully optimized) during final build of Package based on the Discovery mode that it have. Note that JauntePE have advantage over the commercial application virtualization where its Project file can be re-exercise/re-discover back, without a need to rebuilt new Project.
As in the mind map, I put Review Discovery Result element at the top, which is equivalent to result from 2 stage analysis by commercial application virtualization & Discover usage by JauntePE. Configuration process is being split into two elements; one is Basic Configuration and the other is Advanced Configuration. A Basic Configuration consist of compulsory settings that are just enough for a basic user. Advance Configuration will be consisting of all the available settings. The “hidden” Actions behind Process 2 are Re-exercising/Re-Discovery Action and Configure Settings Action. I also add the Import Action in the Process 2 as redllar mention the about the importing feature in the mock GUI of 0.5.0. This could be a new action for JauntePE and will be discuss further later, probably in the 3-Panel GUI topic.3. Building final Package
This is the final stage of the Process Flow. If we look at the script launcher & commercial application virtualization, they normally create 2 type of Package: a Debugging Package or End User Package. A Debugging Package is for testing purpose only and not for normal use. The End User Package is a final package that can be distributed and use normally.
Note that JauntePE’s Project file can be run without compiling it into a Package unlike script launcher & commercial application virtualization. Thus, Debugging Action is possible to be place either at Process 2 or Process 3. At this point I’m not sure which location is better so for now I just place the Debugging Action at Process 3
Edit1: added Portablizing Process Flow>Creating a Project explanation
Edit2: update the latest JPE mind map. Added Configuring a Project & Building final Package explaination