During my
career at the University of Maryland in the Department of
Chemistry and Biochemistry, I did research
in
analytical chemistry
and developed and taught several courses, including an
upper-division undergraduate lab course in "Electronics
for Chemists", which by the 1980s included a laboratory computer
component and one experiment in digital data acquisition and
processing dealing with the use of mathematical and numerical
techniques used in the processing of experimental data from
scientific instruments. When the Web became available to the
academic community in the early 90s, like many instructors, I
put up a syllabus, experiments, and other reading material for
this and for my other courses online for students to access.
When I retired from the University in 1999, after 30
years of service, I noticed that I was getting a lot of
page-views on that course site that came from outside the
University, especially directed to the lab experiment in digital
data processing that I had developed in the 80's, when computers
were relatively new in chemistry laboratories. I started getting
an increasing number of emails with questions, suggestions, and
comments from people in widely varied scientific fields. So, I
began to broaden this beyond chemistry and my specific course.
Ultimately, I decided to make this a long-term retirement
project. My aim is to help science workers learn and apply
computer-based mathematical data processing techniques, by
producing free tutorial materials that explains things
intuitively rather than in mathematical formality, with coding
examples, practical software, and guidance/consulting on
specific projects. Analytical chemists like myself are basically
tool builders. In the early days of our profession, the tools
where mainly chemical (e.g., color reagents), but in later years
included instruments (e.g., spectroscopy and chromatography),
and by the late 20th century included software tools.
To make this work useful for the widest possible
audience, including those with limited funding, I made several
choices:
a.
Everything
is free: the book (in electronic form), the software, and the
help and consulting. Only the paperback version of the
book, available
from Amazon, must be purchased.
b.
The book and
documentation are available in multiple digital formats: HTML,
PDF, and DOCX.
c.
The writing
is at the 11th grade level.
d.
Formal
mathematics is minimized. Analogies, graphics, and animations
are employed to help explain concepts.
e.
Multiple
hardware platforms can be used: PCs, Macs, portable devices, and
Raspberry Pi.
f.
Multiple
software platforms are used: Matlab, Octave, Python,
Spreadsheets. All except Matlab are free.
Isn't
software already included in every modern scientific instrument
hardware purchase? This is true, especially for those who are
using conventional instruments in standard ways. But many
scientists are working in new research areas for which there are
no commercial instruments, or they are building completely new
types of instruments, or they are using modifications of
existing systems for which there is no software. In some cases,
the software provided with commercial instruments is inflexible,
inadequately documented, or hard to use. Not every researcher or
science worker likes programming, or has time for it, or is good
at it. Hired programmers typically do not understand the
science and in any case sooner or later move on and no longer
maintain their code. Well-documented code is more important than
ever. I enjoy writing and coding, so this seemed to be a niche I
could fit into.
My project has five parts:
A book, entitled "A Pragmatic Introduction to
Signal Processing", available in both paper, Kindle, and in DOCX and PDF format: IntroToSignalProcessing2024.pdf
This Web site
(.edu domain), with essentially the same material as the book.
No sign-in or registration is required.
Downloadable free software in several
different forms, listed here.
Help and consulting via email
(optionally with data attachments).
A Facebook group and the Matlab
File
Exchange for announcements and public
discussion.
Although the latest version of the complete book is
available freely in DOCX and PDF format, several readers have
found it too long to print themselves and have requested a
pre-printed version, the 2024 paperback version of which is
currently sold
through
Amazon (ISBN
9798794182446).
The on-line materials, software, help, and consulting are all
free. Open-source software alternatives are available, namely
Octave and OpenOffice/LibreOffice.
My policy is
that contact with users ("clients") is initiated only from the
clients and is strictly in written form, in English, mostly by
email or Facebook group message - not phone or Skype. Requests for
direct real-time voice or video communication are politely
deflected. This is done to allow extended conversations between
time zones, to preserve communications in written form, and to
avoid language problems and my own age-related hearing
difficulties (readers have come from at least 162 different
countries). Written communications via email also allow the use
of machine translation apps such as Google Translate. Moreover,
clients can send examples of their data via email attachment or
via Google drive.
Information about the affiliation of
the client and the nature of the project is not solicited and is
strictly at the discretion of the client. Client information and
data are kept confidential. In many cases, I know nothing about
the origin of their data and must treat it as abstract numbers.
I usually do not know the age, gender, race, country of origin,
level of education, experience, or employment of clients unless
they tell me. I must look for clues in their writing to gauge
their level of knowledge and experience and to avoid insulting
them on the one hand or confusing them on the other. Everyone is
welcome.
I have
attempted to minimize the use of fancy formatting and special
effects on my web site, to make it compatible with older
operating systems and browsers. No account or registration is
needed. I allow no advertising on my web pages. I minimize the
use of video, but I do use simple GIF animations where it would
be useful, as these can be viewed right on the web page without
downloading any addition plug-ins or software. I test my
formatting to make sure it viewable on mobile devices (tablet,
smartphone).
The Internet
spans traditional boundaries. There are many different
countries, states, universities, departments, specialties, and
journals, but only one global Internet. Most, but not all, of it
is accessible to anyone with an internet connection and a
computer, tablet, or smartphone. Google (or any search engine)
looks at (almost) the entire internet, irrespective of the
academic specialization, leading to the possibility that a
solution arising in one corner of scholarship will be discovered
by a need in another corner. Why, for example, would a
neuroscientist, or a cancer researcher, or a linguist, or a
music scholar, know anything about my work? They would surely
not, if I published only in the scientific journals of my
specialty; they don't read those journals. But in fact, all
those types of researchers, and hundreds more from other diverse
fields, have found my work by "stumbling across it" in a search
engine query, rather than by reading scholarly publications, and
have found it useful enough to cite in their publications. In my
own academic career, I published research only in analytical
chemistry journals, which are read mostly by other analytical
chemists. In contrast, my Web hits, emails, and citations have
come from a much wider range of scientists, engineers,
researchers, instructors, and students working in academia,
industry, environmental fields, medical, engineering, earth
science, space, military, financial, agriculture,
communications, and even language and musicology.
I intended
my writing to be instructional, not especially scholarly or
rigorous. It is unashamedly pragmatic, meaning
"Relating to matters of fact or practical affairs, often to the
exclusion of intellectual or artistic matters; practical as
opposed to idealistic." For many people, abstract mathematics
can be a barrier to understanding. I make only basic assumptions
about prior knowledge beyond the usual college science major
level: minimal math background and an 11th grade reading level,
according to several automated
readability
indexes (Gunning
Fog index; Coleman-Liau index; Flesch-Kincaid Grade level; ARI;
SMOG; Flesch Reading Ease; ATOS Level). I have tried to minimize
slang and obscure idioms and figures of speech that might
confuse translators (machine and human), and I try to minimize
the use of the passive voice. I often explain the same concept
more than once in different contexts because I believe that can
help to make some ideas "stick" better. An important part of my
writing process is feedback
from users, by email, social media, search engine terms,
questions, corrections, etc. Moreover, I also regularly re-read
older sections with "fresh eyes" correcting errors, and making
improvements in phrasing. Questions from readers, and even
search terms in Google searches, suggest areas where
improvements are possible.
To make access easier, I make my
writing available in multiple formats: Web (Simple HTML, with
graphics and silent self-running GIF animations, and a
site-specific search); DOCX (editable Microsoft Word), the
latest version of which display the GIF animations; PDF
(Portable Document Format) for printing, and paperback and
Kindle versions, through Amazon's Kindle
Direct
Publishing program.
All except for the web version have a detailed table of
contents. All except the paperback and Kindle versions are free.
A paper book is usually read starting
from the beginning: the table of contents and the introduction.
But web site access, especially via search engines (Google,
Bing, etc.), is not related to the order of pages. This is
evident in the data for web page accesses: the table of contents
and introduction are not
the most accessed; in fact, on most days there are no visits at all to
the table of contents or to the introduction pages. This can
cause a problem with sequencing the topics, which is only
partially reduced by including, on each Web page, hot links to
the table of contents and to related previous and following
material. (The print version has an average of three internal
page references per page, plus a table of contents with over 200
entries). Also, to facilitate communication, I have added a
"mail-to" link to each page in the Web version that includes my
email address and the title of the page as the subject line (so
I can tell from the email's subject line what page they were on
when they clicked the mail-to link).
As for
software platforms, I chose two types: spreadsheets and
Matlab and
its
clone Octave.
Both have the advantage of being multi-platform; they run on PC,
Mac, Unix, even on mobile devices (tablets/iPad) and on
miniature deployable devices (e.g., Octave on Raspberry Pi).
Both are popular development environments that have large user
communities with multiple contributors, and both are widely used
in science applications. Both have a degree of backward
compatibility that allows for interoperability with older legacy
versions. Companies, organizations, and college campuses often
have site licenses for these products. These platforms also have
the advantage that they avoid secret algorithms, that is, their
algorithms can be viewed in detail by any user. Their code is
distributed in "open source" and "open document" formats that
are either in plain text format (such as Matlab ".m" files) or
in a format that could be opened and inspected using even free
software (e.g., Microsoft Excel .xls and .xlsx spreadsheets can
be opened with OpenOffice or LibreOffice). For those who cannot
afford expensive software, OpenOffice Calc
and Octave
can be downloaded without cost.
Most of my Matlab/Octave programs are
"functions" which are essentially modular bits of code that fit
together in different ways, much like high-tech Lego bricks,
rather than self-contained stand-alone programs with elaborate
graphical user interfaces, like commercial programs. Functions
can be useful on their own but can also be used as components to
construct something bigger. You can write your own functions or,
if you wish, you can download and use functions
written
by others. When using functions,
you could simply ignore the internal code and use the
well-defined standard inputs and outputs. This is analogous to
assembling customized electronics systems using standard AC
power adaptors, USB and HDMI ports and cables, or Bluetooth
connections between smartphone/tablets/computers and
printers/earphones/speakers, etc., without worrying about the
internal design of each component. I chose Matlab/Octave because
of its high performance, very wide popularity, and its
similarity to other languages that have often been used by scientists, such as
Fortran, Basic, and Pascal. Even so, there are other languages
that have their champions and would have been valid
alternatives, such as R, Python, Mathematica, Julia, and Scilab.
In the interests of time and sanity, I have limited myself, for
the time being, to Matlab/Octave. (You can get some idea of the
differences between Matlab and Python by looking the code of
both languages executing the same statistical computation and
plotting tasks).
I have tried
to strike a balance between cost, speed, ease of use, and
learning curve. I have attempted to make my software usable even
to those who do not read all the documentation, by providing
lots and lots of examples and demos, including animated GIFs
that will play on any web browser. Every script or function has
built-in help that is
internal to the software. In Matlab/Octave; you can display this
built-in help simply by typing "help __", where __ is the name
of the script or function. These help files contain not only
instructions but also simple examples of use and in
many cases include references to other similar functions. You
can always look at (and even modify) my code if you wish, by
opening it in the Matlab/Octave editor, but it is not necessary
if the existing action and inputs and outputs provide what you
need. The spreadsheet templates and their examples and demos
also have built-in instructions, and most of the spreadsheet
have pop-up "cell comments" on certain cells (marked by a red
dot) that pop up when the mouse pointer is hovered over them,
providing an explanation for the function of that cell.
My website
has received over 2 million page views and over 100,000
downloads of my software programs (currently several hundred per
month), from either my web
site or from the
Matlab
File
Exchange. I have
received thousands of emails with comments, suggestions, corrections, questions,
offers to translate, etc. Comments from readers have been
overwhelmingly positive, even enthusiastic, as indicated by
these verbatim excerpts from emails about
the
website and about my
software. In fact,
many of these comments are so "over the top" that one wonders: why such enthusiasm for
such a nerdy topic? After all, most people do not take the
time to write to the authors of web sites, especially to
compliment them. One factor is that the number of users of the
global Internet is so huge that even highly specialized topics
can gather a substantial audience. As they say, "A wide net
catches even the rarest fish". But I also believe that part of
the reason for the enthusiastic response is that software
documentation is sometimes poorly written and hard to
understand, so more effort is needed in better explaining
software and how it works and where it cannot be expected to
work. I try to be responsive, answering each email and acting on
their suggestions and corrections. The growth in social media is
also a contributing factor; for a specific example of that, from
the Matlab
File
Exchange, see https://blogs.mathworks.com/pick/2016/09/09/most-activeinteractive-file-exchange-entry/.
Positive comments and lots of downloads are nice, but not
everyone who downloads something tries in their work, and not
everyone who does try it finds it valuable enough to cite it in
their publications. Most gratifyingly, as of December 2023, 750 publications had
cited my website and programs (based on Google Scholar
searches),
covering an extraordinarily wide range of topics in industry,
environment, medical, engineering, earth science, space,
military, financial, agriculture, communications, and even
occasionally language and musicology.
I am old, and you,
dear reader, are almost certainly much younger. After I and dead
and my ashes sprinkled in my
garden, this site will no longer be updated and my work will
fade away, to join the terabytes of forgotten material on the
Internet that, unless specifically deleted, will presumably hang
around forever, like moldy books on abandoned library shelves. But
at least this will be historical evidence of some of what was
happening back in the early 21st century, before
artificial intelligence replaced much of the need for the tools
and functions described here.