Use with caution.
These public beta programs contain new fixes and new features that haven't been fully tested. I need you to tell me if you find any problems with these program or even if the changes listed work as you expect.
joejoe May-27-16 4:06 PM CDT
Global/Shared Permanent Clips 3
The coding is almost done for this feature and will likely be available as a Public Beta tomorrow.
The "Databases" tab has been updated to include a Shared Permanent Groups link. This will bring up a window that can be used to convert a group to be global.
When a group is converted, all clips and hotkeys of the group are copied to a single database. Each instance will create a copy of the group in it's local database. Instances will be updated either by a timer or when the program is first run. Any changes made to that group's clips will also trigger an update.
A new "shared.ini" file in the "clipdatabase" folder is used to keep track of synchronization. A setting has also been added to this file to not include importing hotkeys for each machine. By default, all machines will import both the clips and their hotkey settings.
joejoe May-25-16 9:09 PM CDT
Global/Shared Permanent Clips 2
The design phase is almost complete. I've found a method that satisfies all the goals, and this was probably the hardest part. This method requires only 3 small changes to the existing database functions and the rest of the program remains unchanged. The only exception is a change to the user interface to set a Permanent Group to "shared".
joejoe May-19-16 7:13 PM CDT
Global/Shared Permanent Clips
This feature has been the most requested: the ability to have Permanent Clips that can be shared with all instances. When run from an external drive, AC automatically uses a single database, so all computers use one set of clips. For other installs, you can import from other databases, but there is no sync mechanic to keep them all up to date.
This is the feature that is currently being researched and designed. There are a few ways to do it, and they all have drawbacks. The goal is for the method to be fast, reliable, and requires the least amount of changes to the code. The methods to detect a shared group and keep it synced needs to have little impact on performance of the Popup. The design requires a separate database for shared clips, to remove read/write conflicts. The last goal removes most of the possibilities to introduce bugs.
joejoe Apr-29-16 9:39 PM CDT
While AC Mini is not in full development, it's still getting some maintenance. The current beta fixes an intermittent crash issue for some systems. Also, the Google App changed the internal name of it's search textbox, so the program was updated to detect it.
joejoe Dec-19-15 12:05 PM CST
A "Killer Script"
Something as simple as "extract all URLs" sounds great, but is an extremely difficult task to do correctly. Several libraries exist for this task and almost all of them have issues. I've even written my own for the MakeLinks browser extension, to detect "may be" links. Still, this is a candidate for a "killer script".
I've one user that is copying address information and pasting it into a form. The addresses can be in multiple forms and each needs special detection and treatment. While this is another difficult task, it sounds like it may also be a candidate.
I'll be looking through my archive of user feedback to find more.
Another feature that might need to included is a way to get scripts from the website, instead of just using hard coded examples. Will scripts be added or updated frequently enough to merit this work? I'm not sure. This feature may have to wait for a future version.
joejoe Dec-17-15 2:49 PM CST
Currently, the clipboard state is passed as a parameter to the "main" function. The Popup Clips are optionally included as an array of string. This is the only data that AC directly includes in the script. Indirectly, the script can have AC execute the [TOTEXTFILE=""] command to store the changed clipboard to a file. This may change in a later version.
Some notes about the implementation:
Currently, cscript is used to execute the "main.js" file. This command line program has been a part of Windows since XP. Mozilla's SpiderMonkey engine may be used instead in a future update. The simplest method was tried first.
Cscript is executed using a hidden command prompt to prevent any focus issues with the script.
Any number of start/end label can be used and they conditionally executed or loop executed by the script.
AC and the script use a named pipe for inter-process communication. This will likely be used even if the implementation changes.
Error messages will reference the line number of "main.js", not the line number of the current clip.
joejoe Dec-14-15 7:10 PM CST
Version 5.07 of ArsClip will be released as an official version soon. Preparations are being made to ensure that if a hotfix is needed, it can be addressed quickly.
All the details are preliminary and may change. The only incoming data from AC in this version is the clipboard in plaintext format. I'll need to find an efficient way of including other data, like the Popup Clips, into the script. I may use some more special syntax for this, so it's only conditionally included.
joejoe Dec-11-15 12:51 PM CST
Flexibility Needed 2
How will it work?
Addons for ArsClip?
joejoe Dec-10-15 12:36 PM CST
The Split Clipboard command is great for doing a single routine repeatedly, but it doesn't account for the case when the split pieces need to be treated differently.
The above is a bit of a hack that will fill the Temporary Clip List with pieces. From here, pieces can be removed from the list and pasted using:
This works, but it's far from intuitive. Having the Split Clipboard command implicitly be a loop may be a mistake. The command may be better served just saving the clipboard as pieces. Then, the pieces can be inserted one at a time or inserted using a loop. This is much more flexible and more intuitive.
The above shows the case where the number of splits is known ahead of time. The user copies a block of text with 3 separate lines and those lines are pasted without linefeeds.
The above show the case where the number of splits is not known ahead of time or all splits can be treated the same. The Split Item looks the same, but an index variable is used instead of a hardcoded number.
The "Insert" menu would have 2 versions of the Split Command to use for templates. While not perfect, this seems to be a better solution that allows for much more flexibility.