FloSoft Logo
FloSoft Systems
Developer, not business, friendly

fileBuilder Product Description

 
 

Don't Repeat Yourself

Odds are, if your a typical computer professional, you have to routinely maintain files and other content that contain a large amount of repetition. For example this web site has the header (banner and navbar) on everypage and the same footer (copyright message, various web standard certifications and what ever links we have placed there in an attempt to increase our traffic). Sandwitched between these two element is the actual unique part of the page (this text for example). There are several solutions that are typically used in an attempt to keep all this organized:

  1. Cutting and pasting the common components from various files into other files
  2. Use some sort of run-time scripting language like PHP to build the file as needed
  3. Use some sort of hacked together script to automate step 1
 
 

But My Files Differ in Subtle but Critical Ways

If you're maintaining a set of nameserver records for a hosting service, for example, then you will be repeating the same general file over and over again with only slight changes to reflect the given file. As an example, here is the named record for FloSoft Systems:

flosoft-systems.com. IN SOA ns1.arlin.net. root.arlin.net.
	(
		2006081401
		28800
		3600
		604800
		38400 
	)

				   IN A 		72.3.200.112
flosoft-systems.com.   		   IN NS 		ns1.arlin.net.
flosoft-systems.com. 		   IN NS 		ns1.arlin.net.
mail.flosoft-systems.com. 	   IN MX 10 		flosoft-systems.com.
www 				   IN CNAME 		flosoft-systems.com.

And if I want to add a new domain (assuming I am FloSoft's hoster [Arlin Technologies]) we just need to change all mentions of flosoft-systems.com to be whatever the new domain is. Let's say it is the site for the Miai Foundation for Sustainable Intellectual Works (miai-siw.org) which is also hosted by ZendURL then the file would read:

miai-siw.org. IN SOA ns1.arlin.net. root.arlin.net.
	(
		2006081401
		28800
		3600
		604800
		38400 
	)

				   IN A 		72.3.200.112
miai-siw.org.   		   IN NS 		ns1.arlin.net.
miai-siw.org. 			   IN NS 		ns1.arlin.net.
mail.miai-siw.org. 		   IN MX 10 		mail.arlin.net.
www 				   IN CNAME 		miai-siw.org.

If we are using method 1 above we have two small problems:

  1. What happens if the file format changes slightly (for example upgrading from BIND 4 to 9)? Namely how do we go back and retro fit all the existing files?
  2. Manual cutting and pasting is error prone

Assume we can set the name of the domain we want at file creation time and a tool will make all the right substitutions according to a template. Then all we need is something like this:

[DOMAIN] IN SOA ns1.arlin.net. root.arlin.net.
	(
		2006081401
		28800
		3600
		604800
		38400 
	)

				IN A 		72.3.200.112
[DOMAIN] 			IN NS 		ns1.arlin.net.
[DOMAIN] 			IN NS 		ns1.arlin.net.
mail.[DOMAIN]	 		IN MX 10 	mail.arlin.net.
www 				IN CNAME 	[DOMAIN]

And all mentions of [DOMAIN] are automatically replaced with whatever domain we are making the file for. Among other things this allows us to automate domain creation, which any serious hoster must do, by writing a little script that calls our template program with the right values.

 
 

But, I have Many Different Files with Many Different Formats to Maintain

You're correct in thinking that a non-generic solution, like the one above, would need to be retooled for every file type. That's exactly the reason why FileBuilder, FloSoft Systems' solution to these issues, uses a built-in macro language to handle these variations in files. We currently use FileBuilder for two tasks:

  1. Maintaining a consistent look at feel of our web site (to see what this page looks like as a FileBuilder template edit any URL on our site and replace .php with .fb)
  2. Inclusion of standard in-code documentation and other header information as well the same in our documentation "source code".
 
 

I Don't Want to Learn a New Language to Maintain Simple Files

Even though some learning curve is needed learn any new tool, the command language FileBuilder uses has only 4 commands and one variable type. If it takes you longer then 30 minutes to learn the FileBuilder language contact us and we will happily extend your trial period indefinitely (you will never have to pay for FileBuilder).

 
 

Developer, Not Business, Friendly

Not only is the above headline our motto, it is who we are, namely a group of freelance programmers who practice the ideals of open source development. As said in our business model and on our splash page open source has sadly not sufficiently addressed the economic realities of being a micro-ISV specifically, it makes making a living from your work next to impossible without begging for donations. In cooperation with small number of other micro-ISV's we have developed a new licensing model that allows for the best of open source to co-exist with the developer's need to eat.

For these reasons we offer a 100% functional (including the source code) 30-day trial of FileBuilder. There are no time-related disabled features. In short if you find FileBuilder to be useful in your own projects we trust you, as a fellow programmer, to pay for it after the 30-day trial period. One component of the above business model is we reward people who do work in kind on any of our products. This means if you are unable and/or feel wrong about paying for community-oriented software you can meet your obligation to us by doing some kind of work in kind. If the work in kind exceeds the price of the paid version we will even pay you for the work!