|
![]() |
Tools used to build this web site
As experienced developers on Unix systems, we're accustomed to using its many tools to help us get things done, and to writing new ones when the need arises. Three that we use a lot, including to build this site, are perl, m4 and make. Perlperl is a useful, if ugly, programming language that allows all kinds of otherwise cumbersome tasks to be automated. It's especially good for complex text processing tasks. We use it to generate the actual code that is used to call Oracle stored procedures from web pages. These calls are defined in two different languages, across many files, and have hundreds, and sometimes thousands of details that must match exactly. Most of these details can be deduced from simple definitions according to predictable rules, and so we wrote a perl program to handle all these details for us, so we never have to worry about them again. m4m4 is a Unix macro processor. We use it to pre-process the vast majority of the code and data that ends up on the web site. It allows us to refer to repetitive or changeable items within pages using symbolic names for clarity and ease of maintenance. It also allows us to give meaningful names to attributes and values that would otherwise just be numbers or other data, implicitly documenting them. And it lets us share useful code and data between projects in a consistent way without depending on some feature of the web serving environment to do it for us. This allows us to make site-wide changes by changing just the definitions file. For this site, we have used m4 to define stable but changeable information such as the site name, URL, default values for the site preferences and Colour Selector, and for our e-mail addresses. makemake is a venerable Unix program that automates the process of building software according to programmer-defined rules. We use it to build the site from its source files. This lets us process or transform these files in complex ways consistently without worrying about the details or missing out important steps. It also allows us to have a complete separation of the actual web site's files and data from the versions that we work on, making version control easier, and avoids the need to ever change the live site's files directly. |
|
||||||||||||||||||||||||||||
Separated style from content
We used the combination of m4 and make in 1995 to build the BarclayNet web site. As with this web site, each section on the Barclays site was colour-coded; section and page information for the 200-page site was held in one definitions file (which was itself generated from an Excel spreadsheet). The definitions file acted as a site style sheet. Like CSS today, design and content was separate and styles were defined in a single file for easy maintenance. However, unlike CSS, because web pages were pre-processed before they were made live, every visitor had the advantage of the styles regardless of what browser they were using. Although CSS is a welcome innovation, whether visitors benefit from it depends on the technology they use. By incorporating presentational information into the page as it is generated, the server can compensate for deficiencies or special needs of the browser, and can also make more wholesale changes to the structure of the information presented without sacrificing control. As new presentational technologies such as XSLT mature, we incorporate them as appropriate into the work we do. However, it's likely that we'll keep using all the features that Unix systems have to offer, and we'll keep drawing on our knowledge of software development tools and processes to build sites that are flexible and robust. |