SyMenu Forum

SyMenu

 

Gianluca

all messages by user

30/01/2016
Topic:
Request feature for "Get new apps SPS" window

Gianluca
Gianluca
Administrator
The menu is not dangerous as the configuration form because it is always in read only mode. I think that I should solve this discrepancy not hiding it at all.
31/01/2016
Topic:
Proposition: SPS App name sufix to show her qualit

Gianluca
Gianluca
Administrator
Well I'd like very much if this forum is considered a democratic place where we can talk and we can take decisions all together :-) Often I have the last word only because I'm the only person to have a triple perspective:
- the perspective born from the discussion
- the one forced by the software (intrinsic limits, consistency, time to implement)
- the one suggested by a long time path I'm creating in my mind (yes I'm starting to talk about that with someone but it is too raw to make it public... anyway great things are in project)

The naming convention is appreciable but I have some doubts.
1) I can't understand why the program name should contain the license information. We have a special license field to contain this information.
2) I strongly prefer to respect the original name. So if an author decides that his program is called App why I should call it App Custom if the download comes from my Dropbox area? What if tomorrow the download becomes available from the author web site? Will I change the name?
3) We have a very large library and renaming the already available programs is not good.

Let's see why changing the name of a program is not a good thing.
I create this SPS architecture based on the file system. You have a single file for each SPS. The file name is similar to the program name that is the key to univocally identify a certain SPS. If we change a key, i.e. a program name, we break the chain that SyMenu recognize to propose a program update.

A simple example to explain better this scenario.
In my local SyMenu installation I have the Paint.NET Portable SPS installed.
When I added the Paint.NET Portable (x64) to the collection I should have change the first SPS name in Paint.NET Portable (x86).
But I haven't changed it otherwise in my local SPS list I would have this situation:
Paint.NET Portable - installed and outdated but the SPS Manager doesn't alert me because this branch is dead
Paint.NET Portable (x64) - new available
Paint.NET Portable (x86) - new available, and this is the new branch of my old installation.

In my opinion is not a good thing break a program branch, because otherwise we force the users to lost their configuration to install the new updated branch.
This is a great error I did when I decided to tie the SPS keys with the program names...


To finish.
My vote goes for a strict program naming for every new SPS but I partially agree your proposal.

- Using the original program name. Ok
- (x64) (x86) depending on the program architecture. Ok
- App portable when a not portable version exists. We can adopt it. It's good.
- App custom depending on the repository. Not at all unless before loading on a personal repository, the package has been changed in some way (is it acceptable to change a package in this way??? This is another topic).
- App PortableApps. I don't know, we already give credits to PortableApps in the author field. What are others' ideas?
- License inside the name. I don't agree with that unless the original name already carries some license references (free, lite, adware)
- Avoid shareware and proprietary. I perfectly agree with you.

Another interesting topic is: what do we do when in our opinion another editor publishes a not so good SPS?
For sure please don't publish a duplication. Let's try to discuss about the reasons of both and try an agreement. Our users will thank us!

What do you all think about these thoughts?
31/01/2016
Topic:
Request feature for "Get new apps SPS" window

Gianluca
Gianluca
Administrator
Sorry but this forum is exploding... I hardly succed to give clear reply to all smile
Configuration form and SPS Manager are dangerous to each other because both of them can alter the item configuration. Consequently they can't be active at the same time.
Contextual menu and configuration, contextual menu and SPS Manager can be both active because contextual menu can't alter the item configuration. I have to leave the contextual menu active. Today it is partially active because the floating menu disappears when you open the configuration or the SPS Manager.
01/02/2016
Topic:
The SPS scripting engine

Gianluca
Gianluca
Administrator
Two words about the future scripting engine.

It should work in two different moments:
1) the first slot represents the moment just after the package download and before the "installation" (we know that SPS for real installs nothing...)
2) the second slot represents the moment after the "installation" and before the linkage to SyMenu.

During the first slot I'm thinking to only add commands to unpack the downloaded package. So you can write something like this:

7z {package}
rar {package}
zip {package}
innoSetup {package}
msi {package}
(I know it doesn't exist anymore but it will do)

You can apply the unpacker more than once but you have no other command available.

During the second slot you have the app already copied in the target folder so here you need something more complex.
I'm thinking to limit the commands effect to the app root folder and any subfolders for security reasons. So you'll have a placeholder like {app} to refer to the root folder that must always appear.
You are not allowed to go under the {app} folder.
Inside this folder you have a large availability of commands.
I'm thinking to:

create dir
md {app}\bin\newFolder
rename dir
ren {app}\ben\newFolder {app}\ben\oldFolder
remove empty dir
rd {app}\bin\oldFolder
move/rename file
move {app}\whatever.exe {app}\whateverRenamed.exe
move {app}\whatever.exe {app}\bin\whateverRenamed.exe

copy/rename file
copy {app}\whatever.exe {app}\folder\whateverRenamed.exe
delete file
del {app}\whatever.exe
create empty text file
echo. > {app}\config.ini
create text file with values inside
echo.first value=1 >{app}\config.ini
append values to a text file
echo.second value=2 >>{app}\config.ini

As you've surely observed this is a Windows command subsets. So it is easy to imagine that I'll use the original Windows command to execute the custom instruction after the path conversion. Anyway even if the commands is executed by the Windows shell I'm thinking to forbid the command switches, always for security reasons. So you can only write the pure commands without parameters.

It's only a draft but I'm really interested in you points of view.

Let me know.
01/02/2016
Topic:
Proposition: SPS App name sufix to show her qualit

Gianluca
Gianluca
Administrator
Actually the "Report a broken SPS" born as an easy way for final users that aren't able to download/install/execute a program managed through an SPS.
It's a sort of alarm for us editors to check our SPS and discover what's wrong with it. Usually it's a broken link or the author web site temporarily off line.

The users are starting to use it as an way to have a newer SPS version because the related program has been just released. Great SyMenu users, I love you!!

You are suggesting to use it as a way to directly contact the editor and suggest him to conform its SPS with our rules. Mega great!!
In this way we should reach uniformity in a short time.

It's true, with all these new purposes the label Report a broken SPS is a bit outdated.
What do you suggest considering that the message must be obvious to base users above all?
We can't speak about mail because a lot of editors use a web contact form such as http://contactbyweb.com/
01/02/2016
Topic:
Request feature for "Get new apps SPS" window

Gianluca
Gianluca
Administrator
Yes it should disappear.
In the next version I'll try to solve this problem, plus I will implement a new feature to make the big floating icon hides when you click a little minimize button I add to its surface.
So you can make it disappear even without opening the configuration or SPS or options form. It is useful when you watch something in full screen mode for example.
01/02/2016
Topic:
Sorting options for folders

Gianluca
Gianluca
Administrator
Good idea.
I should add some default filters so you can choose if that folder must be ordered by name, by size, by date and so on. The same feature that Windows Explorer offers.
It's a low priority task but it's inside my list.
01/02/2016
Topic:
New version bug or bugs or misunderstandings

Gianluca
Gianluca
Administrator
smile
I'm only human and in fact my TODO list today counts 94 points... some of them needs at least 2/3 days to be realized. For example think about the SPS Scripting engine: three little words for three days of work.

And I don't put in the TODO list my ideas for the future of SPS...
02/02/2016
Topic:
Moveable divider bar when editing

Gianluca
Gianluca
Administrator
Isn't the bar movable??? It is blocked along with the entire form if you open at the same time the configuration form and the SPS Manager otherwise you can surely scroll the tree.

The font size is already changeable in the Options - Theme. You can use the biggest one, that is really big
http://www.ugmfree.it/SyMenuManual.aspx#Advanced_menu_Options_Theme

Maybe in the future I'll introduce an option to change the font family too.
edited by Gianluca on 12/04/2016
02/02/2016
Topic:
The SPS scripting engine

Gianluca
Gianluca
Administrator
Sure it'll be part of the SPS Builder too.
In this way you'll be able to test an SPS even in the scripting part too.

I agree with you with a more simple system to introduce the file content and a change in command name too. Moreover an optional switch to define the encoding.
Since you'll be able to introduce multiline string we need a way to define a string terminator.

An hypothesis could be to use magic strings.

create an empty file in ANSI
createFile ANSI {app}\config.ini

create a file with one single line in UTF-8
createFile UTF-8 {app}\config.ini
SPSFileContentStart
unique line
SPSFileContentStop

create a file with multiple lines in default encodind (ANSI)
createFile {app}\config.ini
SPSFileContentStart
first line
second line
SPSFileContentStop


I don't like at all using magic strings as terminator but it is a good way to avoid escaping inside the text. If I use double quotes as terminator and you need to put double quotes inside the text the result will be something like this:

"first line
second line
var a = \"test\"
third line"

or worst

"first line
second line
var a = ""test""
third line"

Some other suggestions?
02/02/2016
Topic:
The SPS scripting engine

Gianluca
Gianluca
Administrator
Yes I can but in my opinion this syntax is not elegant.
It's a matter of not reinventing the whell so maybe another syntax, clearer and smarter exists but since I don't know it, I'm asking for something better.
03/02/2016
Topic:
The SPS scripting engine

Gianluca
Gianluca
Administrator
VVV_Easy_Symenu wrote:
BTW attention to the special characters and syntax with the script interpreter and the SPS Container interpreter

Yes you are right I will pay attention with that encoding the entire script before writing into the SPS file. BTW the forum software is not mine smile


sl23 wrote:
BTW, is it just me or is there a problem with this site? text is running off the side of the page and I'm having to scroll right to read longer posts. I never had this issue before. It also happens on my android phone.

I think it's because your previous post where you put a really long line starting with "recent_docs =...". Try to modify it and shorten this line.

sl23 wrote:
Any chance phase one, double unpack, will arrive in the first half of this year?

What? Absolutely not. I hope you can have the entire script engine within the end of March both in SyMenu and SPS Manager.
03/02/2016
Topic:
The SPS scripting engine

Gianluca
Gianluca
Administrator
We were talking about a different thing, the future of the entire SPS architecture. I don't know if I can evern realize that project due to the long time and work required.

The scripting engine is a simply extension of the current SPS schema. Not a big thing.
05/02/2016
Topic:
Request feature for "Get new apps SPS" window

Gianluca
Gianluca
Administrator
I don't understand.
The new and updated status is related to your installed programs or to the SPS at all?

If you intend to point out when an SPS already exists and it has been just updated changing its version, sorry but it is not possible.
The NEW icon depends on the SPS file physical date as VVV_Easy_Symenu discovered and it is not an internal SPS attribute. So I can't recognize if a new SPS is really new or it is a new version that replaced an old one.
07/02/2016
Topic:
The SPS scripting engine

Gianluca
Gianluca
Administrator
Hello guys.

I'm working hard on this new feature and my ideas is becoming clearer.

The first release of the scripting engine will be very simple with only basic features. We have to test it and to check if it is really useful before starting to fill it with several new features.

I'm currently working on the easier part, the script before installing.

The syntax will be easier than that one I have theorized before. Sure, with this approach you'll have less freedom in your scripts, but I absolutely have to grant security to the users. The priority is security, if I can't grant it I'll immediately abort the scripting engine project.

The before install condition is this: we have a just downloaded package that is located in a temporary folder on your PC. SyMenu knows exactly where this package is located and what its name is so you have to specify nothing because it is obvious that you are processing the package.
But you have to instruct SyMenu on what file you expected from the first decompression, because a package could contain more that one file with names different from the container.

Therefore the syntax becomes:
7z | rar | zip | innosetup [relativePathToTarget]

Examples:
7z insidePackageFile.zip
zip packageFolder\insidePackageFile.exe
innoSetup "package folder\insidePackage.zip"


I did some examples with inconsistent extensions among the unpacker and the file (7z/zip, zip/exe, innoSetup/zip) to explain better that the first unpacker is not applying to the argument but the argument is the result of the unpacker action.

A clearer syntax should be:
7z THEN insidePackageFile.zip
zip THEN packageFolder\insidePackageFile.exe
innoSetup THEN "package folder\insidePackage.zip"


I think that a shorter syntax is easier to understand and remember but let me know what do you think. I even could implement both of them.

The first release won't have the double unpackers feature but surely I'll implement it in a future version.
The double download is more and more difficult so it could arrive later.

Another news is about the msi format. I'm really sorry but I can't add that to the SPS, neither normal nor scripted, for two main reasons:
- to unpack an msi you need an admin command shell available. It's an incredible thing but it's true. I can't force a user to gain an administrative privilege to simply unpack a file;
- if you unpack an msi in silent mode and it hangs for whatever reason, the process remains active indefinitely. Try to unpack an msi in silent mode without admin privileges if you don't believe....

The more I go deep in the MS products the more I discover fantastic things and creepy piece of architectures. Sometimes it seems that MS is two different companies.....

Ok. I'll let you posted of next progress.
07/02/2016
Topic:
Request feature for "Get new apps SPS" window

Gianluca
Gianluca
Administrator
So you are speaking about SPS installed on your local PC.... I understood you need to know if an SPS non installed was totally new or only updated.
Changing the red icon for SPS already installed is quite easy because I already know if an SPS is available for update (last grid column) and if it is new (red icon). I only need to cross the information, but I can't understand what the real utility of this feature is. Maybe I have make the update information more evident?
07/02/2016
Topic:
Request feature for "Get new apps SPS" window

Gianluca
Gianluca
Administrator
Probably it could be arranged in that way but you haven't the same a safe method to get this information.
What if you empty the trash?
Moreover if you regularly check for the new SPS with your second check, a previous totally new SPS will results as an updated one.
I should implement a more grained method to understand the whole history of an SPS going back with previous SPS backup but I can't read every backup folder and I can't open all the old SPS to rebuild the entire version history.
Well, indeed I can do it but it will result in a lost of performance. Even the simple check for an unique backup folder is a performance enemy.

Currently the new icon remains for 10 days since the last publication.
07/02/2016
Topic:
The SPS scripting engine

Gianluca
Gianluca
Administrator
Maybe you are right but the request for a double or triple decompression comes from you editors smile
I'm only searching a good implementation that can grant flexibility, ease of use, and consistency. If some combinations won't be useful, who cares, the system theoretically covers any kind of combined compression for the supported formats.

Anyway I can give you other simple examples, besides yours, in which the double processing will be useful.

If you get a tar/gz package you can unpack it with SPS because the tar/gz package needs a double pass. I personally saw some apps packed with tar/gz.

Even more frequently you can find an exe installer (unpackable with 7z) packed inside an msi file, which is not directly supported but that sometimes is unpackable with 7z again. So you have another example where the double processing is useful.

The last one comes thanks to our friend VVV_Easy_Symenu.
Try to download this application.
http://www.tcxconverter.com/TCX_Converter/DOWNLOADS_files/TCX-C-Experience_2032_Windows.zip
It's a zip file that contains an innosetup package. Why the author decided to zip an already compressed setup package? Again who cares, maybe he didn't want his users have to download an exe file... we all know how scaring an exe file can be smile
The only fact here is that an innosetup package inside a zip package exists.
08/02/2016
Topic:
The SPS scripting engine

Gianluca
Gianluca
Administrator
A deeper analysis is better than a superficial one. Usually when I have made complete draw of the problem I can take decisions and I can choose the more consistent solution.

This Paperscan is a pain... they offer a zip file to download (from here http://www.orpalis.com/download/paperscanfree.zip).
Inside the zip you'll find an executable. It's an InstallShield setup.
Inside the InstallShield setup you'll find an msi setup.
Inside the msi setup you'll finally find the software.
It's a weird system for distributing a software.

@VVV_Easy_Symenu
An external tool to unpack msi could be a good solution but it has to be silent, with a command line interface too, and it should be executed with normal privileges.
Is the tool you tested this one? http://www.jsware.net/jsware/msicode.php5#unpackx
08/02/2016
Topic:
Request feature for "Get new apps SPS" window

Gianluca
Gianluca
Administrator
Maybe the solution to write the creation date inside the SPS is the most consistent one. Unfortunately we already have a large SPS library that remains without a creation date so this solution is useless.

Considering the current condition, the solution to check inside the trash is the most effective because it immediately covers all the programs but it is extremely buggy.
Think about this scenario: the partially emptied trash is not a solution because if you check again for new SPS tomorrow and again empty your trash you'll have a red overlay that becomes blue because the item yesterday didn't exist, today exists (so it assumes the red overlay) but tomorrow it becomes blue because you check again the SPS and you'll find an old SPS.
Quite confusing....

UGMFree © 2002-2024
PayPal BTC TON