Seven Fields of Computer Programming: A Brief Survey

Written July 7th, 2012, Revised Jan 12th, 2013, Updated & extended Jan 25th, 2020

There are at least seven distinct fields of computer programming that have less to do with languages and more to do with the target platform, desired functionality, and intended user. This article provides a short introduction to each, intended as a brief orienting survey. These are:
(1) Bare metal programming, not requiring an operating system,
(2) Application programming, in which an operating system is presumed,
(3) Mathematical computing and algorithms, from matrix computations and statistical learning to wavelet compression and cryptography,
(4) Web or Client-Server programming, in which the application lives in a client browser in communication with content generated on-the-fly from programs running on central servers,
(5) Mobile or App programming,
(6) Cloud programming, and
(7) Exotic programming (traditional super-computing, quantum computing, biological computing/soft robotics, deep machine learning).

Continue reading this article…

Making Animation from Stills

Hi, my name is Jasmine, and I’m 7 years old. Today I made two animated movies, The Basket (1m 18s long) and Snowbell’s Accident (2m 23s long) (Nov 2nd, new with audio!) Enjoy!

I made these by taking still photographs of the action with my dad’s iPhone and then recording an audio soundtrack (for the second animation). My dad then assembled the stills into an animation and layered on the soundtrack (see below for how). I’m working to add music to it — check again soon!

The Basket (1m 18s long) (silent film)
The Pets find a cozy basket. But amidst all the hustle and bustle, will anyone be able to take a nap?

Continue reading this article…

How to think about engineered solutions?

Rapid prototyping can be an accelerator for hardware or embedded solutions. But for a successful outcome, follow the recommended checklist / task sequence given below, as all of these steps will likely need to be touched upon at some point in the process.
Continue reading this article…

Experimenting with Microcontrollers – an Arduino development kit for under £10

For under £10, you can put together a microcontroller development platform, ready to program directly from your PC over USB using free Arduino software. Once programmed, your microcontroller will run autonomously, untethered from your PC, powered by as small a battery power supply as a single 1.5V AAA or 3V CR2032 coin cell. You can have it interact with its environment using dozens of low-cost sensors and motors. Everything you need to explore the exciting world of embedded systems is available to you, typically for less than a day pass on the London underground.

An Arduino Nano microcontroller development kit for under £13

A homebrew Arduino Nano microcontroller development kit for under £12 (including optional OLED display)

Continue reading this article…

Everything (Desktop Search)

If you haven’t done so already, you may want to start by reading the Preface to the Computing Series: Software as a Force Multiplier, Sections 1-3.

“Everything” you need for ultra-fast desktop search

1. Everything(tm) is an ultra-fast desktop search utility that can scan through hundreds of thousands of files in milliseconds using a pre-built and real-time updated index.

“Everything” brings order to information growing at scale (documents, photographs, source code, spreadsheets, etc.), and tames the problem of proliferating folder trees.

Everything is a fast desktop search utility that can index 1 million files in less than 1 minute, and generate search queries in milliseconds.

Everything is a fast desktop search utility that can index 1 million files in less than 1 minute, and generate search queries in milliseconds.

We’ve all been in the scenario of searching through electronic documents for a document you know you prepared three, maybe four weeks prior… maybe it was longer… and now you can’t remember where you saved it… or in what format: was it a quickly written text file, a word document, a few paragraphs within One Note, on a desktop post-it note, or did you email yourself from your phone?… After trying different Windows searches in various recently used folders and looking through Word, Excel, and PDF files, and trying to remember possible filenames to search for, at some point you prepare mentally for the moment when you will give up the search and attempt to redo the missing work, salvaging as much of it as you can remember.

The general problem of wasted effort locating information we know we have, occurs more often than we’d like to admit. With “Everything“, it can be better.

Continue reading this article…

Notepad++ (Text Editor)

If you haven’t done so already, you may want to start by reading the Preface to the Computing Series: Software as a Force Multiplier, Sections 1-3.

1. Notepad++: a programmable, extensible, feature-rich text editor

NotePad++ (NPP) is an open-source programmer’s text editor with outstanding built-in features that can be further enhanced with powerful plugins and extensively customized with your own configurations. NPPs features include syntax highlighting for a large collection of programming languages, code folding, recordable macros, cloned views, selectable shortcuts, tabbed documents, and a host of other capabilities.
But it is the plugins and customization that NPP an invaluable power-tool, capable of far more than text editing. NPP can serve as an automation engine, a complex calculator (for example between hex, binary, and decimal), or a light-weight IDE for any toolchain you wish. It is the second application (after Total Commander) which I install on a Windows computer.

This article describes a few of the dozens of capabilities. It also shares a pre-configured Notepad++ package that I use (20.0MB compressed, 50.0MB uncompressed, download here), which contains the configurations and capabilities I use. The file is portable and self-contained: just unpack NPP to your drive (in a separate folder to your current running instance) and run notepad++.exe from there.1

Notepad++, by Don Ho, multi-view with syntax highlghting

Notepad++, by Don Ho, multi-view with syntax highlghting


Continue reading this article…

  1. You don’t want to overwrite your current instance, as capabilities are dependent on version of the plugin, and yours may be different than mine.

Total Commander (File Manager)

If you haven’t done so already, you may want to start by reading the Preface to the Computing Series: Software as a Force Multiplier, Sections 1-3.

1. Total Commander: a programmable, extensible, feature-rich two-panel orthodox file manager

Total Commander (TC) is more than just a two-panel orthodox file manager for Windows. It is a swiss army knife of computing utilities and is the first piece of software that I install on any Windows computer on which I’m working.1 Total Commander, used well, is a force multiplier.
Tenets of the TC approach:

  1. Two-panes is the natural way to think about most file and directory operations (source panel, destination panel).
  2. Keys beats mouse for speed and accuracy. Make the keyboard use easy. List of keyboard shortcuts and description of features
  3. A computing platform should be fully extensibility. Adding your own tools should be easy.
  4. Portability secures your investment: grab your totalcmd folder, copy to a new computer, and everything should work seamlessly.

I’ve been using TC continuously since 2001. Over the years, I’ve put together a Total Commander Expansion Pack (lite and full) for the TC platform that conforms to the tenets and further extends TC platform’s capabilities with tools I have found valuable. Both are pre-configured downloads to allow unpack and start using with minimum fuss (I use them when switching computers). Feel free to download and give them a try. Feedback or questions welcomed in the comments.

Total Commander Expansion Pack Winter 2024 – Toolbar View with Integrated Applications, Download from link.

Continue reading this article…

  1. There’s also a TC for Android and Midnight Commander for Linux.

Coding for pre-schoolers: a ‘Turtle Logo’ in Forth

*New!* (29 Aug 2020) – Turtle Logo v1.8 (portable) is available! Developer kit with source code included. Suitable from ages 3 years to adult. (970 lines of Forth code).


1. Inspiring the next generation of technology builders.

A challenge facing parents and teachers is how to help children develop ‘builder’ relationships with technology rather than being limited to the passive consumption of content created by others. The consensus on what’s important for older kids and adults is clear: coding. This enables children to participate in the creation of their own technological “micro-worlds” — environments rich in educational potential.[14]

This autumn, spurred by having our own young children (one aged 4 years, the other 16 months), we began an experiment, the result of which is a Turtle Logo program for Windows computers (freely downloadable) that is simple enough to be accessible for children from 3 years and older, while providing an extensible platform that can grow with the child.

The long-term goal is to enable children to express their creativity, artistry, and natural ‘builder’ impulses using coding, computer graphics, and robotics as readily as the previous generation could using paints, brushes, and building blocks.

Turtle Logo - Inspiring the next generation of technology builders.

Turtle Logo – Inspiring the next generation of technology builders.

Continue reading this article…

Computing & software as ‘force-multipliers’: achieving objectives as an ‘army of one’ before requiring high performance teams

“When your vision of what you want to do is what you can do single-handedly, then you should pursue it. The day your vision (what you think needs to be done) is bigger than what you can do single-handedly, then you have to move toward management. The bigger the vision is, the further into management you have to go.” – Richard Hamming, You and Your Research, Talk at Bellcore, 7 Mar 1986, (PDF).

Your computer, kitted out with best in class software tools (mostly open source), can be perhaps the single greatest force multiplier that you have as a scientist, engineer, or mathematician. With the willingness to work hard and persist, and some skill at ‘software joinery’, you can accomplish more than you realize solely through your own capabilities. This article is about achieving those visions which you can do single-handedly, and how this enables having and testing the kind of bigger visions for which you need that next level of force multiplication that comes through larger budgets, high-performance teams, and management.

Continue reading this article…

Disaster Management for Web-Hosted Data

(Technology Infrastructure Series)

In case you’re taking seriously guarantees about uptime, reliability, or backups advertised by website hosting companies, you should know that most guarantees of service are an idealized concept, especially if you use a low-cost web hosting service. Now, this doesn’t mean you should avoid low-cost web hosts. What you should do is give a little thought to the “what if’s” that may arise, and what you can do before they arise to minimize the pain when they do.

In this article, I’ll go through a few situations you might want to consider, and some options you can use to reduce your risk.

Continue reading this article…

Stats: 1,072,680 article views since 2010 (May '24 update)

Dear Readers:

Welcome to the conversation!  We publish long-form pieces as well as a curated collection of spotlighted articles covering a broader range of topics.   Notifications for new long-form articles are through the feeds (you can join below).  We love hearing from you.  Feel free to leave your thoughts in comments, or use the contact information to reach us!

Reading List…

Looking for the best long-form articles on this site? Below is a curated list by the main topics covered.

Mathematics-History & Philosophy

  1. What is Mathematics?
  2. Prehistoric Origins of Mathematics
  3. The Mathematics of Uruk & Susa (3500-3000 BCE)
  4. How Algebra Became Abstract: George Peacock & the Birth of Modern Algebra (England, 1830)
  5. The Rise of Mathematical Logic: from Laws of Thoughts to Foundations for Mathematics
  6. Mathematical Finance and The Rise of the Modern Financial Marketplace
  7. A Course in the Philosophy and Foundations of Mathematics
  8. The Development of Mathematics
  9. Catalysts in the Development of Mathematics
  10. Characteristics of Modern Mathematics

Electronic & Software Engineering

  1. Electronics in the Junior School - Gateway to Technology
  2. Coding for Pre-Schoolers - A Turtle Logo in Forth
  3. Experimenting with Microcontrollers - an Arduino development kit for under £12
  4. Making Sensors Talk for under £5, and Voice Controlled Hardware
  5. Computer Programming: A brief survey from the 1940s to the present
  6. Forth, Lisp, & Ruby: languages that make it easy to write your own domain specific language (DSL)
  7. Programming Microcontrollers: Low Power, Small Footprints & Fast Prototypes
  8. Building a 13-key pure analog electronic piano.
  9. TinyPhoto: Embedded Graphics and Low-Fat Computing
  10. Computing / Software Toolkits
  11. Assembly Language programming (Part 1 | Part 2 | Part 3)
  12. Bare Bones Programming: The C Language

Pure & Applied Mathematics

  1. Fuzzy Classifiers & Quantile Statistics Techniques in Continuous Data Monitoring
  2. LOGIC in a Nutshell: Theory & Applications (including a FORTH simulator and digital circuit design)
  3. Finite Summation of Integer Powers: (Part 1 | Part 2 | Part 3)
  4. The Mathematics of Duelling
  5. A Radar Tracking Approach to Data Mining
  6. Analysis of Visitor Statistics: Data Mining in-the-Small
  7. Why Zero Raised to the Zero Power IS One

Technology: Sensors & Intelligent Systems

  1. Knowledge Engineering & the Emerging Technologies of the Next Decade
  2. Sensors and Systems
  3. Unmanned Autonomous Systems & Networks of Sensors
  4. The Advance of Marine Micro-ROVs

Math Education

  1. Teaching Enriched Mathematics, Part 1
  2. Teaching Enriched Mathematics, Part 2: Levelling Student Success Factors
  3. A Course in the Philosophy and Foundations of Mathematics
  4. Logic, Proof, and Professional Communication: five reflections
  5. Good mathematical technique and the case for mathematical insight

Explore…

Timeline