**math -- Berry Web Blog**--

*page 0*

# The Scientist's and Engineer's Guide to Digital Signal Processing

Author: **Steven W. Smith**

I found this to be an **excellent** book which makes dsp concepts and terminology accessible to self-learners. The author intersperses examples aimed at giving an intuitive understanding of the subject matter throughout the book, and backs up these examples with clear explanations of the concepts themselves. **HIGHLY RECOMMENDED**.

# Links

## 1 Music

- "A classical Pianist Explains Jazz" Great resource explaining some basic theory behind playing "jazz" music.
- Piano left hand patterns.

## 2 Programming

### 2.1 General

- Andrew Gibiansky's personal blog A really interesting resource. Gibiansky has a variety of great tutorial-style articles, including discussions of Convolutional Neural Nets and Haskell.
- Scripting: John Ousterhout In this well-known article John Ousterhout provides clean analysis of some of the various types of programming languages in existence, identifying strengths and weaknesses of different languages. He provides a survey of some research on the verbosity of software implementation in various languages and paradigms – in particular he finds that one line of a scripting language is often equivalent to between 5-10 languages of a systems language, and that OOP provides a ~20-30% LOC improvement over traditional procedural programming. He identifies some reasons why OOP code can sometimes be hard to reuse, and also identifies why scripting languages provide a great ability to reuse the code of others.
- D.J. Bernstein's Website DJB is a cryptography expert who has written a number of excellent pieces of software, including qmail and daemontools. He has written quite a bit on computer security and internet standards.

### 2.2 Common Lisp

Above is a link to a pdf containing the final draft of the ANSI Common Lisp standard. I believe it can be treated as an authoritative resource on Common Lisp for the general user, and is a good alternative to the Common Lisp Hyperspec.

Please see this article for an explanation of how I obtained this pdf, licensing information (free to distribute, etc…, per the creators of the draft), and background information on why I created this pdf.

- SBCL is my favorite Common Lisp implementation, and is also my favorite programming environment for my hobbyist programming.

### 2.3 Python

I like python a lot, and find it a very productive environment for interactive computing and experiments. Python's practical power is in large part due to its excellent ecosystem of libraries and tools. Below are some of the ones I have found useful to learn.

- Scipy+Ecosystem SciPy and its related tools (Matplotlib, NumPy, Pandas, IPython,Scikit-Learn,…) really do form an amazing toolset for data analysis and mathematical problems. This is definitely my preferred toolset for these problems currently – I have tried some alternatives but I prefer the python libraries and toolset.

### 2.4 Other

- Project Euler A fun and challenging math+programming challenge.
- Excel Unusual Some pretty outlandish examples of what can be accomplished in Excel.
- Maxima Maxima is a lisp-based CAS, with good documentation, and which also has an Android port. I like this software.

## 3 General Computer Usage

Below are links to some of the software packages which I like and use.

### 3.1 email client

### 3.2 finances

- I manage our finances in gnucash using ofxclient to automate download of transaction data.
Actually currently I use a forked version of gnucash with a feature I have added, but I plan to try to upstream my feature eventually (upstream Gnucash is going through a good bit of code churn currently and I haven't had time to figure out the build for the latest version yet).

These two tools make a reasonably good pair as long as your financial institutions support direct download of OFX files. I find that GnuCash is good for general accounting purposes, but is not so great for tracking investments over time however. I think there is some room for improvement in this area in the future.

## 4 Maths

- No Layman Left Behind Intuitive and simple explanations of various concepts in mathematics and CS.
- Linear Algebra - What Matrices Really Are I feel like this makes some basic linear algebra concepts much more approachable.

- UAH Virtual Prob/Stat Laboratory a well-designed and written website covering a range of topics in probability and statistics. Includes good explanations of how to derive statistics formulas and practices, also includes interactive "apps" which allow you to experiment hands-on with the concepts being taught.
- DSP Guide A great introduction to DSP for people like myself who are not specialists in the field. I have the hardback edition of the book, but I respect the author for making his work freely available on the internet. Before reading this book, other DSP books I have were fairly incomprehensible to me. After reading this book, I can read DSP books without much trouble.
**Highly recommended!**.

## 5 Hobbyist

- Sliderule Software If sliderules and calculating devices interest you at all, you may find the software on this site to be cool. The "Curta" mechanical calculator is particularly cool…

## 6 Miscellaneous

- Project Gutenberg Access a volume of high-quality, public domain content here. It's a pity that the United States keeps extending copyright protection well beyond any reasonable bounds at the behest of media corporations. See this image for a depiction of how US copyright law has changed over the years.