VICI: A Software Development Project - Page 9
FedoraForum.org - Fedora Support Forums and Community
Page 9 of 9 FirstFirst ... 7 8 9
Results 121 to 131 of 131
  1. #121
    Join Date
    Oct 2010
    Location
    Canberra
    Posts
    3,092
    Mentioned
    1 Post(s)
    Tagged
    1 Thread(s)

    Re: VICI: A Software Development Project

    Release 0.10.682 Published

    Unfortunately '681 doesn't do a very good job of finding Qt's utility programs for a normal install of Qt5 on Ubuntu and similar.
    This release hopefully fixes that problem.

    User error. Please replace user and try again

  2. #122
    Join Date
    Oct 2010
    Location
    Canberra
    Posts
    3,092
    Mentioned
    1 Post(s)
    Tagged
    1 Thread(s)

    Re: VICI: A Software Development Project

    Release vici-0.10.683 Published

    And, of course, as soon as one problem is fixed another one is exposed.
    At least it's nice to be getting some feedback.
    Last edited by ocratato; 2nd May 2018 at 06:01 AM.

    User error. Please replace user and try again

  3. #123
    Join Date
    Oct 2010
    Location
    Canberra
    Posts
    3,092
    Mentioned
    1 Post(s)
    Tagged
    1 Thread(s)

    Re: VICI: A Software Development Project

    I have been getting some good feedback from several members of my local Linux user group.
    In addition I have been doing some more testing while updating the user guide.
    As a result I have redone the way Lua scripts are handled in the test harness. It will be possible to run without Lua or with either of its two common versions (5.1 or 5.3).

    So now I have 3 Lua and 2 Qt options for the configure script.

    My usual process for the final tests of a release is to first go through each of the 14 subprojects and do a configure, make, make check and make install in the development environment. This just uses Lua 5.1 and Qt4. Changing these things in Eclipse is probably possible, but I don't trust it to not get thoroughly confused.

    Once each subproject passes its tests, I move on to the "top" project which pulls all the subprojects together. Another configure, make, make check and make install. If this works OK then its make distcheck which does a test build (yes, another configure, make, make check) before creating a tar file for distribution.

    I then copy that tar file to a separate test area and do yet another configure, make, make check, make install to check that what is distributed will work. It is in this environment that I check alternate configure options.

    So now that last step will involve 6 trials - time for a script !
    Sadly I cannot just set it going and go and read some web sites, or something. The GUI tests involve showing the GUI in the foreground and grabbing the mouse. This sort of makes any other use of the machine problematic.

    User error. Please replace user and try again

  4. #124
    Join Date
    Oct 2010
    Location
    Canberra
    Posts
    3,092
    Mentioned
    1 Post(s)
    Tagged
    1 Thread(s)

    Re: VICI: A Software Development Project

    Release vici-0.10.695 Published

    A minor update that fixes a bug or two and revamps the way Lua is used.

    Time to start planning the next release.

    From the user's perspective the next release will allow scripts to be installed into their menus so they can be run like any other application. It will (I hope) also have a means of scheduling a script to run once or regularly.

    I also intend to modify the file format for the scripts. Presently it is just an XML file. I will put the XML into a container within the file and add a header. This will also allow the scripts to have the usual #! first line, which will mean the scripts will be able to be marked as executable. The header will allow me to optionally include a crypto signature so that VICI can be set up to only work with trusted scripts. It might also be possible to encrypt the XML for an even more secure script. The aim here to make it hard to just download some arbitrary script from some dubious source and run it without doing any checking to see if its about to install malware or something.

    The third strand of development will be to add a lot more testing. I need to set up full tests for vici and vici-editor that run them through their paces and verify that the internal values are as expected. VICI programs have the ability to load plug-in libraries when they start up that are automatically executed. These plug-ins will contain the test harness for running the GUI actions and checking the internal state. The aim here is to provide a thorough test of the programs when they are used in my test lab (see other thread).

    User error. Please replace user and try again

  5. #125
    Join Date
    Oct 2010
    Location
    Canberra
    Posts
    3,092
    Mentioned
    1 Post(s)
    Tagged
    1 Thread(s)

    Re: VICI: A Software Development Project

    Release vici-0.10.714 Published

    This is another release which leaves the functionality unchanged, but makes some changes to the building and testing.

    It actually corresponds to SVN r713 but the 13 might discourage a few potential users.
    At 13:00 on 13th of May I checked my SourceForge page to discover that there had been 13 downloads this week, the last update was 13 hours ago to version 713.

    From here I intend to work on the testing so version 0.10 will remain the current version for a while. There may be updates but they will be just more tests (and minor bug fixes if the testing shows up any problems).

    (vici-0.10.726 published on May 18)
    (vici-0.10.730 published on May 25)
    Last edited by ocratato; 25th May 2018 at 08:37 AM.

    User error. Please replace user and try again

  6. #126
    Join Date
    Oct 2010
    Location
    Canberra
    Posts
    3,092
    Mentioned
    1 Post(s)
    Tagged
    1 Thread(s)

    Re: VICI: A Software Development Project

    Release vici-0.11.787 Published

    https://sourceforge.net/projects/ocratato-vici/

    This is the first of a series of releases concerned with installation into the desktop.
    It uses a new file format that wraps the XML with a separate header. This header starts with #! and the install location of vici so the scripts can be run like any other script. (At this time it doesn't actually run the script, but just launches the run-time with the script loaded.)

    The next part will allow scripts to be installed into the desktop menu, and optionally have them run immediately.
    After that I am thinking about something that will allow a script to be scheduled.

    User error. Please replace user and try again

  7. #127
    Join Date
    Oct 2010
    Location
    Canberra
    Posts
    3,092
    Mentioned
    1 Post(s)
    Tagged
    1 Thread(s)

    Re: VICI: A Software Development Project

    Release vici-0.11.796 Published

    https://sourceforge.net/projects/ocratato-vici/

    This release provides the ability for users to install their scripts into the desktop menu.

    This brings us to the last bit of development that was proposed in the original plan - the ability to schedule a script.
    My intention is to use cron as the basis but use it indirectly via another program that will run the scripts as per the schedule.
    I want to do this so we can do more interesting things like run a script on the fourth Thursday of the month, or fortnightly which are hard to do with a crontab file, but are quite common requirements in a business setting.
    It should be able to handle repeated operations (like cron) or single events like the "at" program.

    Another problem that will need to be addressed is the DISPLAY variable. This needs to be set in the crontab file, or the schedule file that our program will use, but is set when the user logs in (and can change). I think an autostart program will be needed to update the schedule file.

    If anyone has any ideas about what they would like to see in terms of scheduling, please add your thoughts.

    User error. Please replace user and try again

  8. #128
    Join Date
    Oct 2010
    Location
    Canberra
    Posts
    3,092
    Mentioned
    1 Post(s)
    Tagged
    1 Thread(s)

    Re: VICI: A Software Development Project

    Release vici-0.11.818 Published

    This version includes the ability to schedule scripts, including things like "The fourth Thursday of every month" or "The second last work day of the month".

    This completes the project as it was originally envisaged. Of course, over the years, a few additional ideas have crept on to the plan - scope creep is never far away.

    The next bit of development is to add some advanced thread features to make better use of all those 8 core CPUs everyone seems to be getting.

    User error. Please replace user and try again

  9. #129
    Join Date
    Jun 2005
    Location
    Montreal, Que, Canada
    Posts
    5,946
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Re: VICI: A Software Development Project

    Back Wednesday, I will be dl'ing the latest and greatest.
    Leslie in Montreal

    Interesting web sites list
    http://forums.fedoraforum.org/showth...40#post1697840

  10. #130
    Join Date
    Oct 2010
    Location
    Canberra
    Posts
    3,092
    Mentioned
    1 Post(s)
    Tagged
    1 Thread(s)

    Re: VICI: A Software Development Project

    One Thing Leads to Another

    One of the defining features of a VICI script is the explicit depiction of the flow of control between the commands.
    These flows are implemented as threads, so it seemed like a good idea to allow the user to create their own threads.
    The "Threads" symbol was thus created. It launches one or more threads and waits until they all finish. Turned out to be quite simple to implement.

    Having threads was OK, but they needed some data to work with. It would be nice if a stream could be split up and distributed to the threads so that the work load can be shared. Also, once the data was processed by these threads it needs to be collected up and merged together.
    In plumbing a manifold is used to split or combine flows, so the "Manifold" symbol was created for splitting and merging data flows.

    I gave the Manifold a few options: You can specify "synchronised inputs". When enabled the object waits for a line from all of the inputs before writing them to the output. This allows you to synchronise the processing across the threads.
    You can also specify "Parallel Outputs". Normally the lines of data are distributed one to each output in turn. This option sends each line to all the outputs - duplicating the data.

    It then occurred to me that the for-each command could also be multi-threaded. If the processing of each word (or line) was independent of the others it could be done simultaneously. The danger would be that it could end up launching hundreds or thousands of threads, so I added an option to the for-each command to specify the maximum number of threads.

    The multi-threaded for-each command quickly highlighted a new problem.
    Variables in VICI are global. A variable used in the for-each loop would be shared by all the threads, leading to a bit of a mess.
    The solution would have to involve attaching the variables to the threads. Fortunately each thread has a context object that it uses for things like the environment, working directory, etc. Hence variables can be marked as "Local Variables" and are copied into the context. When a thread is created it takes a copy of these variables - thread local variables.

    Since a function call also uses a separate thread of control to execute the function it can also use these local variables. This solves a problem that I was going to tackle in a future release.
    To make it a bit more useful, especially for function calls, I added a save option to the function call command and to the threads object, so that you can copy the value of a variable back into the parent context once the thread completes. This provides a neat way for functions to return values.

    The next problem was that it was impossible to use a manifold to collect the data from a for-each command.
    The manifold normally closes its output streams when the last input closes. In the body of a for-each the commands close for every word/line, so the manifold would only get the first line of output.
    A new option "Persistent Output" was thus added to the manifold so that it holds its output open.
    This allows the manifold to collect the output from commands in a for-each loop.

    Of course, this raised yet another problem - the script doesn't finish because the thread attached to the output of a persistent manifold never completes. The answer was to add a new built in command "exit" that can be used to force the script to complete.

    User error. Please replace user and try again

  11. #131
    Join Date
    Oct 2010
    Location
    Canberra
    Posts
    3,092
    Mentioned
    1 Post(s)
    Tagged
    1 Thread(s)

    Re: VICI: A Software Development Project

    Release vici-0.12.845 Published

    This version provides the thread capabilities outlined in the previous post.

    You can get a copy at SourceForge: https://sourceforge.net/projects/ocr...ar.gz/download
    and the user guide: https://sourceforge.net/projects/ocr...e.pdf/download
    and there is some illustrations of scripts using threads here: https://ocratato-vici.sourceforge.io...e_scripts.html

    I have come across a program that aims to provide a GUI interface for individual command line programs.
    For the next release I will investigate integrating that program into VICI to make entering the command options even easier.
    I will also complete the prepared commands.

    User error. Please replace user and try again

Page 9 of 9 FirstFirst ... 7 8 9

Similar Threads

  1. Web Development Software
    By Pepperonie in forum Using Fedora
    Replies: 2
    Last Post: 5th May 2007, 10:56 PM
  2. Development software for Linux
    By jo3 in forum Using Fedora
    Replies: 9
    Last Post: 15th June 2006, 03:28 PM
  3. Software Development
    By handshakeit in forum Using Fedora
    Replies: 0
    Last Post: 5th October 2005, 08:40 AM

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •