Developing filePro apps for developers

Brian K. White brian at aljex.com
Sat Jun 16 01:38:02 PDT 2007


----- Original Message ----- 
From: "Jay R. Ashworth" <jra at baylink.com>
To: <filepro-list at lists.celestial.com>
Sent: Friday, June 15, 2007 2:49 PM
Subject: Developing filePro apps for developers


> On Fri, Jun 15, 2007 at 08:32:57AM -0400, Walter Vaughan wrote:
>> I did have an idea that could make your accounting app work in a
>> method that would allow for you to keep improving it, and yet allow
>> developers to make changes to their systems and not break things.
> [ ... ]
>> So we worked with (paid) someone who was helped us to setup an SVK
>> repository. SVK is a tool that acts as both a svn client and svn
>> server. So we can pull down the laterst svn (they call it smerging!)
>> from the parent project, and our internal people syncronize with our
>> local repository.
>>
>> I guess since I've not worked in a version control system before, but
>> it seemed like magic in that it really worked. I know who changed what
>> file and when, and can get diffs, roll back... our developers can
>> quickly build patches for the parent project or commit local changes
>> and everything works.
>>
>> And the first place ourside of our internal needs I thought of was the
>> problem that was discussed a few weeks ago on the filepro list with
>> your accounting system.
>
> But, alas, that won't help him.  His fundamental problem is going to be
> field number conflicts between *his own* changes and extensions, and
> those of downstream developers or users.  Short of *requiring* that all
> changes and extensions be made as one-to-one sibling files -- which is a)
> a pain in the ass and b) unenforceable anyway -- I see no way to get
> around that.
>
> It's the fundamental problem with trying to do what John's trying to do
> (and indeed, what Fourgen did 20 years earlier) in filePro.  It's not
> the *only* problem with trying to apply F/OSS development methodologies
> -- or indeed ones which got started there, and moved back into
> proprietary development, like source code control -- to filePro, but
> it's a biggie.

Too right. Our answer to that problem was, we just about stopped selling 
software and switched to selling subscriptions to our software and the 
servers it runs on and the backups etc...

We all develop on one development box, which no users live on but which 
contains some dummy data to work with as well as the code and is otherwise 
the same as the other boxes.
And we have an rsync script that pushes the code out exactly the same to all 
the live application server boxes, excluding only keys, datas, & indexes, 
including menus and printer tables etc.. twice a day it'll do the whole 
filepro directory from cron, plus any developer can run it on demand.
We have a another similar script to make it painless to push out other files 
that commonly need to be broadcast as part of development like scripts or 
cgi scripts, fpmerge template files etc, which also has a mode that makes it 
painless to use it to push out a specific file from the filepro directory, 
like just a single output format, instead of having to do the whole mass of 
files just to get one teeny change out.

It's helped in other ways too. I as the server/network/power/plumber guy 
have fewer boxes to nanny over, and more control over them, and can make 
them all more and more identical to each other and keep improving ways to 
automate the few things that do still need to remain different on each box.

Theres more to it of course, like I had to make scripts to make it painless 
to delete a qualifier, copy a qualifier, copy a qualifier from one box to 
another, which between those also gets you rename/move a qualifier both 
locally and across boxes, all in-place without disturbing the other 80 
qualifiers on a given box in the same filepro tree. Had to make an ap-alike 
for linux to make it less painful to copy users from box to box. I'm just 
starting to experiment with using server hosting companies instead of buying 
servers ourselves, to get the hosting comanies better networks and 
facilities and to spread the users around to more different physical sites 
so that a single telephone pole getting hit by a drunk driver doesn't take 
out the whole userbase. It's both a little more hassle for me and a little 
less. But largely it's about equally simple to host the users just about 
anywhere.

We still have to save up restructure type tasks and do them together and 
infrequently, on every box manually.
It's a few steps but not too many to make a box quiescent so no new filepro 
process will start while doing the restructure work, yet without getting in 
the developers way like say  renaming *clerk & *report would. create 
/etc/nologin, shut down cron and apache, kill off any remaining fp-related 
process, do the work, release the hounds and move to the next box.
Thats a future project for me. To get a script working that can rsync out 
maps and index definitions and run autoshufs and dxmaints remotely, 
_reliably_, or at least so you never miss if it fails anywhere.

We were getting really bogged down before with so may customers with their 
own servers and their own bags of site-specific network and user problems, 
and many of them wanting essentially the same software improvements we had 
to all spend so much time doing over and over again. Not only was it boring, 
and prone to error, but while we are writing the same single improvement 25 
times on 25 different versions of our stuff on 25 different boxes... all 
that time we are _not_ writing 25 _new_ improvements to the core app and so 
the app gets older and older without getting much better.

It's not ideal but it's allowed us to get out of the mud and run for the 
last few years anyways.

Brian K. White    brian at aljex.com    http://www.myspace.com/KEYofR
+++++[>+++[>+++++>+++++++<<-]<-]>>+.>.+++++.+++++++.-.[>+<---]>++.
filePro  BBx    Linux  SCO  FreeBSD    #callahans  Satriani  Filk!



More information about the Filepro-list mailing list