Python Notes: Introduction

  1. The information presented here is intended for educational use.
  2. The information presented here is provided free of charge, as-is, with no warranty of any kind.
Edit: 2019-09-30

Introduction

Hacking-Noodling

Online dictionaries provide many definitions of the phrase "chopper" but one I remember most means "motorcycle". Where did this originate? Starting in the 1950s, motorcycle mechanics would "chop off" unnecessary components (mirrors, fenders, etc.) to make "the bike" lighter for racing while also making it appear visually cleaner but not necessarily "street legal". The resulting motorcycle was called "a chopper" which today seems absurd because that phrase should have been used to describe the person doing the chopping, not the final product.

When I started working on computers in the 1970s, computer enthusiasts were already known as hackers because they "hacked off" the seemingly unnecessary parts of computer software so it would execute faster on the smaller (than mainframe) computers of the day. Everyone around me seemed to know that computer "hacking" was derived from motorcycle "chopping". This was still the case in 1984 when Steven Levy published Hackers: Heroes of the Computer Revolution.

Hacking acquired a negative connotation when popular newsrooms associated "hacking" with the activity of "breaking into a computer" (then, usually connected to the telephone network since the popular internet did not yet exist).

Although the phrase "hacking" currently appears to be going through a positive up swing (see: Hackerspace) I think the phrase "noodling" has fewer negative connotations.

Hacking (Noodling) with BASIC

Anyone who started playing with BASIC on personal computers in the 1970s and 1980s will recognize the importance of that language for noodling around. The creators of BASIC intended it to be used to teach computer programming concepts to FORTRAN students, but noodling around made BASIC ideal for teaching other concepts in science, engineering, and math. I am a huge fan of DFT/FFT books (especially these two: Understanding the FFT and Understanding FFT Applications by Anders Zonst of Citrus Press, Titusville, Florida) where numerous authors provided hundreds of demo programs written in PC-BASIC (a generic term I am using for this article). I am assuming they did this because BASIC programs are readable by non-programmers -AND- computers with BASIC were so ubiquitous that their readers could play with them. In fact, I am going to assume that anyone with the curiosity to learn DFT/FFT will already own a personal computer with at least one programming language.

BASIC on personal computers of the 1970s was usually implemented in ROM, and every implementation was different (Apple2, TRS-80, HeathKit-H9). Starting with the IBM-PC in 1981, Microsoft, began publishing 16-bit software products like GW-BASIC (1983),  QuickBASIC (1985) and QBASIC (1991) which worked well on 16-bit operating systems like MS-DOS (1981) up through Windows-3.11 (1992). These 16-bit language interpreters were also supported on 32-bit operating systems starting with Windows-95 through to Windows-7 via a process known as THUNKING.

The big problem today is that 64-bit computers run 64-bit operating systems, like Windows-10, where 32-bit programs are THUNKED but not 16-bit programs. Technical work-arounds exist including "setting up a virtual machine" on your 64-bit OS but why go to all that bother when all you want to do is noodle around? Perhaps it is time to ditch BASIC

Hacking (Noodling) with Python

Many people reading this will not know that Python was first created in 1990 to replace BASIC. Today, Python is primarily used to do server-side scripting on the internet/world-wide-web but also has many other uses. Here is a short list:

On top of all this, Python does not have these BASIC imitations:

Python3 has no difficulty with these statements:

Imagine using numbers this size to access your data analysis arrays

Happy Hacking (er, Noodling)

(index of) Example Programs

link description Notes
python_notes_dft_fft.html Discrete Fourier Transform - Fast Fourier Transform BASIC-to-Python conversion examples
python_notes_dh_standalone.html Diffie-Hellman key exchange demo (interactive) Python interactive standalone application
python_notes_dh_web.html Diffie-Hellman key exchange demo (web) Python web application (just to show you how)

External Links


 Back to Home
 Neil Rieck
 Waterloo, Ontario, Canada.