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.

Monday, January 10, 2011

ANNOUNCING: CHT Browser Server Design Contest

Between now and March 31, 2011 you have an opportunity to earn some money and prove your worth as a CHT Browser Server developer.

I'm looking for some peripheral products to add to our lineup and one of the classes of product I want to offer is a pre-designed, stand-alone, browser server ready to go, but having a user-customizeable web interface that performs some less that every-day ordinary task.

The server is not aimed necessarily at a Clarion developer, preferably directly at some end-use, that as I indicated, is not going to be easily found out there on the web. So the idea is as important as the implementation.

When I say "user-customizeable web interface" that means the server functionality and data design is fixed but the user interface can be customized via configuration and via CHT Scripter to represent the customer's company, business, or organization.

Components of any individual product sold this way will be:
1) A browser server application built with Clarion 6 or 7 (preferably 7) and CHT templates only (no other 3rd party templates)
2) A set of web scripts built with CHT Scripter to act as the user interface (customizeable by the end user)
3) A copy of CHT Scripter (which I will supply as part of the package along with CHT Scripter documentation in PDF and video format)
4) Any documentation that you feel is necessary to document the server's use, setup, and maintenance.

The server is intended to be run on an in-house computer via a half-decent, fixed-ip connection not on publicly rented web space, unless it is a dedicated machine (reacheable by RDP) that the user controls and on which he/she can run one or more Clarion applications (your server being one of them).

There will be 3 prizes First ($500), Second ($250), Third ($100) in cash paid via Paypal. I reserve the right to not hand out any prizes if the submissions are unworthy as re-sale products. Any accepted products -- whether they win first, second or third or not, will be offered for sale on CHT's peripheral product website. All sales from here of your product, the income will be split 50/50. If you want to ALSO offer the product for sale on your own website that's OK with me too - if you cut me the same deal on the income split.

Anyone who needs help developing their server product can ask for help from myself at no charge as long as the time involved is reasonable and I don't end up doing all the work. ;-)

There is no contest entry fee. The only requirement is that you are a CHT subscriber. If your project is internal and cannot be packaged and sold on the open market, it is not eligible, again for obvious reasons.

You can express your interest by replying and stating your interest on the CHT Developer Support Forum which you can reach from any of our Clarion Templates.

Cheers...

Gus Creces
The Clarion Handy Tools Page
http://www.cwhandy.ca

Wednesday, December 1, 2010

CHT Update News

We've posted a small update (no version number change) to both the C6 and C7Webupdaters. This update results partially from changes I've made to HNDSCRPT.APP (CHT Scripter), now Versioned 8.0.0.

Scripter Clears Your Web Cache


CHT Scripter now will clear your web cache whenever you save/generate your scripts or when you push the preview button. The preview button, by the way, does an automatic save/generate so you don't need to push save before pushing preview.
Most browsers have a way of internally caching objects while they remain open so any cache clearance that Scripter performs only really takes affect when you exit the browser. My normal modus operandus is always to close the browser after a test/preview session. That way, any changes to scripts in the next preview session will take affect immediately.

Preview is able to enter any secure page in your site directly without prior login, if you have Scripter login set up in your browser server app and your server member file contains a valid scripter account. The trick is to set up the CALLSERVERWITH tags correctly for any secure page that would otherwise require login prior to your being able to enter it.

An Example Use Of The CALLSERVERWITH tag:


CALLSERVERWITH(QRY$~sessionid~viewid=NGMEMBERSVIEW&querypage=1&end)
The ~sessioid~ macro that you see above is used as a place holder for the session id. When your test server is set up with a valid scripter account, your server logs that account in when your server starts and inserts the sessionid value into the server's config file. That config file is shared by CHT Scripter during any test session so Scripter reads the session id from the config file and inserts it into the CALLSERVERWITH string where the ~sessionid~ macro appears. The remainder of the server command inserted in the CALLSERVERWITH string is any valid server command. Above we're sending the QRY$ (Query) command to open a query page on the NGMEMBERS view using the entry point in your server provided by BuildQueryPage_BIC template instance #1.

Scripter Can Generate Standalone .JS and .CSS Include Files


Prior to this latest version of Scripter (C6 or C7 versions are interchangeable) all .JS scripts genereated into the SERVERNAMESUB.JS file and all .CSS scripts generated into the SERVERNAMESTY.CSS file. These two files are automatically inserted into the top of any web page issued from your browser server. The latest server version generates any javascript collection scripts ending in .JS into a separate file using the name provided in the "Item Name" Scripter field. Scripter then makes an entry for that file in your server config file where your server can pick up the name of that file dynamically and insert it into the HEAD portion of your dynamic web pages. What this change provides by way of improvement is the ability to:
a) insert whole 3rd party generated scripts (say from Dreamweaver or XARA)
into scripter and maintain them there intact
b) allow you to add new scripts without having to recompile the server to add another page INCLUDE file.

HNDMTSNG.APP Updated To Version 8.0.0 and Scripts Modified


I've changed HNDMTSNG.APP (the browser forum app) to conform to the Scripter changes introduced above. HNDMTNSG.APP no longer uses any template-inserted include files, which require a recompile to change them. All include files used are now inserted dynamically via the server's config file. At the moment these config-file
INCLUDE usages are embedded in the server manually for testing purposes. This update includes a version of HNDMTSNG.APP that does this so you can try it. Once the testing period has passed I'll be adding template subroutines that write these
presently hand-embedded sections automatically.

Problems Not Yet Addressed In This Update


The C6 version of Scripter lets you open The "Edit Scripts" window, at the same time as the "Configure Variables" window, at the same time as the "Local Server" window, no problem. The C7 version of Scripter chokes on this. Since code-wise these Scripters are identical, this bad behaviour from the C7 scripter is a thread contention problem related directly to C7 similar to the lockup issue in the C7 IDE itself when left or right fly windows cause the C7 IDE to hang. As far as the C7 Scripter is concerned be aware that I'm aware of this problem and I'll eventually find a workaround or a solution.

There's a problem with BuildQueryPage_BIC templates (again only in the C7 code generator) with deleting one of these templates and inserting a fresh one in its place. The numbering scheme can be off by one and some code from the deleted one continues to generate. Again I'm aware of the problem and am working on it. These templates work fine in the C6 version generator. So again this is some anomaly happening in C7 only. An obvious C7 workaround for the time being is not to delete
an existing BuildQueryPage_BIC template before adding another one, but to simply change the parameters on the one you were planning to delete to the parameters of the one you intended to add.

Forward Plans, Now To New Year's


I was planning another .DOT .NET seminar but have decided to move these plans forward as we still haven't seen the .NET code generator.

There is a great deal of movement in the portable computer (Tablet) market and in the price, speed and connectivity available to portable devices. Since CHT Browser Server technology is perfectly positioned to provide interactive data applications to smartphone devices (like Blackberry) and tablet devices (like Blackberry Playbook) I'm doing a round of updates and changes (like the ones announced above)
to make it easy as possible for CHT developers to take advantage of the latest portable computer/smart phone devices. Initally we'll address the browsers in these devices so that the client side of your application runs as HTML/Javascript/Flash/ script. In the background, I'll be keeping an eye on how we can help you build compiled clarion clients (or at least hybrid clients) that run directly on these devices.

The next few CHT Webinars will zero in on CHT Browser Server application building, at the basic level but also introducing outside script sources from DreamWeaver, XARA and others (in the fashion that Didier Le Duc is doing). Time permitting before
Christmas we may be able to illustrate running CHT scripter generated applications inside a Blackberry smartphone emulator or in a Blackberry Tablet emulator.

That's all for now.

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

Thursday, October 21, 2010

Build 14D1.00 Now Available For C7

The 4th quarter Build 14D1.00 is now available for download via Webupdater C7.

This was posted last night, so some of you may have installed this build when you got up this morning.

If you did install this build before this announcement (made 3PM EDT, Oct 21, 2010) you should re-run Webupdater to pick up any last minute changes (and missing pieces)that were inserted into this install since this morning.

The C6 version of 14D1.00 will follow in a few days. As mentioned in an earlier posting, I'm now doing all CHT forward work right in C7 so that when the C7 work is done, I need to double check everything in C6. In the past I've always worked forward from C6 to C7. Look for the C6 version of this build early next week.

Keep an eye here over the next few days for various postings outlining various changes and additions incorporated into Build 14D1.00. Similar posting will (over the next week or so) be posted to the What's New Page and to my blog, The CHT Blogger.

Cheers...
Gus
Gus Creces
The Clarion Handy Tools Page
Visit Website

Tuesday, October 12, 2010

Code Signing Your Applications (Video)

We've just completed a video that talks about code signing. It discusses the purpose of code-signing, and how you can self-sign your applications free of charge using a new CHT Utility application called Handy Code Signing Utility.
The video is self explanatory so it should need no more introduction, click the link below to watch this 30 minute video:
Code Signing Your Applications

The application being discussed will be available in our 14D1.00 build available this month (October 2010).

Cheers...

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

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