The CHT Blogger

Thanks for your interest in The Clarion Handy Tools, an awesome collection of productivity enhancements for Clarion developers. These tools consist of an ever-expanding set of Clarion Templates and OOP Classes that extend or complement the normal functionality of the Clarion Application Development System from SoftVelocity.

Tuesday, September 28, 2010

Free Friday CHT Webcast Seminars

I want to alert you to a new CHT feature (free) for our subscribers that you may want to take advantage of. Every Friday at 11 AM EDT (EST after the time change),I'm going to give an on-line CHT Webcast seminar, using Go-To-Webinar that any CHT subscriber is welcome to attend.

In the first Webcast this coming Friday October 1st, 2010, I'm going to be talking about the new Compile Manager for C7 which I'm about to release with our 4th quarter build 14D1.00 around October 5th or 6th if all scheduled work goes as planned.

The topics to be covered at this point are not all firmly established so input from you as to what topics you'd like me to cover is very welcome. In all cases, if you do ask for a topic, the more specific you are, the more likely I am to be able to satisfy your requests.

My approach to these seminars will be to pick an existing CHT demo application or two and discuss what major CHT functionality underlies the application(s). I intend to get quite technical where necessary and to go into the innards of the template / class combinations that bring any given CHT functionality into your application. The upshot of this will be to have you better leverage CHT in your own applications to get more out of our toolkit than many of you are able to do.

If you want to be on the auto-invitation list for these seminars, just send me a separate email from the email address you'd like that invitation to go to. When you send that email, please include in the subject CHT FRIDAY SEMINAR INVITATION.

I will also post an invitation here on the CHT forum 5-15 minutes before start time each Friday.

Please be technically prepared:
It's imperative, to be prepared for this type of on-line/two way webcast by having a proper headset and microphone if you intend to speak or ask questions. Previous experience tells me that individuals who try to work with computer speakers and broad-pickup microphones such as the type built into laptops, will need to be muted because of the amount of ambient noise and feedback that results when more than couple of people are involved in the Web-cast. Logitech (and others) have good earphones with a quality built-in microphone that picks up very little background noise. These are reasonably priced and will outlast your computer.

Any Webcast topic requests that you have may be posted here on the forum as a REPLY to this posting.

Cheers...

Gus Creces
The Clarion Handy Tools Page
www.cwhandy.com
gcreces@gmail.com
September 27, 2010

Friday, September 17, 2010

CHT Compile Manager For C7 - Nearing Release

This app has been a long time coming.

Because C7 is so different from the standpoint of application-creation-automation than C6, it's taken us weeks of trial and error to get to the point of harnessing the C7 compiler and generator system in a way that appears and operates seamlessly from the compile manager interface. We're nearly there now, and we're impressed both with how it works and how well the app has come together.

In the past, we've always defaulted back to C6 to do any CHT development work since CHT has to be both C6 and C7 compatible. With the C7 compile manager project, we were forced to work entirely in C7 since nothing in the inner workings of C7 Compile Manager works in C6 anyway. C6 uses DDE to communicate to the IDE for compile/generate automation and C7 uses a DOS command-line interface for compile/generate automation.

In the meantime, we're finally getting over our impatience with the "differences" in C7's way of doing things, and have learned to embrace them and accept most of them, bad, good or indifferent. Henceforth, we'll be changing our mode of operation and doing most of our CHT development work using the C7 IDE - all, I suppose, except for the development of C6 demo apps which will have to still be accomplished in C6. Template and class changes and additions, neverthelsess, will be handled from the C7 IDE.

Though it's taken several weeks, C7 Compile Manager has all the features of C6 Compile Manager and then some. See the interface below:

hndcmpc7.gif


All without opening any application you'll be able to do the following from the C7 Compile Manager Interface:

1) Switch between EXE and DLL compilation of an app
2) Assign a DLL memory load address for your DLL (Optional)
3) Change link mode from Library to DLL (this used to be called LOCAL and STANDALONE in C6)
4) Switch app compilation between Debug and Release mode
5) Switch app compilation between expiration and non-expiration mode
6) Switch from HNDFBACK.TRN (English translation file) to HNDCUSTOM.TRN (user translation file)
7) Adjust processor affinity of the EXE for multi processor machines
8) Assign code signing information into the executable
9) Export the app to TXA
10) Compress the executable
11) Copy the executable to a configured target directory
12) Stop compilation on error or continue to next, useful when making DLLs on which later apps depend
13) Generate app discovery HTML into a configured target directory (this can be served up on the web or on a network if you like)
14) View a compile log for each application giving full details of what happened during compile

All this, without having to open the application to adjust it's internal project settings! All operations default to OFF where relevant (example generating the TXA) and can be switched on individually for any given app. Some operations such as Link mode obviously are toggles (as between Library and DLL mode), so they don't have an
OFF/ON aspect to them, but rather an either/or aspect.

All operations can be pre-configured to be ON or OFF EITHER/OR automatically when a new app is added to the compile list.

We're testing this at the moment and as soon as we're satisfied that it's ready for prime-time it will be released along with the normal template and class changes that happen around here on an on-going basis.

That's all for now. More about this as release-time nears. And a C7 Compile Manager video is slated for production.

Cheers...

Gus Creces
The Clarion Handy Tools Page
www.cwhandy.com
gcreces@gmail.com
September 17, 2010

Thursday, July 15, 2010

Build 14C1.00 Just Released

Clarion 7 CHT Demos - Build 14C1.00


In this build, all the demos from C6 will be available for C7 with the exception of HNDCMP.APP. I'm still holding off on HNDCMPC7.APP as for the time being we have HNDCOMPILE.EXE which works pretty well as a bulk batch compiler for C7 - better, I think, than trying to construct a solution app that contains 140 individual apps. Any time I've tried to build a multi-app solution and inserted multiple apps other than one at a time, C7 GPFs. HNDCOMPILE dispenses with the need for any of that multiple apps in a solution and, because the batch file it creates runs in a separate DOS window, it time-shares very nicely with other work being done on the machine.

Windowless Services


There are three new Windows Service demos in this build. These are windowless services that can be used as examples for your own windowless services projects - or you're welcome to use the examples as is.

HNDBACKUPSERVICE_A.APP - Backup To ZIP Script Service


HNDBACKUPSERVICE_A.APP - this is a timed backup service that uses a text script called HNDBACKUPSERVICE_A.INI which you can edit and configure to list files (and/or) directories that you want to back up into a zip. Standard file wild cards may be used to describe the files to be backed up from any given directory. Also configured is a target directory to which files to be backed up are first copied before being zipped (once zipped these backup files are deleted again). Also configured is a target zip directory where the time-stamped zips are copied. I've been testing this app for about a month on my own machines here and the backups are reliably happening at the designated backup time. This app uses the global template GLOBALINCLUDEHNDUTILITIESDLL, so this app acts as a further example of what you can do with the HNDUTILITIES.DLL introduced in the last update.

HNDBACKUPSERVICE_B.APP - Backup to HZO Script Service


HNDBACKUPSERVICE_B.APP - this is a timed backup service much like the one just described. It uses a text script called HNDBACKUPSERVICE_B.INI which you can edit and configure to list files and/or directories that you want to back up to a CHT, HZO file. Remember that you can use HNDSETUP.APP to uncompress and restore the contents of an HZO file to disk. Of course you could write your own HZO decompression app based on one of our existing examples. This app does not use HNDUTILITIES.DLL as it is based on CHT classes that we've not yet isolated into a separate DLL as we've done with the HNDUTIL class.

HNDSTARTSERVERSERVICE_A.APP - Start multiple Servers After Machine Reboot


This demo is based on something I built for myself a few years ago to restart my servers after a power failure or server machine reboot. Using this app, rather than making every server a seperate Windows service, I only need one service which restarts and verifies restart of all of my server applications. Once the servers have been successfully started, this service unloads itself from memory. However, it does remain registered as a service and will re-load if the hardware reboots. At which time it will once again restart the servers and make sure they're all running before unloading itself again.

Some CHT Demos Have C7-Specific Names and Usage


When I mentioned that we now have all of the C6 demos converted for C7 I should have mentioned that some of these have been renamed slightly to indicate that they are specific to C7. The apps so designated are as follows:
HNDABCHKC7.APP
HNDAPPSPLASHTOHTMLC7.APP
HNDBACKUPCONFIGC7.APP
HNDCLXHTC7.APP
HNDCOLORC7.APP
HNDFSYNCC7.APP
HNDLNCHC7.APP
HNDSETUPC7.APP
HNDTPXHTC7.APP
HNDZINDEXC7.APP

All of these apps (the C6 versions) contained path settings or lookups that made them C6 specific. These C7.APP versions have specific features referencing C7 path settings and lookups. That is not to say that some of the other apps didn't require some C7-specific changes regarding paths, but the above apps in particular have a Clarion7-related purpose that makes it important to be able to distinguish the C7 app from the C6 version.

Our Report Writer Demo HNDREPORTWRITER.APP wouldn't compile in C7 because there have been some function signature changes in the SV Report-Writer library that our templates and classes latch into. We've added a new file to accompany HNDRWPRLIB.CLW and HNDRWPRLIB.INC called "HNDRWPRLIBC6C7.INC". This file contains the SV report writer library prototypes for both C6 and C7 surrounded by OMIT/COMPILE directives to distinguish at compile time whether you're compiling for C6 or C7 so that the correct report writer interface is linked in. We've tested this here with good success, such that our HNDREPORTWRITER.APP runs identically whether compiled in C6 or C7.

WEBUPDATER FOR Clarion.NET Ready To Test


I have WEBUPDATER For Clarion.NET ready to go but it needs some testing by knowledgeable CHT developers. I am going to post it on our download site this week, but I'm asking for a few volunteers from the group who took the CHT DOT NET SEMINAR to do the testing before we roll out any CHT DOT NET Componentry to the CHT community in general. Volunteer testers, feel free to send me an email or reply to this posting if you've got some time to help test the viability of WEBUPDATER for Clarion.NET.

Cheers...
Gus M. Creces

Friday, June 11, 2010

CHT DOT NET Seminar Series #1 (6 Videos Approx 15 Hours)

We've completed, recorded and posted for viewing and download, our CHT DOT NET Seminar Series #1 (6 videos Approx 15 Hours). The series is currently being edited to shorten it a bit (to approx 12 hours) and to smooth out some of the rough spots.

Editing will take at least another month, probably longer, before we're prepared for a retail release of this. In the meantime, some of you have expressed interest in viewing and interacting with this video series "in the rough" since you couldn't fit the live presentations into your busy schedule.

If you're still interested, visit this page (http://www.cwhandy.ca/dotnettraining.htm) to find out more. Below the "Cost" section near the bottom of the page is a "Seminar X Details" list that elaborates topics covered and even provides a ten minute preview of each of the 6 videos.

Seminar videos may be streamed for on-line viewing or downloaded for more at-your-convenience interaction. Approximately 100 source code samples in C# and Clarion# are included along with a free 267 page PDF book by Charles Petzold called ".Net Book Zero".

Purchasers of the "rough cut" videos will, of course, be given both stream and download access to the "final cut" at no extra charge, just as the "live" seminar participants are being given access to both the "rough cut" and "final cut" videos.


Cheers...
Gus M. Creces
The Clarion Handy Tools Page
usersupport@cwhandy.com

Wednesday, June 9, 2010

Build Update Posted (14B1.01)

We've just posted the 14B1.01 Build (Dated June 7, 2010) for C6 and C7.

For a list of new and revised templates consult these links:
http://www.cwhandy.ca/chttemplates2010.html
http://www.cwhandy.ca/chttemplates2010.pdf

Have a look also at a new demo app called HNDTESTUTILITIES.APP. This app, while not quite finished illustrates use of a CHT dll called HNDUTILITIES.DLL which repackages HNDUTIL.INC/CLW as a set of MAP procedures (like Clarion's Builtins). This DLL can be attached to any dll-style application to add 100+ low level functions globally into your app. Take a look at HNDTESTUTILITES.APP for examples of things that this DLL can do.

The list of functions with explanations of what they do can be found in your libsrc directory and is called HNDUTILITIES.CLW. You can also recall this list of functions from the global template GlobalIncludeHNDUtilitiesDLL.

There's nothing this DLL does that our HNDUTIL class doesn't already do but it can be used as a DLL based alternative in situations where you might normally use the HNDUTIL class. The procedure packaging as I've said in this case is not class-based but MAP based so the calling convention is different and the prototypes and procedure names are not necessarily the same.

My intention with this and another couple dozen CHT classes is to produce these as stand-alone products for C6 and C7, that I can sell separately to developers who just won't buy into the subscription scene and who buy bits and pieces here, there and everywhere and then complain like hell that their supplier hasn't kept his product up to date with the latest Clarion version. I'm including these, of course, as part of your full CHT subscription package (even the source code for the DLL itself - see next paragraph)so you can use them or not as you see fit. They may help you decide to ditch some specific-use 3rd party functionalities that you didn't know were already in CHT.

If you're interested how the DLL was created, look at an app called HNDUTILITIES.APP. This is the app that I use to actually create the DLL and export functions from it. Be careful with this app as it will generate a second copy of the DLL and a file called HNDUTILITIES.CLW. If you do decide to compile this DLL, make sure to get rid of the HNDUTILITIES.CLW file that it generates as it name clashes with the MAP file that we've inserted into your libsrc directory with commented prototypes for the DLL.

I welcome suggestions and comments on these new components so feel free to make them.
Cheers...
Gus Creces
The Clarion Handy Tools Page
www.cwhandy.com
gcreces@gmail.com
June 8, 2010

It's Time To Connect With The DOT NET Coding Revolution

Since the release of Microsoft's C# 1.2 -- in October 2003 -- and the evolution of DOT NET 1.0 through to DOT NET 4.0, a lot of things in the application development world have evolved in ways that have not included Clarion. That is, until recently, given the ever-so-gradual evolvement of Clarion Sharp.

In March of this year, it occurred to me that it was time that Clarion# was taken out for a few hard laps around the track to compare -- or perhaps contrast -- its capabilities feature-for-feature against C#. Since C# is the defacto .NET language, despite the introduction of numerous "Sharp" languages in the last seven or eight years, I wanted to see whether SV's Clarion# language implementation was a worthy member of the .NET language community, which includes, C#, F#, A# GTK#, Qt# and others.

Since having adopted C# as my second-favorite development environment after traditional Clarion, I came to realize that much of what I was doing as a toolmaker for Clarion Win32 involved expansion of the language to fill the ever-widening gap between Clarion and the operating system. Suffice it to say, I found myself in the last couple of years, backfilling missing pieces in Win32 Clarion using C# DLLs hooked into Clarion six and seven using an intermediate technology called COM. Perhaps the time had come to think seriously about making .NET
my default coding environment.

What I found was an eye-opener! The Clarion# language is ready to be used today even before a template generator is added into the Clarion.NET IDE. It implements most coding concepts available to C# - with a few exceptions such as operator overloading - and runs as fast as C# - with a few exceptions such as methods using boxing and unboxing techniques.

The only problem -- getting Clarion 6 and 7 users to believe it! Not that I blame them for having reservations, since I didn't really believe it myself until designing and giving a DOT NET Seminar Series based on a free PDF book by Charles Petzold called .NET Book Zero.

During the months of April and May 2010 these six seminars were given on-line, three times each week using GoToMeeting. We recorded the Friday (3rd presentation) of each of the six seminars and have packaged them - warts and all - for interested developers who couldn't fit the on-line seminars into their busy schedules. Read about how you can take these seminars yourself, what prerequisites are needed to take them, and view a summary of each video's contents. Click here to do that.

Cheers...

Gus Creces
The Clarion Handy Tools Page
www.cwhandy.com
gcreces@gmail.com
June 1, 2010

Wednesday, April 14, 2010

In case you haven't read this yet, check out Bob Z's Blog regarding the Clarion.NET AppGen .NET Application Generator

Looks like Clarion.NET code generation is finally becoming a reality. The syntax of that new template language is not something that most Clarion developers will recognize. Then again, Clarion.NET code is not something that Clarion developers will recognize unless they're already familiar with C#, VB# or any other .NET language. In fact, C# code is .NET code, VB# code is .NET code and Clarion#
code is .NET code.

While structurally these languages differ somewhat - one uses semi-colons to end a line, the other uses CRLFs. One uses open/close braces to mark blocks of related code, while the other uses a KEYWORD/END relationship. One uses double quotes to delimit text, the other uses single quotes and on it goes. Fundamentally, beyond the superficial structural differences, the syntax of all .NET languages, is virtually identical. In the case of Clarion#, a few dozen legacy commands have been engineered to work like the old Win32 language and this sits on top of .NET - useful, but not entirely necessary to write powerful .NET code. In other words, legacy Clarion code is a miniscule subset of the available .NET language (used in Clarion#). Because all .NET languages are driven by the .NET Class Library.

As we said in our introduction to our first On-Line series of Clarion.NET training seminars: "Clarion.NET is an entirely new Clarion, and while previous Clarion language experience will "port" very nicely into the Clarion.NET environment, relying on past Clarion experience alone to get you by - especially if you have relied heavily on templates in the past - is going to seriously cramp your overall Clarion.NET experience - kind of like trying to satisfy your household water needs from a deep, clear, freshwater pool with a drinking
straw instead of with an electric pump and a good sized hose."


The first in our series of 5 Clarion.NET/C# Training Seminars was given twice yesterday (Tuesday April 13, 2010) and will be given once more on Friday April 14th, 9AM to 11AM EDT. There's still a window of opportunity to get in on this groundbreaking educational series: On-Line Clarion.NET Training Seminar.

Hope to see you there.

Cheers...

Gus Creces
The Clarion Handy Tools Page
www.cwhandy.com
gcreces@gmail.com
April 14, 2010