I have spent most of the last week or so getting Subversion version control and TortoiseSVN up and running on our network. I will blog about that experience later, but to cut a long story short I have come to the realization that I have to change the folder structure that I use for my projects and products. They just don't work well for version control at all!

For about 10 years or so I have used a pretty good structure, that goes something like this:

C:\Clarion\Apps\C63\Products\Automator
C:\Clarion\Apps\C63\Products\AutomatorDLL
C:\Clarion\Apps\C63\Products\Utilities
C:\Clarion\Clarion6
C:\Clarion\Shared\LibSrc\Automator
C:\Clarion\Shared\LibSrc\Utilities
C:\Clarion\Shared\Templates\Automator
C:\Clarion\Shared\Templates\Utilities
C:\Clarion\VC\Automator

Rather than being separated by products or projects, the folders are separated by over all contents, such as Apps, Shared, etc. Apps are then first separated by what version of Clarion they are being compiled in, then if they are projects (which are in-house projects), products or client projects.

The problem with this is that the separation of products is at the very lowest level of the folder structure, where as for version control, it should be as close to the top as possible so you can check out and commit the entire folder tree for all realted product or project files at the highest possible level. So I have decided on structure like this one:

C:\Clarion\Clarion6
C:\Dev\Prod\Automator\Apps\C63\Automator
C:\Dev\Prod\Automator\Apps\C63\AutomatorDLL
C:\Dev\Prod\Automator\Apps\VC\Automator
C:\Dev\Prod\Automator\Src
C:\Dev\Prod\Automator\Tpl
C:\Dev\Prod\Utilities\Apps
C:\Dev\Prod\Utilities\Src
C:\Dev\Prod\Utilities\Tpl

This way I can for example check Build Automator out at C:\Dev\Prod and it will work with everything related to that product.

This of course requires a lot of changes to all sorts of files, such as the redirection files (RED files), Build Automator scripts, Editor projects, etc. Definitely not a walk in the park and as I'm kind of feeling my way around this it's very, very different from the way I have worked for many years and the older the dog, the slower it is to pick up new tricks:)

I expected the RED file to be relatively easy, but it has proved to be one of the most challenging; for a reason I'm not yet sure of.

Clarion allows you to set up "macros" in the C60EE.INI file as shortcuts to the folders. This is done in the [Redirection Macros] section in the INI file like this:

Shared=C:\Clarion\Shared
SharedTpl=C:\Clarion\Shared\Templates
SharedImg=C:\Clarion\Shared\Images
SharedIco=C:\Clarion\Shared\Icons
SH_Automator=C:\Clarion\Shared\LibSrc\Automator
SH_Catalyst=C:\Clarion\Shared\LibSrc\Catalyst
SH_CCS=C:\Clarion\Shared\LibSrc\CCS
SH_Files=C:\Clarion\Shared\LibSrc\Filesandstuff
SH_Magic=C:\Clarion\Shared\LibSrc\Magic
SH_Other=C:\Clarion\Shared\LibSrc\Other
SH_Previewer=C:\Clarion\Shared\LibSrc\Previewer
SH_Utilities=C:\Clarion\Shared\LibSrc\Utilities
SH_Xplore=C:\Clarion\Shared\LibSrc\Xplore
SH_LibSrc=C:\Clarion\Shared\LibSrc

My corresponding Redirection file entries looked like this:

*.clw=.\Z-CLW ; .; .\CLASSFILES; %ROOT%\LIBSRC; 
  %ROOT%\3RDPARTY\LIBSRC;%SH_AUTOMATOR%; %SH_CATALYST%; 
  %SH_CCS%; %SH_FILES%; %SH_MAGIC%; %SH_OTHER%; 
  %SH_PREVIEWER%; %SH_UTILITIES%; %SH_XPLORE%;
  %SH_LibSrc%\PowerOffice

*.inc=.\Z-INC ; .\CLASSFILES; %ROOT%\LIBSRC; 
  %ROOT%\3RDPARTY\LIBSRC;%SH_AUTOMATOR%; %SH_CATALYST%; 
  %SH_CCS%; %SH_FILES%; %SH_MAGIC%; %SH_OTHER%; 
  %SH_PREVIEWER%; %SH_UTILITIES%; %SH_XPLORE%;
  %SH_LibSrc%\PowerOffice

This works great and no problems with this at all.

But what I found today was that my changes for *.clw files and *.equ files (Equate files) as well as *.trn seem to work just great, the same cannot be said for the entry for the *.inc files! Currently I have this in my new Redirection file:

*.clw=.\Z-CLW ; .; .\CLASSFILES; %ROOT%\LIBSRC; 
  %ROOT%\3RDPARTY\LIBSRC; C:\Dev\Prod\Automator\Src; 
  C:\Dev\Prod\Utilities\src; C:\Dev\Prod\Checkbf\src; 
  C:\Dev\Prod\ITMB\src; C:\Dev\Prod\ITME\src; 
  C:\Dev\Prod\ITML\src;  C:\Dev\Prod\Outlookbar\src; 
  C:\Dev\Prod\PowerToolbar\src;C:\Dev\Prod\Previewer\src; 
  C:\Dev\Prod\SQLBrowse\src; C:\Dev\Prod\Taskpanel\src; 
  C:\Dev\Prod\WinFix\src; C:\Dev\Prod\XPlore\src; 
  C:\Dev\Prod\XPTheme\src

*.inc=.\Z-INC ; .; .\CLASSFILES; %ROOT%\LIBSRC; 
  %ROOT%\3RDPARTY\LIBSRC; C:\Dev\Prod\Automator\Src; 
  C:\Dev\Prod\Utilities\src; C:\Dev\Prod\XPTheme\src

This works without any issues for the *.clw (as well as the *.equ files, which I'm not showing here) but not so for the *.inc files! The compiler simply will not find *.inc files in the Automator, Utilities and XPTheme folders (there are several more, but I'm concentrating on just those to start with).

However, if I create a macro for the C:\Dev\Prod\Automator\Src and C:\Dev\Prod\Utilities\src paths, and use that macro in the Redirection file, everything compiles without a problem! I.e.

[Redirection Macros]
BA=C:\Dev\Prod\Automator
UT=C:\Dev\Prod\Utilities

*.inc=.\Z-INC ; .; .\CLASSFILES; %ROOT%\LIBSRC; 
  %ROOT%\3RDPARTY\LIBSRC; %BA%\Src; %UT%\Src;

Since I had set up macros for all the *.inc folders last time I guess I never ran into this anomaly before, or maybe that was why I had created all those macros - just can't remember!

Bottom line is that if something weird happens in your redirection file and it doesn't seem to work, try to create a macro in the INI file and see if that helps! Note, that in order to create the macros, you MUST close the Clarion IDE! In the INI the macro does NOT include the %, i.e. BA defined in the INI becomes %BA% when used in the Redirection file.

Arnor Baldvinsson

I was in Barnes and Noble today and bought two books that looked interesting.

The first one is Seth Godin's book "Purple Cow" It is about the importance of making your company or product stand out in the marketplace, just like a purple cow would do in a field of green grass and a flock of brown cows. No matter what line of work you are in, some form of marketing is something that we all do. There are people who are natuarlly good at it and then there is the rest of us who have to work at it! This book has 218 reviews at Amazon.com and get's mixed reviews. Some readers feel it doesn't really deliver much substance and is more a book written to show how smart the author is rather than to show us how to learn from his smartness, which I guess kind of makes him a smartass;) The edition that I have was published in 2009, but I'm not sure when this book was first published. The oldest reviews on Amazon.com are all from May 8, 2003.

The second book is called "Your Virtual Success: Finding Profitability in an Online World" by Alan Blume. This book is about virtual businesses and how to make them work. It is also a lot about marketing. Published on June 20, 2010, this book gets solid 5 stars at Amazon, but only 4 people have reviewed it so far.

I have only just started looking at them and will write about what I thought of them once I'm done reading them:)

My bedside reading these days are some of Patricia Cornwell's Scarpetta books.

Arnor Baldvinsson

1

For several months I have not been able to do much with the new Clarion 7 IDE because of crashes that would happen pretty frequently or about every 10 minutes. Needless to say that is not productive in any way and in fact I have stayed away from it, hoping that Softvelocity would get the IDE more stable. It has been a frustrating experience as I have tried many times to make the IDE work for me, with the only reliable outcome being consistent, yet random and unpredictable crashes or the IDE has simply disappeared without any warning.

Last week I was contacted by a customer who was having some odd things happening with a Legacy (clarion template chain) application in Clarion 7.2 that used our Previewer and asked if I had experienced any issues. I have to admit that I don't do much product testing with Legacy anymore and haven't tested any Legacy apps in Clarion 7. So I decided this would be a good time to create a small legacy app in Clarion 7 and see how it worked. To cut a long story short, an hour and 5 crashes later I had a Legacy app that compiled and worked fine and reported that to my client. But the experience was anything but good. 5 crashes and a feeling that the IDE was very fragile. Admittedly I was running it on an older computer with XP and not much power in it, but still. I also have Clarion 7 on my Vista64 quad core computer with 8GB of RAM and I had experienced exactly the same issues on it as on my XP.

A friend of mine, John Hickey of GoPositive Software and ClarionLive fame contacted me this morning and offered to do a private webinar with me to see if he could help get over those crashes as he has been using Clarion 7 for a while. Arnold Young also chimed in as well so we could all compare settings and see what was going on. We spent an hour talking about the different settings and John shared with us what changes he makes that seem to make the environment much more stable than the default settings that Clarion 7 comes with, which I have been using with not so good results.

After we were done, I repeated my Legacy app creation and while there is a bug somewhere in the Legacy Wizard and/or the TXA import other than that problem (which leads to a crash) the rest went smoothly. No other changes were made, i.e. I did the test on my old XP machine, with the same dictionary, same Clarion 7.2 build (7283) and same steps. So I'm very happy to report that those changes do seem to have cut the random crashes down completely. I messed with the app a bit for about half an hour and C7 was just humming along nicely and no problems in sight. Below I'm detailing the settings that I changed based on John's advice and he graciously allowed me to post this information on my blog. I really hope this may help others who have been having those random, yet predictable and very frustrating crashes, to become productive with the new IDE!

To start, select "Tools | Options" from the main menu. Select the Clarion entry in the list on the left and it will expand to show several nodes of Clarion specific settings and select the "Clarion | Clarion for Windows | General" node as shown below.

Clarion - General

By default the second radio button is checked, "Parse all hand coded projects in the solution and only applications opened for editing" and the "Use lightweight parsing mode" is also checked. The change that we made here was to select the "Disable project parsing" This affects code completion, but this apparently is one of the major cause of crashes.

Next navigate to the "Text Editor | Clarion specific options | Code Completion"

Code Completion

The change we made here was to uncheck the "Enable Code Completion" turning code completion completely off. The Code completion adds quite a bit of time parsing the projects and sources and this seems to be contributing to the instability of the IDE.

Since we are in the Options window, there are two more settings that will improve your experience, while not contributing to fixing the crashes, but since we are already in this window we might as well look at them!

Navigate to the "WINDOW Structure Designer | General" node and in the "Designer Area Options" check the "Show Property Toolbar".

Window Structure Designer

Now repeat in the "REPORT Structure Designer | General node:

Report Structure Designer

When you open the Window designer or the Report designer you will now see the familiar property toolbar from the older IDE where you have quick access to the text, use variable and font settings of the selected control, see below.

Command Toolbar

The final tip on the performance and crashes is found in the application options. So close the Options window and use "Tools | Application Options" from the Clarion 7 main menu. Note that if an application is open, this menu item is disabled.

This will bring up the "Application Options" window.

Application Options

The changes we made there were to turn the Auto-Save OFF by setting the "Auto-save limit (MB):" to zero. This may or may not contribute to the crashes. John has this set to zero while Arnold was using the default setting of 16MB. I have set it to zero to start with.

While you are in there, if you haven't done so already, you might want to consider turning off the "Require a dictionary" checkbox at the top. It is not of much use but can cause problems if you open application that do not have any dictionary as you will not be allowed to save them!

That's it! I will be using these settings to start with but what little I have done today indicates that these changes have added considerably to the stability of the IDE. If you have any further tips or suggestions to improve the stability and user experience of Clarion 7 then please do not hesitate to send me an email or comment on this blog.

PS: If the IDE is indeed stable with those changes I will start to add them back one at a time until I hopefully can put my finger on what and where the instability is coming from and that might help Softvelocity in their quest to fix this.
Arnor Baldvinsson