- 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.
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.
3 General Computer Usage
Below are links to some useful software packages.
3.1 email client
- Sylpheed is my favorite email client. It is extremely easy to set up with IMAP, and provides all the features I need and expect to use email. It is easy to build from source and has light resource requirements. See the FAQ for more information. [CBNOTE 5/3/2019] update this with a newer email solution.
- I used to use GnuCash to track finances and budgeting, I found it was too cumbersome to keep up with over time. Wrote some custom Tcl/Tk software which integrates with
ofxclient to get the job done instead.
- 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!.
- 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…