|
|
Background
What's an IT manager to do when all staff programmers are
already working overtime, but a team really needs to have an existing
program modified right away, or to have a critical new program written
from scratch ASAP? A practical option can be to subcontract the
software development work to an outside expert, called a consultant or a
contract programmer.
That's where we come in, because Consultix has highly qualified programmers
with decades of consulting experience available to help you!
Our areas of expertise include the UNIX and Linux operating systems,
the UNIX/Linux utility programs, the
Perl language, the Bourne, Korn, Bash, and POSIX shell languages,
and popular web utilities such as Perl's CGI module and the
Template Toolkit.
So whether you need to modify a grep or sed command
with a
seemingly incomprehensible wild-card pattern, convert an ancient AWK
program to Perl, port a Shell script from UNIX to Linux, add new
features to a CGI script, or create a UNIX/Linux Shell script from
scratch, we can help.
Contract Programming Services from Consultix
When he's not teaching one of his popular hands-on
classes on
UNIX or
Linux,
Shell Programming,
or
Perl Programming,
Dr. Tim Maher
provides computer programming services for interested clients.
His fees are reasonable and competitive, especially when compared to
the costs of adding full-time personnel with commensurate
skill and experience—or training an existing company employee on multiple required skill sets—
for infrequent development projects.
Contact us
for further details or to get a quote on your
planned programming project!
Dr. Maher's Favorite Programming Resources
-
Programming Languages
-
Perl language and Korn, POSIX, or Bash Shell language
-
Tools and Technologies
-
The "LAMP" (Linux, Apache, mySQL, Perl) technologies,
plus
Perl's CGI module,
the Template Toolkit,
the PerlTidy source code beautifier,
and the EPIC/Eclipse IDE
-
Languages he formerly used
-
PDP 8 Machine Language, Pal 3 Assembly Language, MOS 6502 Assembly
Language, Commodore Basic, Fortran, PL/I, C, C++, Bourne Shell, AWK, and
Java
-
Special Techniques used in Shell Programming (as featured in Consultix
courses)
-
Capturing command output in script by using command substitution
-
Simulating subroutines through use of "." (dot) command
-
Rapidly implementing menu-oriented interfaces using the Shell's friendliest
but least understood loop, select
-
Parsing data efficiently using manipulations of the IFS variable
-
Matching text rapidly with case and FNG patterns rather than
using slower
grep family tools
-
Using tput to enhance screen displays
on terminal devices
(reverse video, blinking, color
changes, etc.)
-
Consolidating code by writing a script with multiple personalities,
whose various invocation names tell it how to behave,
rather than writing multiple closely related scripts
-
Modularizing code through use of
shell functions
-
Using set command to automatically map arguments into positional parameters,
rather than manually assigning data to user-defined variables
-
Employing exec to save time and memory by eliminating a fork system call
-
Saving and restoring file descriptors using exec
-
Making parsing of invocation options easy by using getopts
-
Using trap to defend script against otherwise lethal signals
-
Using trap to cause script to
undertake special actions on receipt of signal sent via kill
(e.g., re-reading script's configuration file)
|
|
Examples of some of
Dr. Maher's
programming projects are provided below. After describing projects
undertaken for the benefit of students and corporate clients, projects
he tackled to make his own programming activities easier
are described.
Many of these projects were considered of sufficient interest to the
community that they were publicly released and/or documented
in various publications, as indicated below.
|
Representative Corporate Programming Projects by Dr. Maher
-
Pacific Software Gurus, Inc. (dba Consultix), 1986-present
-
Developed dozens of custom scripts to handle IT infrastructure needs,
such as:
-
template-based management of web page content,
shopping cart applications,
back-end database storage/retrieval systems,
and customer mailing lists
-
These systems were created using UNIX and Linux tools, such as Korn
and Bash shell scripts, the Apache web server, mySQL database
software, the Template Toolkit, custom Perl scripts, and Perl's CGI
module. No commercial software had to be purchased.
-
University of California, Berkeley, Berkeley, CA (3/87-9/88)
-
Designed and implemented the first friendly, menu-oriented user interface
(UI) for
academic (Solaris) UNIX systems, to allow non-technical students to benefit from
the university's world-class computing resources.
The Korn shell UI script, which was used by all Humanities students, was thought
to be the largest ever written, at over
3,000 lines.
What's more, as that script grew,
Tim eventually had to write the first
Shell syntax-checker/code reformatter
(itself over
500 lines,
of Korn shell code)
just to maintain it!
This was because the
Shell's built-in debugging facilities weren't good enough to allow,
for example, an accidentally
typed double-quote (")
mark—which was causing a fatal
syntax error—to be found and removed!
8-{
-
Ellison Machine Co. & Proctor Products; Seattle WA (3/92-6/92)
-
Developed a large menu-oriented UNIX Korn Shell program (965 lines) to manage
the use of sophisticated machine tools in industry (e.g., laser
lathes), which is used by vendors to the Boeing Co. in fabricating
airplane parts.
-
AT&T Wireless Services, Kirkland WA (3/97-6/97)
-
Developed custom UNIX Shell and Perl scripts and modified existing
scripts to monitor and manage networked back-end enterprise system
processes.
-
Atrieva Corp., Seattle WA (7/98-9/98)
-
Wrote over 80 applications in Bash Shell or Perl on Linux systems,
ranging in size from 9 to 742 lines. These applications managed
millions of files uploaded by customers that used the Netscape Online
Backup product.
Other Programming Projects by Dr. Maher
-
Working alongside the team that invented digital audio recording,
conducted experiments in auditory ergonomics using custom
digital signal processing (DSP) software to simulate high
fidelity audio systems having different engineering tradeoffs
(1980-1982).
-
Wrote the first VMS-style file-versioning facility for UNIX,
which made UNIX "safe for the State of California".
Specifically,
the state
was on the verge of committing to
a large software/hardware deal
to convert their VMS systems to UNIX when their sudden realization that
UNIX didn't provide automatic backup copies of earlier versions of
files
nearly killed the deal. Luckily, the software described in the article listed below was
brought to their attention and saved the day!
- Maher, Timothy F. (1990). A VMS-style file-versions facility for
UNIX. UNIX World, 9, 129-133.
-
Wrote the first working prototype of a source-code beautifier for the C++ language.
- Maher, Timothy F. (1992). A "beautifier" for the C++ programming
language. Dr. Dobb's Journal, 17s, 23-28.
-
Wrote the first working prototype of a source-code beautifier for the Perl language.
-
Wrote a Perl module to implement the most sophisticated loop of any
UNIX/Linux
shell—select—for Perl. This module uses "source code
filtering" to implement the new loop; only one other module author (Damian
Conway)
had ever before endowed Perl with a new control construct in this way.
-
Wrote an intelligent front-end processor for the MagicPoint presentation
package, which greatly expanded its capabilities.
-
Wrote a system for rapid layout and display of manuscripts for use in
the development (during 2004-2006)
of the book
Minimal Perl: for UNIX and Linux People
based on the the UNIX troff and tbl commands and custom enhancements to
the Perl POD document format.
-
Wrote over 100 Perl scripts, ranging from 1-100 lines, to demonstrate
practical solutions to common programming problems for inclusion in the
best-selling book
Minimal Perl: for UNIX and Linux People.
|
A former student says:
Read more
testimonials
and reviews of our
courses
and
instructors.
|
Tim is great, and the training was great for the amount of time we had. I'm ready to try out what I have learned at work.
Tim Perciful, Employee,
Getty Images
Attended:
UNIX Fundamentals
|
|