Zipguy's Home Page -> My tcl Desktop & Freeware

ml126g.kit 1.4 Meg, or ml.exe 2.8 Meg, &
ezsdxv98f.kit 1.5 Meg or ezsdx.exe 2.9 Meg, all Beta.
Note: All .exe versions are Starpacks, and are Windows Only

              index_files/FLAG.GIF

Introduction



ML




EasySDX







tclkit


Irfanview
  Hi!  Here's some of my freeware, which I've written, or modified.  And this is my page, which tells you, about what I've done.  Yes, I've been active in tcl, and on the wiki, as you can see, which is a rather large wiki.

  ML is a good editor both for text files, and for tcl files especially.  If you happen to just want it, you can click on the links, ml.exe (Windows Only) or ml126f.kit.  If you want to find out about what it is, you can click here, or just read on. Note that most of the screenshots may not be the most current ones from the most current Beta.

  EasySDX is an executable (sort of, which is known as a starkit).  You will need another file to run this.  What it does is make it easy to use SDX, which works real well at turning, many (, perhaps very many, ) .tcl files (and executables) into one file.  It can convert them into either a .kit file, or, even better a .exe file.  SDX is hard to use, so that's why I created EasySDX. It simplifies SDX Usage, which makes it far easier to use.
  If you were looking for it here, you can click on either of the links above to get it.
  If you wanted an explanation of using EasySDX, then you can click here, to read about it.

  If you were looking for an explanation of .kit files you can look here, here for tclkit (which you'll need to run a .kit file) or here.

  You also could look at a page that Irfanview created me here.  I do love Irfanview, and have been using it for over 15 years, and been extremely happy wirh it.

  If instead, you were trying to understand what tcl is, or what I've been busy on, just read on.

















      

 
tcl
aka
Tools
Command
Language

What is
it?











NOT OO




For
example

   I like tcl, known as "Tool Command Language" in long form. If you want to know, or learn, more about tcl, you can look that up at "What is TCL".  It is a robust language, but hard to understand, because there are so many options.


  But I do like tcl! Why?  Because it is:
  • Freeware
  • Mature
  • Feature rich
  • Been around for over 25 years, and still works well
  • Can produce really small sized programs, for a small job
  • Or really large programs (like AOL server code, which is all written in tcl)
  • Works well
  • Extremely reliable
  • Provides starkits, which makes the programs into one file
  • Runs on almost all machines
  • Progresses slowly

  I do not like tcl implemented as an OO (Object-Oriented language) yet.  If you are OO, it makes your programs huge to support OO.  Also you have to  support OO in your source code, which make it a LOT larger.
  No thanks, so far. 

  I found a good editor which was written in tcl, which is about 50k in size, which was named ML Tcl/tk Text Editor - v1.12.  You can edit at least 20 files at the same time. Nice.  Some good features in there:

  • cut/copy/paste
  • Find/replace
  • Printing
  • etc.
   It did look something like this (which was pretty good ten years ago).

        
        





cap20120629_100947.gif
cap20120629_100947.gif
19.89 KB
Relative
Sizes







Huge












Small in
Normal
tcl




My ML
  So first, just to make sure you understand the differences in sizes of files:

1,024 bytes, which are actual characters, are 1K

1,000K         = 1 Meg
1,000 Meg    = 1 Gig
1,000 Gig     = 1 Ter
1,000 Ter     = 1 Quark (just kidding). Where was I? Oh yeah...

  Just for comparison, another editor, which was ok, but, although was written in tcl, as Object-Oriented language, was 6.9 Meg vs 50K, for ML.

  50K is not 5 Meg, which would be 1,000 times larger, but 6.9Meg which would be over 1,000 times larger in terms of source code. Wow!  The download of the executable installer was 4.9 Meg (zipped).

  Well to be fairer, my starkit version, ml126g.kit is about 1.4 Meg (vs 6.9 Meg).  But, that also includes a copy of tclkitxxxx.exe which it does write out, which is about 1.4 Meg!

  So that means that there is only 100k (approximately), in zipped form, for the entire editor!

  The starpack version, which is Windows only, is 2.8 Meg (more on that later).

  Instead my total size of my modified ml126f.kit is around 1.4M (or 1.4 X 1000 X 1024 bytes).  A .kit file has been zipped, and has a lot more files in that .kit file. More on that later.  ml.tcl, which is contained within ml126f.kit, is about 80k now.  That means that I've added about 30k to ml.tcl (at least).  I have a slightly newer version, of ML, which has not yet been released, but is available in beta here at ml126g.kit.


  Here's what it looked like, in MLv125b, when I have ELEVEN files open in the same editor, and am using under 19 Meg (out of 4 Gig) of memory.  Note the statistics, especially in size of memory actually used.
ml125bperformance.png
ml125bperformance.png
54.34 KB



Why did
I change
it?
See why I dislike OO in tcl?  I may decide to like it, or use it later, but so far I don't like it.


   Why did I start to change it in the first place?  Well, to tell you the truth, I strongly disliked the Orange-Yellow background in the original version (see back 2 screenshots).  I did not like the color contrast in it.   So I tried changing ml.tcl, which was easy to do, and worked well, which I liked.  I wanted to add a run command to it, I did  ... and it's come a long way since then.
   I've modified it quite a lot (ml.tcl is about 80k), lost some changes, put some back in, and I like it a more now.
   I added an Iconic toolbar in tcl, which took some work to do, and to figure out how to do it in tcl.  Images are not good in tcl, unless their either .gif images or in in-line code for the image tcl statement.  That's because only the .gif format's patent has expired!

This is what it looks like now ->
mlv125b.png
mlv125b.png
55.78 KB





 



Here are some of my changes, documented by the "Help" screen.
mlv125h_help_screen.png
mlv125h_help_screen.png
29.69 KB

Things I
added to
it
























Popup Menu




Works
Great






Wrap?








tclkit









Sizes
of them








kit vs
starkit?






































Make
Starkit






Sample






































Understand
the
Process?





What I
Did





I added some bells and whistles to it:
  • You can Run the file (after saving)
  • You can Run the file ../../main.tcl above it
  • which is useful for testing unwrapped starkits)
  • Uses a Panned window for the Procs which is resizeable so you can
        maximize the horizontal area of the file being editted
  • Can have different splits for each file being editted
  • Made the Popup window on right click Tearoff and added:
    • "Save"
    • "Save & Run"
    • "Save & Run main.tcl"
              choices to the Popup menu
  • Modified logic so Popup is placed correctly when not maximized
  • Does not Maximize the Window on start
  • Increased the size of the font for procs
  • Colors are now variables and are loaded/saved in ml_cfg/ml
  • ml_cfg.ml is now written in the folder from which ml was run,
       NOT in the edited file's folder.
  • Modified the Procedure Navigator text and the About window text
        to reflect that this is v1.24 (ZipGuy) version
  • Added toolbar for icons
  • Had some arrows to collapse and bring back the proc window
  • Had the paned window remember it's size in each of the windows
  • included the path of the file currently being edited in the title in parentheses
  • etc.

  This is where I've modified it to come up with a popup menu, to:
  • 'Save'
  • 'Save and Run' or
  • 'Save and Run ../../main.tcl'

  This is great whether you're running straight .tcl files or you're editing a .tcl file within a starkit, and you need to run main.tcl to run the starkit, without having to re-Wrap it first. Then after you get it working correctly, you should Wrap, Test, and then Copy it off to another directory if you have a nicely working version (in case you make huge errors later).

   If you don't understand what I just said, allow me to ask questions for you.


Wait a minute... I know tcl is Tools Command Language. You said "Wrap" it. With what. What is a starkit?

  Well a starkit is one file, a lot like a .zip file.
  It could be quite small (or fairly large, especially when unWrapped). When it is executed, it is really a zipped file, that will unzip itself into memory, and then execute.
  Zip became very popular when there were 300 baud modems (which were incredibly SLOW), because you wanted the file transferred, as small as possible, and you want to move, a group of files (or directories), as one file (instead of having to chase after all those files individually).

So what do I need to run it?

   What you need to run it, even if you don't know tcl at all, is that you can run it without having to install all of tcl (which is around 26 Megabytes) and instead have only one file to run it which is around 4 Megabytes (which is only a 2 Megabytes download).
  One can find them here. The file is named something like this:

  • tclkit852.exe
  • tclkit-8.5.9-win32-x86_64.exe
What's the difference between these two files? Would either of these run the starkit? How big are they?

   Good questions.  Both files have the tcl in there, but different versions of tcl, which is up to 8.5.9 right now. You can see that one is 8.5.2 and the other is 8.5.9. the remainder of the the filename is what platform it runs on (win32-x86) Windows XP and up and one happens to be a 64 bit version.  So tclkit-8.5.9-win32-x86_64.exe is that. The tclkit-8.5.9-win32-x86_64.zip is under 2 gig, and unzips to tclkit-8.5.9-win32-x86_64.exe at around 4 gig.

 A kit version is just a runtime version of tcl. It can run anything that really is a foo.kit file.



What's the difference between a kit file and a starkit?  What is a starpack?

  Well it's pretty simple, starkit=kit files.  These terms are interchangeable.

  A .kit file contains all the files necessary to execute the kit file, which could be many. They have all been zipped. They will unzip into memory, and run in memory.  They will have a directory structure and perhaps many files in them under different subfolders.
 
 A real kit file (starkit) can be turned into an executable (foo.exe, which is a starpack) with a penalty of the size of an executable tclkit, and more bad news about starpacks. 

  You can read more about starkits here if you want to learn more about them.


 Or, if you just want tclkit, that works on Windows (XP or up), then you could download ml.exe, which would would be called a Windows Starpack, which is about 2.8 Meg, which only works on Windows.  Then, the first time you ran it, it would write out tclkit-8.6.0-runwin32.upx.exe.  Then you could rename it (using Windows Explorer) to tclkit-8.6.0-win32.upx.exe, and presto, you've got a working tclkit.



A special version of a starkit, is called a starpack.

  Starpack's are a whole different kettle of fish, entirely!
  There is both great, and bad things about starpacks!

  Starpack's include tclkit inside of it, which makes it completely executable.
  This is great!

  But it makes it quite a bit larger.

  For example, you can download a Windows starpack, ml.exe here, which is about 2.8 Meg.  Thus is the ML editor, in .exe form.

  Here's the other bad news.
  Sorry, it does not work on Linux, Mac, etc..
  Starpacks are platform specific, unfortunately, whereas, starkit's are not, as tcl runs on almost any platform, as starkits also do, too.

  This windows starpack, is a 32 bit version right now, it should work on 32 bit windows (even 64 bit Windows), and it is about 1.4 Meg (vs. 4.1 Meg for a 64 bit starpack)!


So if I have a foo.tcl file, how do I turn it into a  or starkit file?

  Well, what you need is SDX. You use it to convert it to a foo.kit.  You need to use it to regularly Wrap foo.kit.  It is kind of wierd running it on Windows. What you have to do is Qwrap it first, then Unwrap it next.   Then what you need to do is find the proper folder which was just created 'foo.vfs/lib/app-foo' and edit foo.tcl. 
  You can look here or here to find out about SDX.

What's Next?

  So let's say you're editing yacm.tcl under the folder  'yacm.vfs/lib/app-yacm'.

  Go ahead and make some changes. When you're done what you should do is save it, then re-Wrap it, and then you can test it.

  Ouch got an error in your source code like this:


Which when you hit the details button will see this:


  Ok.. Go back and fix the error by trying to change the source to what it should be. Then save it, re-Wrap it, and then you can re-test it.

   The commands are kind of simple but are a hassle to type.

  • Make your changes in the source code
  • Save the file
  • Type in 'tclkit-8.5.8-win32-x86_64.exe sdx.kit wrap yacm.kit'
  • Type in 'tclkit-8.5.8-win32-x86_64.exe yacm.kit' to run it
  • And see what happens for this execution of your source code.

Ouch it seems like it's kind of a pain doesn't it?


What did you do?

    Well first didn't I tell you about my version of ML 1.2x.x? It's got a right-click pop-up menu where you can 'Save and Run ../../main.tcl'.
mlv125h_Procedures_Screen.png
mlv125h_Procedures
Screen.png
11.56 KB

mlv125h_Request_Procedures_Window_Menu.png
mlv125h_Request
Procedures_Window_Menu.png
53.46 KB

mlv125h_Request_Procedures_Window_Button.png
mlv125h_Request
Procedures_Window
Button.png
53.03 KB



mlv125h_Request_Save+Run_Menu.png
mlv125h_Request_Save+Run
Menu.png
52.37 KB


mlv125h_Request_Save+Run_Button.png
mlv125h_Request_Save+Run
Button.png
53.43 KB





cap20130309_175450.png
cap20130309_175450.png
57.35 KB

Run
../main.tcl?


What does saving the file you're working on and 'Run ../../main.tcl' do?

   It first Saves the file, and then runs the equivalent of the wrapped kit file by executing ../../main.tcl.

   So here is a program I'm messing around with a little bit. It is called yet another clipboard manager, or short for that is yacm.tcl.  It is by no means near completion, not even close to release 0.70x, but it is a work in progress.  I will tell you later in this page how I converted it from yacm.tcl to a starpack.

   It does do what I wanted it to do, which is to remove blank lines from a copied Web page. I looked around a lot a couldn't find anything else that could do that, so I wrote one.

   So I'm currently editing the source code which is in 'D:\dl\dcl\mine\icons\yacm.vfs\lib\app-yacm\'.  I'm doing this by using ML on the source code of yacm.tcl (which is all of the main program of the  starkit).  So look at this and you'll see where I'm at in my hard disk.

Picture Not Found!

   See the 'Modified' in red? I've just right-clicked and selected 'Save and Run ../main.tcl'.Picture not Found
   And here is the program running.  A lot faster in getting the program saved and running it.
I'm actually sort of cheating and running ' ../main.tcl' which is equivalent, sort of, to running the re-Wrapped starkit.  What I'm not doing is
  • Saving
  • re-Wrapping
  • re-Executing.
   So, I save it and run it by right-clicking and using the 'Save and Run ../main.tcl' option.  It saves, runs it in about  2 seconds, and bang I've got a new screen for the program running.  Nice huh?

   You can download ML from the top or bottom of this screen. Or you can download the Starpack, ml.exe, which is about 2.8 Meg, which only works on Windows.
cap20120718_223827.gif
cap20120718_223827.gif
24.10 KB


EasySDX


So how did you convert it to a starkit?

  Well I've written a program to do that for me.  Have a look at it down below

  What you should notice is that this, called EasySDX is not working on a file yet, so it only has a a couple of buttons that will do anything useful yet.

  It does replace those buttons, with a wholy different set, based on the file's extension, when you change what type you're editing.  You'll see that later on.


This program can handle both types of files:
  • yacm.tcl
  • yacm.kit
You can run the file even if you are editing it with say notepad, which knows nothing about .tcl files.

  When you first run EasySDX, it starts like this:

ezsdx_console1_screen.png

   If you have been running a beta version, older than EasySDX v098e, you would remember what a pain it used to be, in prior versions. You constantly, on Windows, would have to switch between, EasySDX's main window, and the console window. Now, it uses a novel approach to redefine stdout, so that you can see what responses you get, right in the EasySDX's main window.  More on that is coming on another page, yet to be written.  Notice how all the colors are used above.

 So far the colors used are:
  • Extremely light green - {dark sea green} (informational messages)
  • Light blue background - azure (title and important messages)
  • White as the foreground - white,
    and Lighter red (for errors) in the background - red {indian red}
  • And normal for SDX commands, black on white
For a later release, they may be made, externally configurable, in EasySDX's ini file. What you could do is close EasySDX, edit the ini file (which was written in the folder that EasySDX lives in), in any editor you like, change the colors, and restart EasySDX, which will reflect your new colors.


 To give an example of the way it used to look, here's the old console window which used to look like this:

ezsdx_console2_screen.png



  What is interesting is that all it only has the 'Exit' button (and lots of toolbar buttons).  Those toolbar buttons will give you errors.

 What's going on? Why? That's because you haven't yet selected a file.  You can do that by pressing the 'File:' button (which is highlighted in a red box, above).

If you do that. then you should see a familiar screen which is part of Windows, which looks like this:

ezsdx_screen4.png

If you click on that file you want, it will fill it in the 'File name:' field, and then you can click on the "Open" button.

IF you do that then you'll see this screen when it comes back (which is fast).

ezsdx_screen5.png

  What you should notice is that there are two new buttons on that screen, namely 'Run', 'QWrap', even though there are a lot more graphic buttons on the toolbar above!  Those two buttons were given to you because, you're working on the file called 'gfc.tcl'.

  What EasySDX is trying to tell you is that it is only a file called 'gfc.tcl', and that these are the two only available operations that you can do on this file. Or on any file that has the extension '.tcl'.

 You can try running it, and you'll just be running the file called 'gfc.tcl'. It should run normally.  You'll see more about the "Wrap & Run" buttons later.
 You can Qwrap it, by hitting the 'Qwrap' button (which is highlighted in a red box, above).

  If the file 'gfc.kit' doesn't you'll get a message like this:



What you should do, is hit the 'Ok' button (which is highlighted in a red box, above). If you do this, then you'll see this screen:



So if it worked it's now a starkit.  But your message in the first stage of making it into a starkit, told you 'What you should do, immediately, after, is hit the 'Unwrap' button'. If you do this, then you'll see this screen:

EasySDX_06.png

What you should do, is hit the 'Ok' button (which is highlighted in a red box, above). If you do this, then you'll see this screen:

EasySDX_07.png

  If you see the important part of this screen (which is highlighted in a green box, above), then the 'Unwrap' worked.  See how the colors work?

 What you might want to do now is, take mental note of the filename you're currently editting, close whatever editor you're running in, on the file and re-open it in the folder 'D:/dl/dcl/mine/icons/gfc.vfs/lib/app-gfc/gfc.tcl'. What you should do is replace gfc, wherever it appears in the previous item, with the name of the tcl file that you've been editing, your filename as.

If you do not do that, then whatever changes you make in your current editting session, will be ignored totally, by EasySDX!

 Notice that it becomes part of the folder name in 'gfc.vfs/lib/app-gfc' too!

 Also, the program you're currently working on, it may be in a different folder, on a different drive, to start with. EasySDX, does handle this well, because it knows where it was run from, and only re-writes it's ini file, in the EasySDX's folder, to reflect what drive, and folder you're working on.



  You can try clicking on the 'Wrap & Run button (which is highlighted in a red box, above), which is now working on the file 'gfc.kit', and it will, after a few seconds, 4-5 on my machine, will show this screen:

EasySDX_08.png



Your results, will vary a lot, depending on whatever program you're working on! After you've hit the 'Exit' button, or closed your application, you'll be back to this screen:

EasySDX_09.png

 Here's a good example of how the colors are used (which are highlighted in a green box, above).



 The 'normal for SDX commands' , and responses back from SDX, are in black on white.

 So, first you issue the SDX wrap command, namely:
    'sdx::sdx wrap gfc.kit'
  the reason this works. is because the applications path is switched (in Windows terms 'cd dl\dcl\mine\icons') , when you select a .kit file, in a different folder. 
to which, the response from SDX is:
    '5 updates applied'
and further the command issued for you for Windows is:
    'exec D:\dl\dcl\mine\icons\tclkit-8.6.0-runwin32.upx.exe D:\dl\dcl\mine\icons\gfc.kit &'
which does make the application run.
Those are the the SDX command and a Windows command, that are issued for you, in response to clicking on the 'Wrap & Run' button.



The application informs you about what is doing by giving you some commands in the color 'extremely light green - {dark sea green}'. Those informational messages are
  '-- Starting Wrap & Run ...' and   '-- ...Done,    Complete.'



 What you should do now, is get used to the 'Wrap & Run' button, that is on your application, namely EasySDX.  You might want to reposition your window, just behind your favorite editor, so that. that button is just visible.
The 'Wrap & Run' button is your friend.

 Now that you are really in starkit mode. You can make changes, with any editor of your choice, save'em, and switch to EasySDX, and hit the 'Wrap & Run' button, in order to "Wrap" and "Run" your freshly changed code, in .kit form. Then you can close your new application, make more changes, 'Wrap & Run' again etc.. That's why the most useful button is near the edge of the window. That would make it a lot easier, and less complicated, to test your freshly changed code.



If you were to do something, perhaps, stupid like hitting the 'Unwrap' button again, it would give you an appropriate error message, namely:
  'Directory gfc.vfs already exists!'

EasySDX_10.png

Notice how the message appears. It is in Lighter red in the background - red {indian red}, because it is an error message (and white as the foreground - white) to make it more readable than black on red.
Here's what that screen looks like:



Why was that Windows command so long?

 Ah, good question. The answer is you only need one copy of tclkit on your computer (namely tclkit-8.6.0-runwin32.upx.exe) in order to run tcl, in kit form. Remember that I told you that EasySDX had SDX inside of it and wrote it out. Whoops, I didn't tell you that, but I should have. It does have two files, at least, that it writes out when it is executed the first time (it will check to make sure that they're there, each time you first run it, which could make EasySDX write them out again).

 One of those files is sdx.kit, which is a working version of SDX.  The other file, that it will write out, is one named 'tclkit-8.6.0-runwin32.upx.exe'. It will use that file, which it wrote out, in the folder that EasySDX was executed in.  What's cool about that, is that all you need to run a kit, on any folder in your computer (yes, even on other drives), with that copy of tclkit. It's part of EasySDX's problem, to format the 'exec' properly, not yours!

 The main reason to do that, is it's kind of polluting, to have multiple copies of tclkit's in seperate folders, and is a real hassle, when there are multiple versions (perhaps beta versions even) to maintain in different folders.

Why did you do that?

Because, you might have downloaded EasySDX.exe, which is a Starpack, for Windows only, and not even have had any tclkits on your computer.  EasySDX, the Starpack, would need a tclkit, to run a tcl file, or .kit file (as you would too).




  What else can you do with EasySDX?

  What you can also do with this beta version of EasySDX, is to combine a .kit file and a runtime version of tcl (tclkitx.x....) into a 'xxxx.exe' file, once you've got something useful.

  You can do this, from EasySDX, by hitting the 'Make .exe' button!

EasySDX_11.png

  That will add around 1.5Meg to the size of your .kit file, and make it into a Starpack, called 'gfc.exe' in the case above.  You might want to see what it means to be a Starpack.

  You can run it from EasySDX with the 'Run.exe' button!



  Thought that might get you interested in the beta version ezsdxv98f.kit 1.5 Meg.  So it is a lot larger, around 1.5 Meg, because it contains tclkit-8.5.8-win32-x86_64.exe which it does write out, once you've started it.

Here is some of the current help screens ->

You can download EasySDX (around 160k, because it includes sdx) here as ezsdk045.kit (or the beta ezsdxv98f.kit, which I am using, which is around 1.5 Meg).
ezsdx_help_screen_01.png
ezsdx_help_screen_01.png
38.66 KB




ezsdx_help_screen_02.png
ezsdx_help_screen_02.png
38.68 KB



and here's the console screen.
It really does work.  When I save the program in ML Edit and click on the ' Wrap & Run' button it takes about 4 seconds to wrap and run.  But that does not include the save button in that.

Here is the somewhat current version of ML which is ml126g.kit around 1.4 Meg, which is in beta.
cap20120721_125340.gif
cap20120721_125340.gif
14.74 KB


Thoughts
on ML


   Here's where I'm stashing, part of the help screen, which says "Thoughts on (minor?) things to add:".  Those are on my to do list.
  You can find my email here. on the wiki. If you really want something, you should send me an e-mail.  There is no place on this site to have a "Forum" or something yet, but that is on my to do list also. :)

  In the meantime, if you know how to "Edit" a wiki page, you could post your ideas here.

  I hope you enjoyed reading this page.


mlv125h_Request_Help_Button.png
mlv125h_Request_Help
Button.png
52.67 KB
mlv125h_Thoughts_About_ml.png
mlv125h_Thoughts_About
ml.png
33.87 KB



ml126g.kit 1.4 Meg, or ml.exe 2.8 Meg, &
ezsdxv98f.kit 1.5 Meg or ezsdx.exe 2.9 Meg, all Beta.
Note: All .exe versions are Starpacks, and are Windows Only

Created with the help of IrfanView     
and edited heavily, in a very nice freeware WYSIWYG editor, called Seamonkey
written by Firefox.


Brought to you Courtesy of The ZipGuy
These pages, and their contents, are Copyright 2000-2014 BMRWare. All rights reserved


You can try hitting the blue button on the line above (in the right item). It's harmless, and entertaining :)