Error: Only up to 6 modules are supported in this layout. If you need more add your own layout.

This is a little trick I tried a while back with a ClarionAddins client. They were having an installation problem which was a little tricky to diagnose when it occurred to me that the log4Net library used in the Clarion IDE can send data pretty much anywhere with the right appender. A little bit of looking around I came across Papertrail (affiliate link!) which serves my needs very nicely for now in the free version and is decently priced if traffic goes up.

The basic idea is this: Add the appropriate log4net appender to the Clarion.exe.config file, repeat the problem you are having with the IDE, let me know when you are done and I will check out the logs and see if there is anything I can spot that needs attention.

Disclaimer: Of course you will remember to back up any configuration files before you make changes right?

Step 1: Enable sending logs

(do this bit with the IDE closed!)

A while back I released a free addin that puts a Clarion Evaluate PAD in the IDE. Prompted by a user I was reminded that this needed an update to be compatible with the later versions of Clarion (it was compiled with C8). The reason for this is that the Clarion IDE itself uses the ClaRun.dll and once it has loaded that DLL into the .NET AppDomain anyone else who wants to load a Clarion DLL within that domain needs to make sure they are compatible with that runtime version. I spent a few hours looking at running in a different domain and various other tricks but as far as I can understand you are pretty much stuck with whatever is loaded first when it comes to LoadLibrary kind of calls. No biggy, I think this is a better solution anyway!

Plus… you can now use any valid Clarion Evaluate statement from the command line using the new app I made for use with my addin.

I have uploaded it to GitHub, included a C# .NET solution showing how you can use it from there.

Go take a look!! –


Command prompt demo

Oh, I found this great PDF with good Evaluate examples in case that is of any use to anyone:



Can you come on next week and give us a short chat about what you are going to talk about at DevCon and why you want to go?

John{PROP:Hickey} & Arnold Young

I am coming to CIDC2013!

The last (and only!) Devcon I went to was the Aussie DevCon, Sydney 2007. Lots of fun though I only managed to meet a few of the visitors. Since then I have gotten to know a few more of you lovely Clarion folks online and I am looking forward to meeting everyone in person.

Of course I also hope to increase the profile for my Clarion related projects and demonstrate to everyone just how much their development lives can be improved 🙂 John and Arnold have helped out immensely with getting me over there for CIDC2013 and I am looking forward to a super conference!

This last week I have had my head buried in a project to merge several databases into a few common ones. One of my clients is finding that a lot of smaller companies are combining their presence for various reasons and with it comes the need to merge what were previously very separate installations. Blah, blah, that is the boring stuff. What it means is that I have to do a bunch of things to make it work. These programs have a long history and as you can imagine with the “evolving” nature of vertical market software they also have a lot of baggage in their implementation. From what I have seen this is just a fact of life. It sure does make for some interesting jobs though!

If I get a chance I might try to blog about some of the other techniques I learnt while working on this project. Lots of SQL manipulations that are pretty cool, lots of mistakes and back tracks and lots of things I just wish there was a tool that could do the job for me. First though, this is something that I hacked together using powershell to rename a directory full of word documents that had a unique identifier embedded in the name.

The Situation

Two databases were being combined, Client records in database A would remain as they were. All Clients from Database B were copied into database A and received a newly generated SysID (Identity column) when they were inserted. The original SysID was stored in a column of the Clients table (ReferralSysID) for later reference. It could have been a temp table but this old ID was going to be needed for other things so it was decided to put it in the table itself.

If you do any work with embedding the WebBrowser control in any programming language you might find this helpful. I am kind of surprised that I had not heard of this until now, I just assumed that the WebBrowser control would simply use the most recent version of IE available by default but it turns out this is not the case!

For IE 8 and later the default emulation mode is IE7 Standards mode!!

From what I have seen there are two different ways to make sure of which rendering mode is used by IE and depending on your situation one may be more suitable than the other.