 
  
     
    
    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: IntroToSignalProcessing.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, 800 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.