Clarion Templates :: File Manager 3

Capesoft are a company that creates 3rd Party tools for Clarion. As I’ve posted before, if you don’t know about Clarion, then take a gander. It’s an awesome development tool, taking away a lot of the pain of C++ and other languages like it by allowing you to bypass creation of stock tools, and get into the meat of designing software.

Part of the frustration with shipping software is the updating of any changes within the database. How do you do it? What convoluted mess of code do you have to copy, swap, call upgrade, hope noone is using, check for exclusive access … I’m not even sure how people writing in other languages cope. I guess you write you own upgrade tool.

Well, that’s what the guys at Capesoft have done. File Manager 3 (FM3) is a template that helps push Clarion from a "cool nifty enthusiast language" to "let’s change the world and create cold fusion while we’re at it" development tool.

Basically, it’s like this. In Clarion you have a dictionary, which contains the file structures, and you have an app, which contains the windows, the code, the look. When you change a field within a table, the physical file is required to undergo an upgrade. The process to upgrade your user’s files was complicated (as opposed to getting them to send you the file, upgrading yourself through the dictionary interface, and then sending it back), and created a lot of hassle.

FM3 takes all this hassle, crumples it up, throws it into the ditch, because the bin is too good for it, fills the ditch with gasoline, lights the ditch, then laughs at the stupidity of it all.

You plug FM3 into your application, setup whatever parts you need, and then bam … the files upgrade when your exe is run. There are some addendums to this, but at it’s heart, this is what FM3 does. Takes away any of the pain associated with changing File Structures and let’s you get on with the real job … coding up a storm.

So go take a look at Capesoft. Anyone who uses Clarion will most like already know about them, they’re that popular.

More Clarion 3rd Party Dev Shouts to come … and probably looks at other tools too. It’s all good.

Notes To Self

Environment :: Clarion

Sustenance :: Sprite Zero

Task :: looping through a file, updating a couple of fields

If you’re using logout(1,FILENAME), and using keys in the set() statement before the loop that have the updated fields in them, then strange things will happen! From my experiences tonight … I have a byte field, it is set to true … from false (in this particular eg) … and the loop hits that record twice. Once in it’s normal place (byte flag is zero), and then again at the end (byte flag is true).

I guess this has something to do with logout’s functionality and the key’d fields being updated …

And now … back to work.

SoftVelocity Gets Community

Soft Velocity is the company that is currently "making" Clarion. They have always had an active community, mostly through the newsgroup, but I’ve noticed, over the few years I’ve been a clarion user, that they, and the clarion community in general, have been slow to take on some of the better sides of the Interweb.

One of these, not so obvious at first glance sides, is that of giving back to the community. It’s so easy with functionality like a blog these days. Just becoming a little more human. There is something within us that likes to hear actual opinions and ideas from people, especially when we’re in a similar situation.

Anyway … Community Server :: Blog is one half of a new initiative by Soft Velocity.


The Other Half of the initiative are the forums. But I’m not interested in that part at the moment.

What I’m interested in, or more, wanting them to take on, is more than just that blog. I’m speaking as two people I guess. One is the Reader, and one as the Thinker. Both of these combine to tell me …

I want to see an easier-on-the-eye blog. With pictures. Pictures are good, as I’ve recently begun to see …:).

The blog should be self-contained. When you click on a post, why would it go to a completely different theme/scheme? Make it a little more friendly for the casual browser, who finds it through posts like this. Easier to navigate. To find out exactly what Clarion can do for them.

And start pimpin it, if not already. Get it onto blog sites, get other bloggers to do articles, interviews, shouts to the community. Because although it’s a great community, we want to expand. I want to be a better developer. And I want Clarion to get better. In heaps of different ways, not just functionality.

It’s an exciting time, and we should be taking hold of the methods and means that are becoming very real today.

Anyway … just a note. This is in no way a flame ladened missile. Whether right or wrong, it’s how much it makes people think. If it doesn’t change a thing, then cool. But perhaps a thought might occur while disagreeing that leads to someone becoming a better developer, furthering their understanding.

And that’s the purpose of Dev Dawn.

Clarion’s Purpose Today

As the first article for this site, I thought what better subject than the beginning. In the world of today, with all it’s newfound enthusiasm for desktop-like applications on the web, what purpose does Clarion have? The gap between desktop and web interfaces is closing, and although i’m sure there are inherant differences that mean they will never completely overlap, I’m sure for the imaginative developer those differences wouldn’t mean squat.

Clarion. It’s an awesome tool. It takes away the fuss of creating base tools in C++ (and other languages) to do the groundwork. Clarion allows you to concentrate on implementing functionality, business rules, data modelling, etc.

This is what Clarion does best. You can create an app in a few minutes. A program that at it’s core collates data.

So how is this different from knocking something up in ajax/php/…? on the web, or even using the big-gun of 4GL programming, Delphi?

The web app will always have an inherent issue with the user. Your data is being stored somewhere else other than the computer you are using.

This is a very important understanding to grasp as the developer. This doesn’t stop web development. I mean, look at It’s that I think we need to be able to develop in both places, taking advantage of the strengths of both approaches.

Security. That large somewhat nebulous concept is the big difference I can see between desktop and web. Where is your data stored? On your computer, or on someone elses? How many people can get access to your data?

I guess in the age of broadband, that difference might not be big. In fact, the more I think about it, the differences are mostly perceived. The user thinks, "Because the data is on my computer, it’s safer." With the amount of press worms and hackers get these days, the general public’s perception is most definately changing.

So if you could take that perception, and give them trust in your product, no matter what it was, you would have something. I think that’s what Google is doing. They have established trust with their clientelle. Which is everyone.

Where is this going? I’m not sure. I started out with the aim to talk about why you would use Clarion in today’s world.

I guess my mind is leading towards this :: that you might not. Depending on the situation, and what were the best tools to use. What the product was. What kind of team you have. The needs of the user, and their understanding. Lots of stuff that goes into the planning of a project.

Clarion does some things very very well. It is second to none, my opinion there, with respect to building a database application. With third-party templates and some of the icon libraries floating around, you can create an awesome, awesome looking app. And with some smart database design, intuitive interface, and exciting functionality, developing in Clarion is a blast.

So I guess, this is more of a global article. My ramblings on choosing Clarion as a development tool. And there aren’t many particularly helpful insights. But it’s an article.

Always Open

Ha ha … man alive. Tonight I got my Transaction History code down from 4 hours to 4 minutes. 4 MINUTES!

How you ask? Well, it begins and ends with my stupidity. And the crazy thing is, even with code i wrote, the 4 hours was quicker than at the beginning. Strange.

A while back, when I was trying to speed up this Transaction History (Batching) functionality, i read up on stream() and flush(). This progressed to logout() and commit(). So I put them in, and as said, this sped up the operation (runs through a handful of files, which each have a few thousand records). But it wasn’t very quick. I mean, 4 hours is okay once, but I found myself needing it done quite a lot. Which might be a problem in and of itself.

Anyway, then, the other day, i discovered something.

Wait for it. It’s a kicker.

I hadn’t opened (.UseFile() is what i use lately) the files used in the batching before calling them in logout().

Like i said, crazy stupid.

What’s even more bizarre is that not opening the files, but calling logout() still had some effect on the speed. Anyway, chalk that one up to needing more cranial capacity. Such a simple thing, so obvious, yet i missed it for so long.

The Clarion Call

Posted to the Clarion Newsgroup re this site.

Hello to any Clario-Newcomers! Thanks for visiting. May your stay be profitable and/or interesting. Well, really, you’d like it to be and. I’d like what I do to be profitable and interesting.

Hopefully for you, this site is both. Development is what we are about.

Anyway, digressions aside … welcome!

D-umb L-ittle L-aws

Having fun with DLL’s and Clarion. Want to post up here my experiences, so at least something is down on "paper". The Rules … The Rules!!! They’re a little crazy sometimes.

At least I’m beginning from scratch. Whereas the Great Benefactor* is breaking up 6 billion procedures into dlls.

So anyway, more later on this.

* a.k.a. Mr. S