You are on page 1of 8

HACK, D.R. Utilization of scripting languages for customization of mine planning packages by specialized users.

Application of Computers and Operations


Research in the Minerals Industries, South African Institute of Mining and Metallurgy, 2003.

Utilization of scripting languages for customization of mine


planning packages by specialized users
D.R. HACK
Halstead GeoNumerics, Inc., Portland, Oregon, USA

The complexity of commercial mining software has gained rapidly over the past decade as
hardware developments have surpassed software capabilities at a staggering rate. Software users,
recognizing the limitations of off-the-shelf applications, have adapted embedded scripting
languages. Custom programming has always had a vital role in mine computing innovations,
yielding a dynamic research environment in industry and academia. Fields such as industrial
minerals can benefit from customization of existing software, since the majority of mine planning
software was designed for large metal mines. Different customization approaches utilizing
embedded scripting languages are presented, with examples of sand and gravel applications in
development. Following implementation by Surpac and development of the Surpac Command
Language, Tcl has been widely applied. Mintec introduced Python, also extensible and portable
amongst various operating systems, for use in their MineSight products. In early 2000, Gemcom
introduced the use of Microsoft Visual Basic for Applications, widely used customization tools
for a decade. Datamine implemented a flexible multi-language approach, with all program
commands and processes available through the COM Server Interface. This extends customization
from the existing macro language to scripting in HTML, JavaScript, or any language that supports
COM.

Introduction emergence of web-based applications has popularized


embedded scripting languages since scripts can be
Computer methods have been an integral component in the embedded in HTML documents. Scripting, however, has
daily life of operating mines for more than a quarter been around for at least forty years. A ‘scripting language’
century. Applications range from pre-packaged off-the- is a programming language supported by a host program. A
shelf programs to massive IT management systems scripting program (or ‘script’) is useful for the automation
customized by the vendor. The next logical step is end-user of complex routines or advanced features within the host
customization. Users from sectors for which the software program. In addition, a scripting language can be used to
was not originally designed, such as industrial minerals, integrate components and applications.
will benefit particularly from customization, by adapting Job Control Language (JCL) is reported to be the earliest
existing programs to their narrow requirements while scripting language1, used in the 1960s to sequence job steps
utilizing built-in power and sophistication. Consequentially, to arrange the flow of data in card decks for OS/360. Unix
developers have recognized scripting applications as an shells, such as sh, csh, and ksh, became popular in the early
inroad to unexplored market sectors. 1970s, and remain so, for typing interactive commands and
There is not yet a wide variety of industry specific automating common tasks. The next milestone was the
solutions to describe, as computer usage for mine planning development of REXX in 1979 was the next milestone
is fairly new for many sectors, such as sand and gravel. relevant to the advance of scripting applications in mining.
Solutions generally begin as small tools and proceed REXX was used to simplify programming tasks on IBM’s
through several generations to become more sophisticated CMS timesharing systems2, and remains influential as a
modules useful to others. The time to maturity of custom macro language for arbitrary application programs. This
solutions from user to commercial marketplace and/or concept, critical in the emergence of embedded scripting
availability to other users can be considerable. Therefore, languages in mining, means that macro languages and
this paper will serve more as an overview of aspects interpreters do not need to be designed for each application,
relevant to impending development, and a few imminent as long as the application supports the REXX programming
applications will be discussed. interface. AutoLISP and Visual Basic for Applications
(VBA) are early customization innovations that remain in
Brief history of scripting languages relevant to wide use. AutoLISP, a scripting language embedded within
AutoCAD and a direct descendant of XLISP, introduced
mining applications many engineering software users to the concept of scripting.
Astounding increases in computer speed over the past few AutoCAD Release 1 was shipped in December 1982, and
years have fostered a comparable increase in the power and AutoLISP has been included with AutoCAD since version
sophistication of scripting languages. In addition, the 2.18 (Release 6) in January 1986.

UTILIZATION OF SCRIPTING LANGUAGES FOR CUSTOMIZATION OF MINE PLANNING 115


VBA is a ‘hosted’, rather than a scripting, language but extensions and adaptations for a wide range of applications.
its implementation in mining software is as a scripting tool Mainstream commercial users eventually implement these
for customization. VBA, part of the Visual Basic family of developments.
development tools, became popular because of the need for Tcl was developed in 1988 by UC Berkeley professor
‘automation’ (interacting with and accessing the host John Ousterhout, who wanted to build a cross-application
application’s object model or the object models of other robust interpreted language with a generic set of facilities
applications) amongst Windows-based applications3. The supplied by the interpreter, such as variables, control
Object Basic project in 1990 was initiated to create an structures, and procedures 7 . Tcl was designed to be
object-oriented version of BASIC4, and by 1997 VBA was ‘extensible’, that is easy for each host application to add its
embedded in all Microsoft flagship products. Microsoft own features to the basic features of the language, which
began licensing VBA for use with other developer’s was critical to the emergence of scripting in mining
software in 1997, with over 250 current partners including applications. Ousterhout also developed Tcl’s affiliate
numerous CAD and GIS platforms, survey data processing Graphical User Interface (GUI) toolkit Tk. Because of its
programs, and popular Windows application like embeddability, it could be used to create new applications
CorelDraw5. that were scriptable and extensible without creating a whole
new language. This was also important in the emergence of
How scripting is applied to mining software scripting in mining applications.
The emergence of customization in mining software was Jacl, a pure Java implementation of Tcl developed by
generally coincident with the popularity of scripting Ousterhout’s team7, was critical to Surpac’s implementation
languages in Microsoft products a decade ago. However, of Tcl in 1998 with the release of Surpac Vision 4.0.
back then, most customization was based on macro Though the primary goal was to replace the CMD macro
languages and internal macro procedures (such as Surpac’s language, user-based customization became broadly
CMD macro language). As suggested above, the use of popular. Coincident with Tcl implementation, the Tcl
embedded scripting languages in mining applications is a extension Surpac Command Language, or Scl, was created
logical progression, integrating use of off-the-shelf to provide an interface with the data objects used internally
programs with more sophisticated programming/ by Vision. Graphical User Interface Design Object, or
customization historically performed by vendors, or GUIDO, is a Vision resident version of Tk that employs
broadening the capabilities of the limited macros developed Java and Swing technologies 8 . Scl/Tcl commands are
by users in the past. This is coincident with the emergence interpreted at run time, but the Scl extensions map directly
of scripting in web-based applications, though the full to code that has been implemented using C++. Therefore,
integration of mining applications in a web environment has there are no performance penalties as computationally
yet to be the primary innovation as developers transition intensive sections of code are executed through compiled
from being software vendors to IT management companies. code rather than interpreted code8.
Scripting is applied to mine planning packages in two Beyond Surpac’s internal programmers, independent
ways: customization of reports and other output, and the developers have developed Scl/Tcl/GUIDO based solutions
automation of tedious and frequently repeated menu-driven for Vision. The Perth, Australia office of Surpac’s South
routines. Report customization is more common at present African agent Digital Mining Services started the Z-Files
than automation, because automation requires access to Initiative9 in 2000 as the official distributor of third-party
program architecture. Report customization can be based on solutions. Other independent developers, such as
externally available data structures and is amenable to MineSched International of Vancouver BC10, develop Tcl-
customization, as long as the interpreter is embedded. based extensions and external modules for Surpac.
The embedded interpreter compiles scripts at run-time. The core of each Surpac Tcl implementation is a recorded
Routines can run in the background or be available for user macro (with *.tcl extension) of a given task. This script is
input. Using various freeware and commercial ‘wrapping’ then converted into a callable Tcl procedure, accessible via
programs, scripting programs such as Tcl can create native a GUIDO form that collects user input. Third-party
executables. In this case, stand-alone modules can be innovations, such as Tcom11, have been implemented by
created that operate on externally available data structures, Surpac developers to extend capabilities from automation
such as with CSV format files used by MineMax’s and custom reporting within Vision, to portability with
iGANTT6. popular Microsoft products such as Excel and Access.
Tcom is a Windows-based Tcl extension that provides
commands to access and implement Component Object
Scripting languages used in mining software Model (COM) objects, enabling client-side and server-side
Vendors have developed two different approaches for scripting of COM objects through IDispatch and
implementation of a scripting language: proprietary IDUnknown derived interfaces. The resultant Windows
languages such as VBA and VBScript, and freeware portability enabled data input/output connectivity with
languages such as Tcl and Python. This choice has a Excel, Access, and Project files.
significant impact on user-base acceptance and usage, as Mining software developers beyond Surpac are
well as the practicality and flexibility of implementation by introducing Tcl scripting capabilities. MineMax of Perth,
users. Australia produces the Tcl-capable MineMax Scheduler and
the Gantt-chart development program iGANTT 6 . The
Tcl comma separated value (CSV) format of iGANTT’s basic
The most significant advances in mining software data storage file lends itself to customization by third-party
customization have involved the Tool Command Language, developers because the data structure is externally
or Tcl. Much of this success can be attributed to Tcl’s available. MineMax is developing methods to use Tcl for
freeware/open-source availability, which has fostered a automation in iGANTT12, which would require access to
large global community active in the development of program architecture.

116 APCOM 2003


Python Multi-language COM Server Interface approach
Similar to Tcl, Python is extensible and portable amongst A flexible approach to customization was introduced with
various operating systems. Dutch researcher Guido van Datamine Studio in 1999. All Studio commands and
Rossum created Python in 1989 13 . Since then, it has processes are available through the Datamine COM Server
emerged as a serious competitor to Perl and Tcl. Notable Interface, so any language that supports COM, such as
large-scale Python projects have involved the creation of an JScript, VB, VBA, Visual Basic scripting edition (VB
authoring environment for transportable hypermedia Script), or C++, can be used for customization22. Some
presentations, a complex multimedia teleconferencing tool, developers have alluded to a multi-language approach, such
and a university student registration system14. Commercial as running Tcl and VBA scripts in tandem in Surpac Vision
uses have included search engine components by Infoseek and AutoCAD respectively, but Studio was the first
and Four11, as well as to construct the installation package to use the approach intrinsically. Datamine was
procedure for Red Hat’s commercial Linux distribution. among the first mining software companies to develop a
Development of an interface between Python and full, independent commercial product using its
Microsoft’s COM and ActiveX architectures has been customization ability and authorship model. Mine2-4D,
ongoing15. Python will be able to act as a COM controller, written in Visual Basic, is a planning and scheduling
enabling portability of Microsoft applications similar to program with Gantt chart and animation capabilities23.
Tcom. Python has developed other features that are Tcl JavaScript and VBScript are examples of client-side
benefits such as a Pure Java implementation Jython, as well scripting languages. A ‘client-side’ script is a program that
as OpenGL bindings. User-friendly GUI toolkits are can accompany an HTML document or be embedded
available, such as TkInter, an object-oriented interface to directly in it. The program executes on the client's machine
the Tcl/Tk widget set. Python users report strong numerical when the document loads or when the link is activated.
handling as opposed to Perl. JavaScript, popular with casual web users, is used as a
Mintec15 has recently implemented the use of Python in record and play medium in Datamine for simple
their MineSight Planner and Operations packages. Planner customization tasks, but complex interfaces and procedures
utilizes MineSight MS2 as a framework, however non-MS2 can supplement basic capabilities24. It is a freeware web-
users can also use the program for underground and open- based scripting language based on the international ECMA
pit planning. Operations is an ore control system, with Script standard. JScript is Microsoft’s version of the
modules to manage production blasthole data, build models, language with proprietary extensions. VB Script offers
and generate reports16,17. These packages use Python for lightweight scripting capabilities for low memory
customizable reporting options and interfaces into the environments such as web browsers, and is common in the
reserves/scheduling database, as well as for use in data creation of HTML web pages.
conversion to another software system.
MineSight products support a macro language, however, Scripting langiages for aggregate and cement
a scripting/macro interface is under development. An industry applications
impending release of the scripting interface will provide
Both fundamental applications of scripting described above,
non-client access to data structures through the Python
that is customization of reports and other output, and the
applications programming interface (API), enabling easier
automation of common menu-driven routines, are valuable
data conversion and access. Some template scripts are
for industrial minerals users or other specialized markets.
available from the manufacturer for user modification18.
For instance, reporting requirements for a sand and gravel
(aggregate) pit are far different than those for an
VBA underground gold mine, though the same software may be
VBA ‘...is a glue language: a language that interfaces with used. A gravel pit will be concerned primarily with
the various objects that make up an application via the host reporting pertaining to volume extracted per lease area,
application’s object model...’3. Rather than being presented whereas an underground gold mine will be concerned with
as a scripting language, it is promoted a tool for reporting ore grade extracted per stope in consideration of
customizing packaged applications for integration with processing requirements. Likewise, automation by an
other data and systems. The VBA Integrated Development aggregate industry user would tend toward streamlining of
Environment (IDE) includes support for Microsoft Forms methods for efficient volumetric calculations, rather than
for creating custom dialog boxes and Active X controls. methods more appropriate in underground operations, like
VBA’s integration into the Windows operating system and ring design.
ability to act as a native COM controller suggested it should
dominate the field of Microsoft portability, but this has Tcl/Surpac
since been circumvented by Tcl and Python extensions. Successful use of Tcom in popular Surpac extensions like
However, in-process VBA performance is reported 200 MineSched has spread to specialized users since the
times faster than standalone development tools19. technology is available and has been field tested by
Gemcom 20 is currently the only mining software practitioners. Two applications, SGMatrix and SGRecPak
developer to utilize VBA as a scripting tool, following an for the aggregate industry are in development25.
agreement with Microsoft in early 2000. VBA supplements ‘SGMatrix’, which began as a collection of simple
the existing macro language in the various Gemcom Fortran data processing routines, is a first step toward the
Desktop Editions (GDE) and Enterprise Management utilization of granulometric analyses in computerized gravel
System (GEMS). Data entries within dialog boxes are not pit design and planning. Particle size distribution, the
recorded, nor are any graphical editing operations, as analysis of which is known as ‘granulometrics’, is one of
macros record only menu selections, accelerator keys, and the properties of sand and gravel that identify it as suitable
short cut keys. Macros can be recorded or written in a text for use as concrete aggregate, along with such factors as
editor21. grain strength, response to freeze-thaw conditions, and

UTILIZATION OF SCRIPTING LANGUAGES FOR CUSTOMIZATION OF MINE PLANNING 117


detrimental impurities. SGMatrix is currently a stand-alone of topsoil and overburden movement during mining and
program, however it is evolving into a Surpac-resident data reclamation.
management environment for aggregate operation
exploration and production data. Using Tcom, the program Python/Minesight
accepts input as sieve analysis cumulative per cent passing Custom reporting options are valuable to industrial minerals
results in Microsoft Excel format. It automates the users, especially when programs are originally designed for
calculation of the numerous granulometric indices and metal mines, as was cited prior with respect to gravel pits
parameters in use, whether sedimentologic, engineering, or versus underground gold mines. As Mintec’s quarry, and
concrete industry in origin. The next step is the generation other specialized, products develop a greater market share,
of a ‘master correlation table’. Displayed in this ‘matrix’ Python integration will likely follow the pattern of Tcl
are linear correlation coefficients (ρ= -1.0 to 1.0) of every integration, given the genetic similarities.
selected index correlated with every other index (see Figure
1). Calculating numerous types of correlations is a popular COM Server Interface/Datamine
practice amongst engineering geologists and soils The Cemento Andino operation in Peru has recently
engineers. If sample locations are available, all of the implemented the use of several Datamine products for use
selected variables will be correlated with Northing and in data management, short and long-term planning, and
Easting. This functions as a first-order appraisal of spatial exploration26,27. All of these aspects require customization
data characteristics, assisting in the preliminary via scripting. Four primary scripts, based on existing
identification of spatial structures. templates, were written in Java Script and are as follows:
‘SGRecPak’ is a Surpac-resident extension for the • Data Update (Actualizacion)—Enables the user to
automation of a concise reclamation bond estimate based on import and update blast hole information, as well as
site-specific factors developed during the mine and update the topography and the block model with new
reclamation planning process, such as pre- and post-mining survey data.
topographic maps, required reclamation topsoil thickness, • Long-Term Planning (Largo Plazo)—Links with the
locations and extent of temporary or permanent topsoil RM Scheduler (RMS) software program, prepares the
stockpiles, and haul road locations. The calculation of bock model so it can be used by RMS, launches RMS,
reclamation performance bonds involves detailed planning, and then combines the existing information with the
calculations, and cost estimates, based on concepts updates as obtained via RMS.
presented in the reclamation plan. A variety of output • Short-Term Planning (Corto Plazo)—Uses the block
options are available, such as estimation of total model generated with the Long-Term Planning script
reclamation costs, estimation of costs for individual and generates a short-term calendar in consideration of
activities (such as re-vegetation, drainage/erosion control, quality and production targets. It also generates reports
or ripping), whether graphically or in report format. that can be checked using Microsoft Excel. See Figure
2 for a portion of the GUI.
Tcl/iGANTT • Exploration Office—Provides a link with the
As described above, iGANTT’s basic data storage structure Exploration Office software.
lends itself to customization by third-party developers The interface was developed to address the practical
because the data structure is externally available. This could requirements of users, is written in Spanish, and is very
be particularly valuable to aggregate users, for example, intuitive. The scripts can be easily modified and improved
because much emphasis is placed on integrated scheduling at any time if needed.

26 Sample #: CN046–COMP
27 Input data file: CN–024
28 Sample #:CN024–COMP
29
30 CORRELATION MATRIX:
31 Northing Easting D10 D25 D30 D50 D60 D75 #10 #30 #50 #100 #200 UC GC
32 Northing -0.745 0.2206 0.4659 0.3542 0.627 0.67 0.752 -0.62 -0.67 -0.029 0.2192 0.1356 0.3808 0.3238
33 Easting -0.173 -0.312 -0.435 -0.57 -0.6 -0.68 0.559 0.597 0.0856 -0.19 -0.044 -0.272 -0.404
34 D10 0.1958 0.1375 -0.042 0.0325 0.1169 -0.176 -0.58 -0.72 -0.6 -0.622 -0.54 -0.242
35 D25 0.735 0.4676 0.4644 0.459 -0.57 -0.487 0.0841 0.1021 -0.244 -0.029 0.635
36 D30 0.634 0.625 0.594 -0.67 -0.51 0.0171 0.0553 -0.304 -0.021 0.775
37 D50 0.911 0.873 -0.82 -0.6 0.1136 0.2616 0.0963 0.4323 0.559
38 D60 0.894 -0.81 -0.64 0.0713 0.2345 0.0816 0.4222 0.537
39 D75 -0.81 -0.68 0.0089 0.1741 0.0979 0.4317 0.514
40 #10 0.769 0.1412 0.0104 0.1008 -0.226 -0.51
41 #30 0.506 0.2809 0.3816 0.0924 -0.203
42 #50 0.827 0.705 0.651 0.3949
43 #100 0.676 0.684 0.3819
44 #200 0.847 0.1176
45 UC 0.329
46 GC
47 Sorting
48 Skewness
49 Kurtosis
50 Dust Ratio
51

Figure 1. Excel output from SGMatrix

118 APCOM 2003


Figure 2. GUI from Datamine customization at Cemento Andino

Comparative discussion developers in the navigation of the dense layers of


In consideration of the spectrum of new or unexplored terminology. In spite of these benefits, broad active VBA
options available for specialized users (such as in the development for Gemcom has not yet risen to the level of
aggregate or cement industry) regarding scripting other applications, but implementation is relatively new.
applications in mine planning packages, it is important to Datamine’s COM Server Interface approach ‘...gives the
present and compare aspects relevant to their industries. programmer more flexibility in the choice of scripting
This could assist new users in the final purchase selection, language and development environment, in order to make
based on whichever mode of customization best suits their best use of their skills and preferences...’22. All Studio
purposes. commands are available from an HTML page using any
supported language, and other applications can be started
from the same HTML page24. As with the Cemento Andino
Comparative benefits project, Datamine found that the advantages with the scripts
Regarding the significance of a seamless interface with as prepared for the client was that users were able complete
Windows applications, VBA would intrinsically be a first- tasks very quickly because of this automation, and the
tier selection. However, since open-source languages like learning process was much faster than the software prior to
Tcl are now capable of Windows integration, and customization. This impacts the subsequent efficiency and
developments in Python are imminent, VBA is no longer economic benefit of these data management and planning
the sole option. VBA’s potential dominance has been operations.
compromised by corporate control of language As was implied above, Tcl has a bright future because of
developments, as well as a tradition of tedious terminology the huge global development community. Furthermore,
and concepts. This dominance has been subsequently Surpac was a pioneer not only in the introduction of an
circumvented by Tcl and Python extensions. VBA does embedded scripting language in a complex mine modelling
have unique benefits, such as supposed faster performance and planning package, but also in the adaptation of this
than standalone development tools. Another VBA benefit is package’s architecture to accommodate internal
that less end-user training may be necessary because manipulation of functions in their products. The adaptation
applications look and feel like the Windows applications of Tcl by other companies like MineMax, as well as
that the majority of computer users are already accustomed genetically related languages like Python by Mintec, has
to. A notable strength of Gemcom’s implementation of suggested the long-term popularity of Tcl. A potential
VBA is that system integration has been painstakingly disadvantage of Tcl implementation over a more centrally
constructed and extensively documented for developers28. controlled language like VBA is that even though the
All of the OLE Automation objects in Gemcom follow a development community is global in scale and very active,
consistent naming convention. This will assist Gemcom it also has the tendency to be quite fragmented. For

UTILIZATION OF SCRIPTING LANGUAGES FOR CUSTOMIZATION OF MINE PLANNING 119


instance, if one has an interest in a particular function such stifled by the controlling corporation is defeating its own
as Excel portability, one can encounter literally dozens of purpose, which is to promote end-user experimentation.
extensions posted on various websites that are of widely The most creative programmers, who have no patience for
varying quality. Unless, of course, one has a stumbling blocks and bureaucracy when cyberspace is full
recommendation from another user, such as is the situation of free and easy options, will likely ignore such languages.
with the popularity of Tcom in the Surpac community. With respect to product customization for specialized
sectors such as industrial minerals, utility of customization
Considerations in selection is a critical consideration. Specifically, the scripting
Considerations in selection can be summarized as follows. language and GUI toolkit must be easy for the user to learn
The outcome of each decision clearly impacts that (assuming some programming experience), and tools,
following in the list. extensions, and tutorials must be freely available. Time
spent in trainings or on the phone with tech support is not
• Is a mine planning package already in use? For time brainstorming and programming, and if there is too
example, if a company already uses Gemcom Desktop much hassle involved the programmer may not take the
Edition, then VBA is the only choice available. time.
• How soon must the system be available, and how much Because most custom solutions start small and progress
customization is needed? In many instances, solutions through subsequent generations, the time to maturity to the
may already be available for a particular requirement. commercial marketplace and/or availability to other users
Conversely, extensive programming may be required can be considerable. The fact that computer usage for mine
for unique problems. The client should research what planning in many sectors is still new is also a factor.
solutions, whether developed by the vendor or by Therefore, it will be some time before robust and valuable
independent programmers, are available and at what solutions for industrial minerals users are available in the
cost. greater marketplace though new applications are on the
• Is it more economical for the vendor, or a qualified horizon. Vendors, however, are discovering that
consultant, to develop and write the programs? Or development of industry specific extensions is a good way
should the client pay for company staff to attend to introduce their products into new market sectors.
training? Languages such as Tcl and Python have been Though the focus of prior examples has been aggregate
traditionally easier for new users to adopt, where others and cement, other industrial minerals sectors have their own
such as VBA require more experience in concepts of unique requirements that require customization. For
object oriented programming. Stated otherwise, is the example, geostatistics and mine planning for kaolin mining
cost benefit derived only from operating efficiencies has unique considerations as pertains to the utilization of
enhanced by customization, or further by the client’s the important ‘Brightness’ parameter. Commodities such as
ability to take control of their industry specific garnet are characterized for sale in terms of their use for
computing requirements? industrial purposes, with a subset of suitable quality for
• How intensive are the scripting requirements? For gems. Ornamental stones such as scoria are characterized
example, are the requirements as limited as custom by subjective colour parameters that cannot be measured in
reporting (such as with Python use in Minesight), or as a laboratory, but whose occurrence in a quarry can be
broad as access to internal functions and processes mapped by an experienced practitioner. Even with respect
(such as with Surpac Vision)? to aggregate, planning requirements for a railroad ballast
quarry would be different than those for a concrete
Future directions aggregate site.
Coincident with the emergence of web-based applications, The futures of individual scripting languages can be
mining software developers have taken seriously the suggested, but not predicted, by their present success. Tcl
importance of end-user customization via adoption of has had the earliest success, and industry specific
embedded scripting languages. The next necessary step is developments are already under way. Python’s acceptance
for developers to support an innovative user-base in a way could be comparable to Tcl’s, but usage is fairly new in
that fosters robust experimentation, while keeping in mind mining circles. VBA’s control by Microsoft has the
corporate goals and policies. These two aspects can be potential to be a hindrance, but it could prevail as
difficult for corporations to balance in the anarchic tangle of applications become more complex and performance
the Internet. For example, as soon as program architecture, efficiency becomes important. Datamine’s COM Server
or open-source code, for a popular application is available Interface approach should become more popular, simply
for manipulation, the original developer no longer has because it is the most flexible approach and is inclined
control over the future of his creation. This is difficult for toward web applications, which is the inevitable future of
the corporation to appreciate when millions of dollars were mine computing applications.
spent on development. The innovative spark of the
countless number of programmers online far surpasses the Acknowledgements
corporation’s ability to control their creation. This is a A number of people generously provided information and
reality in the information age that cannot be ignored. insight for this paper. Guy Sande (Couer d’Alene Mines
From this freeware ‘hacker’ ethic, however, originate the Corporation) gave insight into the practical implementation
brashest innovations, and developers can use this mystique of VBA in Gemcom Desktop Editions. Tim Carew
to their advantage to create a rich development (Gemcom USA) and Jennifer Palma (Gemcom Software/
environment. Innovations such as Tcom, now an integral Vancouver BC) provided information on VBA. Abdullah
part of commercial applications like MineSched, began as a Arik (Mintec) provided a wealth of information on
way to circumvent Microsoft application portability only by MineSight’s implementation of Python. Rob Vallis (Hemlo
licensed partners. Such enthusiasm is critical to remain Mines) described recent innovations of Tcl in Surpac. Jim
robust and innovative. Any scripting language that remains Butler (MineMax) provided information on Tcl

120 APCOM 2003


implementation in iGANTT. Dave van de Ven (Digital essays/foreword.html
Mining Services Australia) yielded a wealth of information 14. VAN ROSSUM, G. The Whole Python FAQ. No
on Tcl, Scl, GUIDO, and customization approaches. Special date. Retrieved on 10th November 2001 from the
thanks to Andy Lapworth (Datamine UK) for valuable World Wide Web: http://www.python.org/cgi-bin/
insight on the values of the COM Server Interface faqw.py?req=all.
approach, and Albis Duran (Datamine Peru) for detail on
specific applications in the cement industry. 15. Mintec, Inc. Mintec, Inc. Web Site. 2002. Retrieved
on 14th May 2002 from the World Wide Web:
http://www.mintec.com
References
16. Mintec. MineSight Planner promotional brochure,
1. Tcl Developer Exchange. History of Scripting. 2001. Tucson, Mintec, Inc. 2002. 5 pp.
Retrieved on 12th March 2002 from the World Wide
Web: http://www.tcl.tk/advocacy/scriptHistory.html 17. Mintec. MineSight Operations promotional brochure,
Tucson, Mintec, Inc. 2002. 7 pp.
2. IBM UK Laboratories. The Rexx Language. 2002.
Retrieved on 12th March 2002 from the World Wide 18. ARIK, A. Personal communication: Senior Mining
Web: http://www 2.hursley.ibm.com/rexx/ Consultant, Mintec, Inc. 2002.
3. LOMAX, P. VB & VBA in a Nutshell: The 19. Microsoft Developer’s Network. Microsoft Visual
Language, Sebastopol Calif., O’Reilly & Associates. Basic for Applications—ISV Overview. 2001. 2001
1998. 633 pages. 1998. Retrieved on 17th May 2002 from the World Wide
Web: http://msdn.microsoft.com/vba/prodinfo/
4. GETZ, K., and GILBERT, M. VBA Developer’s backgrounder.asp
Handbook, San Francisco, Sybex. 1997. 922 pages.
20. Gemcom Software International. Gemcom Software
5. Microsoft Developer’s Network. Microsoft VBA International, Inc. Integrated Resource Management
Licensing Partners. 1999. Retrieved 4th January 2002 Solutions. 2002. Retrieved on 10th February 2002
from the World Wide Web: http://msdn. from the World Wide Web: http://www.
microsoft.com/vba/companies/company.asp. gemcom.bc.ca
6. MineMax. iGANTT—A Robust Gantt-chart Based 21. Gemcom Software International. Gemcom for
Tool for Production Scheduling. 2001. Retrieved on Windows User Manual; Volume I: Core. Vancouver,
12th December 2001 from the World Wide Web: Gemcom. 1998. 1502 pp.
http://www. minemax.com/prod_iGantt.html
22. LAPWORTH, A. Personal communication: General
7. Tcl Developer Xchange. History of Tcl. 2001. Manager, Datamine Software Ltd. 2002.
Retrieved on 17th March 2002 from the World Wide
23. Earthworks Corporation. Earthworks Home Page.
Web: http://www.tcl.tk/advocacy/tclHistory.html
2001. Retrieved on 17th March 2002 from the World
8. Surpac Software International. Third Party Wide Web: http://www.earthworks.com.au
Development Opportunities using the Surpac 24. Datamine. Web Based Scripting Language. No date.
Command Language. 2000. Retrieved on 12th Retrieved on 14th March 2002 from the World Wide
January 2001 from the World Wide Web: Web: http://www.datamine-studio.com/brochure/
http://www.surpac.com/Business opportunity.htm scripting.htm
9. Digital Mining Services Australia. The Ore Is Out 25. HACK, D.R. and VAN DE VEN, D.P. Customized
There. 2002. Retrieved on 12th February 2002 from Surpac Tcl extensions for the aggregate industry. In I.
the World Wide Web: http://www.z-files.com Gonzalez (Ed), CDROM Proceedings of the Fourth
10. MineSched International Ltd. MineSched Home Page. International Symposium of Computer Science in
2002. Retrieved on 14th April 2002 from the World Mining (INFOMINA 2002). Lima, Instituto de
Wide Web: http://www.minesched.com Ingenieros de Minas del Peru
11. HUANG, C.T. Tcom—Access and implement 26. DURAND, A. Solucion integrada para el control de
Windows COM objects with Tcl. No date. Retrieved calida en canteras de calizas para cemento. In I.
on 10th November 2001 from the World Wide Web: Gonzalez (Ed), CDROM Proceedings of the Fourth
http://www.vex.net/~cthuang/tcom/ International Symposium of Computer Science in
12. BUTLER, J. Personal communication: Technical Mining (INFOMINA 2002). Lima, Instituto de
Director, MineMax Resource Optimization Software. Ingenieros de Minas del Peru.
2002. 27. DURAND, A. Personal communication: Manager of
13. VAN ROSSUM, G. Foreword for ‘Programming Technical Support, Datamine Peru. 2002.
Python’. No date. Retrieved on 10th April 2002 from 28. Gemcom Software International. VBA Object Library
the World Wide Web: http://www.python.org/doc/ Specifications. Vancouver, Gemcom. 2000. 96 pp.

UTILIZATION OF SCRIPTING LANGUAGES FOR CUSTOMIZATION OF MINE PLANNING 121


122 APCOM 2003

You might also like