Tafres, Security, Automatic Updating, and Online Activation

Last night I successfully got both the Tafres Client _and_ Server to a stage where each of them:

– Checks for updates over the web on startup. If one exists, that is a greater version number by it’s logic, it will ask to download. Once the download is finished, it will ask to install. There is an issue with the Client because it asks to "exit" the program. The update logic works best when the program can shut down silently. Will have to do something about that. Anyway, the installer runs and updates.

– Runs a 10 Day Trial. I haven’t yet worked out whether the 10 day trial will always just happen, or whether the user will need to get the activation code online to get the 10 day trial. Never the less, at the moment, both can be done.

– Allows for the the retrieval of an Activation Code (part of the Licensing information needed) over the internet. This is done using Secwin Online Server, and Secwin.

This is very cool. In terms of support, you want these two things in place before going out into the big bad world. I need my product secure. But it needs to be trialled. It also needs to be updated as painlessly as possible. I’m getting there with the current solution, although there will be some tweaking I can already see.

Along with this, using SetupBuilder I now have the process of creating Installs and Updates working pretty well.

– the file structure is <Product Name>\\<Version>\\ … then in that folder, I have both the Install and Update SetupBuilder files. Also, these folders: <source>, <external source>, and the two that are created by the SB files themselves, which store the Install and Update respectively.

– the updated files (of mine) go in <source>.

– any changes to 3rd Party or stock Clarion files (dlls) go in <external source> (these are used for the Update logic).

– Open up the Install file, change the [DEVFOLDER] value in the script section. Obviously, this is giving SB a base folder to work from. Practically, I just change the version number.

– If I’ve added new functionality that requires new DLLs, I run a static scan on my exe(s), done in the top panel of SB. This adds any new dependencies.

– Compile.

– Open the Update file (close the Install). Change the [DEVFOLDER] value.

– If any changes to 3rd-Party or Clarion DLLs, run the "Project->Task Automation->Perform Auto Update Scan .." action, and check the differences between the <external source> folder in the current version folder against the previous version folder. This adds any changed DLLs to the project.

– If any new dependencies have been added, I run a static scan on the exe (as in the Install).

– The main exe will already be in the Application Folder, with a  "patch" moniker. I open the file’s details in SB and change both the source and patch folders (change the Version number) to reflect the new versions.

– Compile the Update. This takes a little while longer than the Install, but not much. A very nice and small (if only changes in the main exe for example) Update exe.

– I then update the XML file in the <TafresClient-Update> folder (SB creates a folder with the same name as the SB file itself to store the builds in) to reflect the new version number.

– Now it’s time for uploading the Update exe and xml files to the ftp site that Safe Update looks at. Done.

– Finally, I upload the Install.

– I’ve kept my Install and Update filenames generic. I started out sticking the version number in them, for visual reference, but too many things would have been harder. Safe Update, Changing more stuff each time in SB. Generic names keeps the process streamlined. It also means there is only one set of files on the server, not one for each version.

Phew. That’s quite a post. I think I need to spend some time doing this with screenies and wotnot. Might be helpful. I’m planning to do a bunch of stuff for the new Clarion site, and these pieces of development functionality will go in as tutorials at some stage. So probably won’t do it again here.

Clarion Dev Thought For The Day

Why can’t we have Update procedures linked to the context of the record in the browse, not the browse (or the file for the browse) itself?

This is relevant in the case (and no doubt more than this) where you have a 1:1 relationship between a ParentFile and many ChildFile’s.

I have a browse of the ParentFile, but I want to update the ChildFile.

Now, in the reality of Clarion (and other programming), we’d just handcode it into the browse.

But a fellow Dictator of Code has been starting out with NTWS (NetTalk Web Server) and we were discussing the particular issues he was facing taking the BigAss ™ database and showing it in NTWS.

The concept, to me, seems so simple. You have a defining context for the record, and based on that context (or condition i suppose, like a case statement) you call (and prime the child 1:1 file record) the particular Update procedure needed.

Interesting .. { pinky in mouth }.

Big Body Build

A new build of Clarion .Net has been released.

Wow. There’s a lot to the patch notes. Nice work!

There are some issues with the new build, dictionary problems in the main it seems. This is the first build where the dictionary functionality is quite full featured. From the Readme,

enable the dictionary editor so that you can now add, change and delete all items in a dictionary

It’s a good step forward in terms of bulk work. I like the amount of stuff in this build.

Robert Paresi has raised some valid points on the newsgroups in the last few days. There was a particularly good (not crazy arguing, just solid good) discussion going on as to the benefits of Appearance and the benefits of Functionality, and where those two mesh (or don’t) together.

The new site is around the corner. I know I keep saying this. But it is. I’m just not sure which corner. But it’s more along than last time.

Sawyer Is Still Cool, Terminator Kicks, Stewie With A Beret

Okay, I had to post up some telly watching experiences.

Lost began on our (aussie) sets two weeks ago. Haven’t watched last night’s episode yet. But the first one was .. well, it was awesome.

They are introducing completely new tangents. The people trying to rescue them, the shack with Jacob and .. Hurley going mental, again. The Oceanic 6. How awesome was that .. triggered so many thoughts, not the least of which is "Who are the other three?????".

The Terminator series debuted over here this week. And I really liked it. Part of that is because John is being played by one of my favourite characters from Heroes Season 1, Zach (Claire’s friend who videos her dropping from the oil (??) structure).

But not just that. { yelled long and loud } RIVER! Man alive, I should have been sad to see her outside of Firefly/Serenity, but no. It was good.

Lastly, watched the double episode of Family Guy last night where Stewie and Lois go at it. Very bizarre. Stewie on the boat with a Beret killed me. Ha ha .. and more, where Brian is accusing him of killing Lois and he twists his head around. Ha ha ha. Classic. Creepy.

Something New At Microsoft

I don’t normally pimp other stuff. Wait. That’s not right. I DO normally pimp other stuff.

A guy I give a fair bit of reading time too is Scoble. He’s posted about a new project at Microsoft here. It sounds pretty exciting, but I’m a hype-monkey, so go see for yourself.

Course, there’s nothing concrete there, because he’s under some kind of Cone of Silence. Man that was a cool invention, how much fun would it be to have one in your office, and pretend to be the chief and Max.

Personally I’m also excited about the next few months Clarion-wise. Some of my projects are coming to fruition, and one will be completed (according to the milestones which are never wrong). I’ve not had an actual completed project in a fair while. Saying that I realise completed is a hard category to obtain.

Nevertheless, it is an exciting time. There’s a lot, a LOT, of cool stuff happening throughout the dev world, and I hope Clarion will be some of that.

Clarion raised me and I turned out Clarion (I just used this homer quote in a forum, but it’s so good I’ll use it again).

The Aussie DevCon, Podcasting, New Site (Not Yet)

This place is still here. I’m still posting on it :).

Geoff Spillane and I have been talking, and I realised that the Aussie DevCon is not very far off. Last year I thought there was plenty of time to kick some stuff into motion.

First thing, I would encourage anyone who is anyone who reads this blog to think seriously about attending the DevCon. If you don’t have the money, cool. I’d say talk to Geoff, but I’m not sure that there is much in the way of "funding" to help out people. Maybe some kind of payment schedule, but I don’t think so.

The Aussie DevCon is a pretty huge event for us over here. But I’d like to say that it’s becoming an important event worldwide. We got Bob over last year, and might, _might_, be getting him this year (wish fulfilment). We had Colonel Capesoft and His Boyz for three days of awesomeness, and then heckling from the back with the rest of the super-nerds. And we had some bloke talking about undies. Highlights .. yeah.

So, what I’m getting at, is that if you have the opportunity to come, you should. If you are feeling like you need to meet some new and crazy people (I make up most of the crazy), then please, come along.

Second thing, if anyone has got suggestions for the DevCon, please fire them to Geoff (or myself). Geoff is doing the organising, I’ll just make that clear. But I really think we’ve got such an opportunity that if people have ways to take hold of it, then super!

If you need emails, post a comment here, I’ll get back to you via .. email .. with the .. email.

Last night, after a few hours of work, I thought .. I could go to bed .. or I could work on the podcast.

I’m developing a routine that will stand the test of at least a couple of podcasts. It’s a bit of a blast, and last night I started voice recording. Nice. Fun fun. Hopefully the podcasts will contain something special for the community. Another little hook for newcomers, and a familiarity for us existing folk.

Just a reminder:

Clarion Folk

Stick that into your brain. It’s the new site. It’s the new brand. It’s the new Pimp My Clarion.

But it’s not done yet. The new site hasn’t come as quickly as I thought it might, but I’m not worried. It’ll be done soon. _Soon_.

Just Finished My First Can Of DC And It’s Only 8am

Crazy talking. I tell you, sleep is fast becoming my most favourite past-time. There are other things cool, like my recently re-fired Wow-crack-tastic love .. but sleep can provide something those things cannot. A recharge.

Sure, the diet coke coursing through my veins has some good points. It will rot my teeth, my stomach and probably give me some form of cancer.

Wait. Were those the good points?

It has been getting more crazy than usual lately. Last night I switched between working on the big project (a Web System, built with NetTalk, naturally), working through some conversations re the Clarion Tech Evangelist, working on the Podcast (for the new Clarion site, the format of the cast, and some recording), and doing some header image design for my company website.

Plus it was my eldest’s birthday. He was so excited all day, turning 7. Got some cool gear, and we had a fair amount of party food (although wasn’t a big party, just us and one set of g-parents). Little guy knows more about Star Wars now than me (from the Lego game on the Wii).

Bye for now.