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

Some Server Ideas For Our Contest

I thought I'd prime the pump with some ideas for browser server ideas that might interest some of you intrepid server designers out there.

Remember that a burgeoning market for software of this sort that runs on hand-held smart phones and the whole host of tablet devices that will be hitting the market in 2011. Even if some of these things have been done before, aiming for this new platform may just give an old idea new life.

Schedule Software:

• View Work Schedule
• Personal Time Scheduler
• Personal Reminder (enter event and it phones you or emails you when the event is close)
• Meetings Scheduler

Work/Travel:

• Expense log
• Sales Call Updates, Reports

Maintenance:

• Machinery Maintenance Updates, Reports
• On-Line "Honey Do" list

Store:

• Software Web-Store
• Specialty Items Web-Store
• Digital Photos Web-Store
• Item Made to Specification Web-Store (eg: Made to Measure garment)
• Digital Audio Web-Store
• Digital Video Web-Store
• Tickets to Event Web-Store

Blog

• Personal/Business Blog Engine (small format for smartphones and tablets)

Customer Support

• Version of CHT Support Forum with small format interface for smartphones and tablets (self adjusting by device detection)
• Product Information Lookup System

Software Delivery

• Secure, Interactive Software Delivery Server (using browser as client)

Clubs

• Bowling Club scheduling, scoring,
• Golf Club scheduling, scoring

Surveys

• On-line Survey Taker, Results Displayer, Reporter

Reports

• Ask for dynamic PDF reports with input query parameters (best for computers not smartphones)

Advertizing

• Classified Ads Server (eg: http://toronto.kijiji.ca/)
• Display Ads Server (like Adwords, ads of various sizes that can be requested for insert by other web sites)

Telephone

• On-Line specialty Phone directories

Ok, that's a start.
I'm personally going to:
1) Add a second set of interface scripts to the CHT Forum Server
2) Add a forum server that serves up a smart-phone version of the CHT Forum
3) Add a software web-store server (I'll be able to use this to resell all the servers you guys write) ;-)

Feel free to attach other ideas as you brainstorm.

Cheers...
Gus

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

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

Thursday, April 1, 2010

For "Newbies" Getting Into CHT

To get "into" CHT, a good place to start is with the videos and the demo apps. There are about 130 demo apps which are briefly described by topic in this document: http://www.cwhandy.com/chtapplications.html

A good video to watch in order to get an overview of the CHT toolkit was recorded with Clarion Live! this past November, 2009. This video is linked from our home page under the menu item "Free Videos". The video menu item is entitled: CHT On Clarion Live! - > Clarion Live! Seminar #31 - Nov 2009.

There are also 35 other videos available from the "Free Videos" link on our home page. We suggest you leave these other videos until you begin studying the demo apps to which they're related.

We suggest you start by watching the Clarion Live! 3-hour video before anything else, and follow that up by studying the demo applications. Use our demo applications document to find demo apps that match the topics you're most interested in following up on first. The apps list is broken into categories of functionality.

Next, become familiar with the global AACHTControlPanel Template populated into all of these CHT demos to get the demo app to list for you all the templates it's using. Each template listed will then further link you into our template description document. How to do this is illustrated in the Clarion Live! video. From here, you can also get the application to tell you all Classes it is using and that generated document further links into an HTML representation of our class headers.

AACHTControlPanel, and all CHT templates for that matter, have a "Subscriber Support" dialog that links directly - and automatically - into our support forum where you can ask a question when you feel you need to. Here, I or one of our long-term users, will be happy to help you by answering questions. The forum has a print-to-PDF function with which you can print out a particular posting or a whole thread of postings if you need a hard copy for future reference. The CHT forum has been running since April 1st 2004 (in fact today, April 1, 2010, is its 6th anniversary) using CHT web technology and our data base contains over 50,000 entries threaded by subject - or by question asked as the case may be.

Shipped with CHT are the last 3 years of What's New Documents in PDF format. These are in located in \clarion6\3rdparty\hnd\pdf\ or \clarion7\accessory\hnd\pdf\. They're also linked from START Button -> All Programs -> "The Clarion Handy Tools" or "The Clarion Handy Tools C7" as the case may be.

Demo applications are located in \clarion6\hndapps\ (C6) and in a directory designated by you at install time in Clarion 7.

Starting in late May or early June, after our series of five Clarion.NET on-line seminars we will begin providing CHT subscribers with a Clarion.NET installer and an early version of CHT for Clarion.NET and some demo apps.

Cheers...
Gus Creces
The Clarion Handy Tools Page
www.cwhandy.com
usersupport@cwhandy.com
April 1, 2010

Target 100: Discount Offer

It's been three years (November 2007) since CHT conducted any kind of reduced-price subscriber drive. In our 2007 campaign, we offered a "Target 100" discount of 40%. In other words, the first 100 individuals to take advantage of the discount received the discounted price. Actually, no-one who asked for the discount via our "Target 100" order page was refused, even when we went slightly over target.

Obviously, that campaign was very successful and many of the 100+ developers who took advantage of it are still CHT developers to this day.

Starting immediately, we're offering a similar "Target 100" offer at an even larger discount of 50%. Our 2010 "Target 100" order page (link below) will stay up as long as we're under 100 new subscribers who purchase through this special page. At the end of the day on which our "Target 100" objective is reached (or exceeded) we'll take the page down. That means, as long as you are able to reach the "Target 100" page, you're able to purchase at the discounted price.

Click the following link to get your half-price CHT subscription before it's too late to get this amazing discount: http://www.cwhandy.com/target100.htm

The list of links below should explain fairly clearly the kind of advances you'll miss by not becoming a regular Clarion Handy Tools user.

http://www.cwhandy.com/march2010.htm
http://www.cwhandy.com/february2010.htm
http://www.cwhandy.com/january2010.htm
http://www.cwhandy.com/december2009.htm>
http://www.cwhandy.com/november2009.htm>
http://www.cwhandy.com/october2009.htm
http://www.cwhandy.com/september2009.htm
http://www.cwhandy.com/august2009.htm
http://www.cwhandy.com/august2009.htm
http://www.cwhandy.com/july2009.htm
http://www.cwhandy.com/june2009.htm
http://www.cwhandy.com/may2009.htm
http://www.cwhandy.com/april2009.htm

Templates overview as of this build: http://www.cwhandy.com/chttemplates.html

The CHT toolkit has been growing at a rate of 25% per year. You can get some feeling for how much new stuff is added yearly by studying the the following summary of new/revised-in-2009 templates from just 2009 alone: http://www.cwhandy.com/chttemplates2009.html

Demonstration applications overview as of the current build: http://www.cwhandy.com/chtapplications.html

More about The Clarion Handy Tools: http://www.cwhandy.com/presentcomponents.htm

TEN REASONS FOR USING THE CLARION HANDY TOOLS
01) Used in over 25 Countries...
02) 398 + Templates and JumpStarts and over 11,000+ Class Methods...
03) CHT Support Forum averages 30 unique visitors every day of the year...
04) First with a subscription-based 3rd party Clarion toolkit...
05) First with an all-source code 3rd party Clarion toolkit...
06) First with an all-inclusive, fully-integrated, one-price-for-everything Clarion toolkit...
07) First with a wide variety of on-line, hands-on courses to help you improve your CHT developer experience...
08) First with source code all-Clarion internet servers for Browser Web apps and Client Web apps...
09) First with a commitment to document our entire library of classes and templates with video lessons...
10) First with a commitment to help developers make the migration to Clarion 7 and/or Clarion .NET...

Click this link to get your half-price CHT subscription before it's too late to get this discount: http://www.cwhandy.com/target100.htm

Cheers...

Gus Creces
The Clarion Handy Tools Page
www.cwhandy.com
usersupport@cwhandy.com
April 1, 2010

Monday, February 22, 2010

Small CHT (for C7) Update Posted Today

Discoveries made over the weekend have motivated me to do a small, not-renumbered, update this afternoon.

Earlier in the weekend I posted a problem with ABPROGRM.TPW one of SV's base application templates which due to the use of
#OPEN('PROG02.$$$') instead of #CREATE('PROG02.$$$') causes corruption of generated .CLWs under stress circumstances and particularly on XP machines. The problem caused by this bug is actually worse than I'd imagined - especially on XP machines.

The gist of the above bug is that #OPEN is used to create a fresh temp file instead of #CREATE. Thus, whenever PROG02.$$$ from a previous app is not erased - say by a template error, C7 then generates information from the current app into a temp file file created by a previous application or module. I've seen this numerous times, especially when compiling apps using CLARIONCL.EXE the DOS-prompt utility for generating applications.

I discovered yesterday, when perusing the SV newsgroups that C7 has a bug with the REMOVE command. In C7 (particularly in the context of XP) this command produces an errorcode 5, even though the file was successfully removed. Since the C7 template generator uses the C7 runtime library, I tested #REMOVE, the template version of REMOVE. It has the same problem.

So combining the #REMOVE bug with the #OPEN/#CREATE bug, you can see that the incidence of corrupt .CLW file generation is quite high - in the context of XP in particular.

The remove bug also explains why a utility called HNDABCHKC7.EXE was not correctly fixing the ABUTIL.INC file and changing the prototypes the way that it should have been. C7 users had to run WEBUPDATER C7 to have this change take place because C7 Webupdater is actually compiled in C6. The HNDABCHKC7.EXE utility is compiled in C7 and is executed from the C7 templates such that should you load C7 with any app containing CHT templates, the utility runs and make the ABUTIL.INC change for you without you having to do anything. Our C6 templates have done this for a number of years. The problem was C7 REMOVE is broken.

So, I've reposted our C7 build with a workaround to account for this C7 REMOVE bug, both in the CHT classes and in our templates. Further, I've reposted a new version of HNDABCHKC7.EXE compiled with this workaround.

I've also spent some time reworking HNDCOMPILE.EXE and have re-recorded the accompanying video to provide more concrete examples showing queries.

That new HNDCOMPILE.EXE video is here: HNDCOMPILE VIDEO. This is a 3.5 MB video so give it some time to download.

When you run your Webupdater C7, the changes discussed above will come down to you in the usual manner.

Oh, one other thing. Our HNDABCHKC7.EXE utility, looks for and automatically corrects this #OPEN/#CREATE bug reported above when you open any app that contains a CHT template. Of course the utility only does this if the correction is required. HNDCOMPILE.EXE also checks and makes the correction should it be needed, when you run HNDCOMPILE.EXE as illustrated in the VIDEO. Down the line, when SV makes a permanent correction, I'll remove these double checks.


That's all for now. Have Fun.

Cheers...
Gus Creces
CHT
Visit Website

Thursday, February 18, 2010

New CHT Build 14A1.01 Posted

We've just finished testing and posting CHT Build 14A1.01 in both C6.x and C7.x versions.

This version removes all dependency on HND*.LIB files with the exception of HNDSPELL.LIB and HNDML.LIB. These two remaining .LIBs are based on CHT DLLs which are exclusive to CHT. All other HND*.LIBs which may have potentially included WINAPI functions located in MS Windows DLLs, used by Clarion or other 3rd parties, will be removed from your CHT installation by our installer because they are no longer necessary. The WINAPI functions in various CHT classes that once depended on these .LIBs are now accessed by dynamically loading the Windows DLL in which the function(s) are located.

This avoids entirely the possiblity of a "Duplicate Function Declaration" error (or similar) produced by the Clarion compiler.

You do not need to change anything in your CHT based apps to incorporate this change.

Other changes in Build 14A1.01...
New Demo APP called: HNDZIPBACKUPTOGMAIL.APP an app that lets you zip some files and send them to your gmail account as a backup mechanism.

Significantly Changed Demo APP: HNDGMAILEXPLORER.APP this app now lets you enter your own GMAIL account and visit your gmail account with a single click. There's also a backup to GMAIL capability in this application.

The HNDERROR class which is derived by all CHT classes - and are hence available for error trapping and logging - now has a direct capability to write to the windows error log. You'll remember that in previous CHT versions, you needed to add the HandyCOMEventLogger template to your procedure. While this template and its accompanying DLL-based functionality is still available, you no longer need this in order to log errors to the Windows Error Log. The functions involved are described in HNDERROR.INC and look as follows:
!Windows event log direct from this error class.
PostWindowsEventLog PROCEDURE (STRING xDescription, LONG xType=HND_INFORMATION_MESSAGE, LONG xCategory=0),BYTE,PROC,VIRTUAL

GetLastEventLogged PROCEDURE (),STRING,VIRTUAL

LogErrorEvent PROCEDURE ( STRING xsMessage ),BYTE,PROC,VIRTUAL

LogInfoEvent PROCEDURE ( STRING xsMessage ),BYTE,PROC,VIRTUAL

LogWarningEvent PROCEDURE ( STRING xsMessage ),BYTE,PROC,VIRTUAL

Cheers...

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

Thursday, December 31, 2009

Happy New Year to CHT Subscribers in 25 Countries!


We've just finished posting Build 14A.00 in time for the new year!



And 2010 is CHT's 14th year. We're kind of glad to have year 13 behind us. ;-)

Looking back at the document CHT Templates New/Revised In 2009 I see that some 60+ templates were either added or revised in 2009. Considering that most of these templates also use
at least one underlying CHT class, that means also that there are a lot of new and revised classes added during the course of 2009. Combine that with having to test everything twice - once for C6.3 and once for C7.0 and then again
for C7.1 - and your CHT tool guy has been a busy boy. ;-)

All in all C7.1 looks pretty good. There are a few quirks that need to be ironed out but the product is nearing stability and reliability. I don't expect to freeze C6.3 forward development in 2010, since I think many of you are not ready to migrate completely to Clarion7 yet. But that's something I'd like to get feedback on during the course of the upcoming year.

Over the next couple of weeks I'll be posting information on our January What's New Page about this build. I've completed some of the SUGGESTIONS posted here during 2009and will continue to work forward on any that I didn't complete. And, of course, feel free to make SUGGESTIONS for new features or requirements as you think of them.

Come to think of it, Johan De Klerk, I've added a couple of new functions to HNDUTIL which we discussed last week having to do with uniquely identifying the hardware on which your software is running. These functions are:


HNDUtil.GetWindowsSerialNumber PROCEDURE ()
HNDUtil.GetHardwareDriveDeviceID PROCEDURE (LONG xDrv=0)
HNDUtil.GetHardwareDriveSerial PROCEDURE (LONG xDrv=0)


You'll remember I added a .NET based implementation (for Win32) last build for getting the hardware serial number from a drive. Johan has customers whose machines are not, in many cases, ever going to be .NET compliant, so he asked me for a straight Win32 implementation of this functionality. Johan, this should give you what you need. On older machines you may have better luck with GetHardwareDriveDeviceID than with GetHardwareDriveSerial. Both functions will give you something unique tied to hardware that cannot be copied from one machine to the other by cloning the contents of a hard disk. GetWindowsSerialNumber will give you something unique as long as the two machines don't boot from the same copy of MSWindows.

As a temporary measure, mostly for my own benefit, I've created a small DOS prompt app for C7 that generates a batch file for bulk compiling C7.1 solutions. As long as the .SLN and .CWPROJ files for an app exist and the .CLWs have been generated earlier. You can batch compile your apps using a .BAT file generated by HNDCOMPILE.EXE located in c7/accessory/hnd.

Here's how to use this:
1) Shell to the DOS prompt
2) Change directory to where your apps are located and from there type as follows: use your own c7 path).
3) c:/c7/accessory/hnd/HNDCMP.EXE HNDNET*.SLN if you only want to batch compile apps matching that wild card.
4) You can have the created EXEs compressed by adding a 1 after this as follows:
c:/c7/accessory/hnd/HNDCMP.EXE HNDNET*.SLN 1

As I mentioned in an earlier post C7.1 broke the command line app generate function /ag which worked in C7.0 so for this to work your apps are going to have to be already fully generated. This also assumes your machine has MSBUILD.EXE on it, which it will given that this is what's used by C7.x to build your solutions. The trick may be that your DOS path does not point to the directory where MSBUILD.EXE is located. I'll leave it to you to work that out for yourself by modifying the DOS path statement.

I'm working forward on HNDCMPC7.APP which will work pretty much like C6 HNDCMP.APP minus some of the C6-specific features and including some C7-specific features for batch compile. I was able to test-compile all 104 C7 demos with the temporary HNDCOMPILE.EXE method described above.

That's all for now. Keep a lookout on the January 2010 What's New page for ongoing elaborations of CHT features added in 2009.

Any questions, or suggestions, feel free to post them here.

Best of the NEW YEAR to all of you!

Cheers...
Gus M. Creces
The Clarion Handy Tools Page

Tuesday, August 25, 2009

Small Upated Posted to Build 13C1.00

We've just posted a small update now available via Webupdater (C6) and Webupdater (C7).

FIRST...

The new Tape calculator now has a new function:

PassCalcTapeText PROCEDURE (STRING xTapeText),VIRTUAL

You can embed into this function inside your app to pick up the string that contains the current display tape value. This function is called anytime the EQUAL key on the calculator is pressed. This function works equally well with a threaded or unthreaded calculator.

SECOND...
There was a problem with the calculator maintaining focus when implemented as a Threaded calculator any time the EQUAL key was pressed. This has now been solved so that you can use the calculator entirely from the keyboard (without the mouse) and even after the EQUAL key is pressed, focus on the calculator is maintained.

THIRD...
Both Calculator templates (HandyCalcTapeEntryControl_ECF, HandyCalcEntryControl_ECF) now pass the picture that you place on the template-provided entry control to the calendar. Rather than using ROUND() internally, the HNDCALCCONTROL class now performs a FORMAT() of the calculator register data when you click the RD key.

FOURTH...
I revised the HNDDISK function called DRIVESPACE.

HNDDisk.DriveSpace PROCEDURE (STRING xRootPath, *STRING xFreeBytes, *STRING xTotalBytes)

This should now return the xTotalBytes value correctly for Terrabyte sized drives. The function was and always has worked correctly for drives smaller than one Terrabyte. The data width has now been increased from 40 bits to 64 bits so that we can pick up the size of these drives correctly. One caviat with this function. With terrabyte drives, the function will return smaller sizes if the user asking for drives sizes has been assigned a disk quota. A disk quota determines how much data any user is allowed to place on the drive, so it stands to reason that this is seen as the largest disk size available to the user, hence that is the disk size. Without a disk quota, the true size of the drive is available even with the over 1 terrabyte drives.

FIFTH...
Someone asked last week if the HNDLRNSV.APP was available for C7. It wasn't at that time but we've included it in this update.

SIXTH...
The HNDZIPNEMAIL.APP provided with with C6 and C7 is now the same as the one I posted on the SV forum this past weekend. This later version (V 7.5) allows for multiple configurations that can be recalled with the click of a button.

SEVENTH...
HNDDATES has been changed to reflect a higher Maximum Clarion date value which was introduced a couple of years back, with C6 I believe it was. The enforced Clarion Standard Date range is now January 1, 1801 through December 31, 9999.

That's all for now. You can pick up these changes any time with your WEBUPDATERs.

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

Friday, August 21, 2009

Automatically Compress Your EXE's When Compiling

A global template we haven't yet told you about called, HandyExecutableCompressor can be attached to your application as a child of our master global template AACHTControlPanel.

When enabled, this template generates and executes (after compile has completed) a batch file which invokes a shareware executable compressor now included with CHT. Your executable file (.EXE) is compressed by 2/3 without affecting it's performance.

This has some obvious benefits, especially for security in making your .EXEs more secure against hackers looking for embedded strings such as passwords. If you're providing direct-downloadable executables it saves you having to first ZIP the exe while still reducing web-transport overhead by 2/3.

Click this link to view a short video that illustrates the compressor in action:
HandyExecutableCompressor Video

Cheers...

Gus Creces
The Clarion Handy Tools Page
www.cwhandy.com
support@cwhandy.com
August 21, 2009

Wednesday, August 19, 2009

Webupdater (C7) Change Posted

We've just posted a change to the C7 Webupdater to provide a set of menus under HELP along the lines agreed upon by 3rd party developers. We've used the naming convention suggested by Lee White which I gather is now the default for how these menus should integrate into the C7 IDE.
That is Help -> Accessory -> Clarion Handy Tools -> Various menus and sub-menus.


chtc7help.gif



At the same time, we're having the installer remove all but one of our support applications from the Tools menu, leaving only the CHT backup tool under the IDE's TOOLS menu. All others have been moved under HELP as they were primarily help related.

We've also added a new submenu to the CHT section of help called "CHT Videos Direct". This is a section of short instructional videos (.SWF) that you can run as needed directly from the C7 interface. Specific videos will not stay here indefinitely as we plan to use this area to introduce new features, or to draw attention to under-utilized features in an effort to make you familiar with their use. Videos retired from here will make their way to one or the other of our video player apps, or perhaps both.

Since we don't use any other 3rd party tools at CHT, we're not able to see how this "Accessory" menu integrates with what other 3rd parties have done or may be doing. We have endeavored to follow the conventions agreed upon for integration with C7. Feel free to post suggestions (perhaps with screen snaps) if you have something constructive to add to this. Changing the menu layouts is no big deal if necessary for better overall integration.

Cheers...

Gus Creces
The Clarion Handy Tools Page
www.cwhandy.com
support@cwhandy.com
August 18, 2009