Knowledge Engineering & Emerging Technologies*

2nd ed. Jan 2024 (with standalone chapters), 1st. ed. 2005

Overview

In the intersection between Mathematics, Modern Statistics, Machine Learning & Data Science, Electrical Engineering & Sensors, Computer Science, and Software Engineering, is a rapidly accelerating area of activity concerned with the real-time acquisition of rich data, its near real-time analysis and interpretation, and subsequent use in high quality decision-making with automatic adjustment and intelligent response. These advances are enabled by the development of small, energy efficient microprocessors coupled with low-cost off-the-shelf sensors, many with integrated wireless communication and geo-positional awareness, communicating with massive high-speed databases. For teams able to bridge the disciplines involved, the potential for economically productive application is limitless.

Figure 3.

Traditional science and technology disciplines are in the outermost ring, often isolated from each other. The result of their integration is driving the areas out of which a large portion of technology in the coming decades is likely to appear.

Continue reading this article…

TinyPhoto: Embedded Graphics and Low-Fat Computing

TinyPhoto is a small rotating photobook embedded graphics project that uses the low-power ATtiny85 microcontroller (3mA) and a 128×64 pixel OLED display (c.5-10mA typical, 15mA max). This combination can deliver at least 20 hrs of continuous play on a 3V coin cell battery (225mAh capacity). TinyPhoto can be readily built from a handful of through-hole electronic components (12 parts, £5) organized to fit onto a 3cm x 7cm single-sided prototype PCB. The embedded software is c.150 lines of C code and uses less than 1,300 bytes of on-chip memory. TinyPhoto rotates through five user-selectable images using a total of 4,900 bytes (yes, bytes!) stored in the on-chip flash RAM. The setup produces crisp photos on the OLED display with a real-time display rate that is instantaneous to the human eye with the Tiny85 boosted to run at 8MHz. A custom device driver (200 bytes) sets up the OLED screen and enables pixel-by-pixel display. Custom Forth code converts a 0-1 color depth image into a byte-stream that can be written to the onboard flash for rapid display. It is a reminder of what can be accomplished with low-fat computing

The magic, of course, is in the software. This article describes how this was done, and the software that enables it. Checkout the TinyPhoto review on Hackaday!

Tiny Photo – 3cm x 7cm photo viewer powered by ATTiny85 8-bit microcontroller sending pixel level image data to OLED display (128×64 pixels), powered by 3V coin cell battery. Cycles through 5 images stored in 5kB of on-chip Flash RAM. (Note, this is 1 million times less memory than on a Windows PC with 8GB RAM). The magic is in the software.

Continue reading this article…

Programming Microcontrollers – low power, small footprints, & fast prototypes, using Arduino, Atmel, & GForth

This article explains how to use the Arduino toolchain to program microcontrollers from the Arduino IDE using their bootloaders, and also burning bootloaders directly onto bare microcontroller chips. It covers developing interactively with Forth (rapid prototyping), and moving your creations from a development board (Nano, Uno) to a standalone, low-cost, low-power, small footprint chip such as the ATMega328P or ATTiny85 or ATTiny84. Each of these microcontrollers is powerful, inexpensive, and allows using 3V batteries directly without the need to boost voltage to 5V. Additionally, we describe how to build an inexpensive (under £5), standalone 3-chip Atmel AVR universal bootloading programmer that you can use to program all of the chips above.
Continue reading this article…

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…

Sensors and Systems: Integrating Sensors into the Ubiquitous Computing Stack

“Smart dust”, tiny leaf sensors, wearable computing — these and a host of other sensors that make measurements and communicate without requiring human intervention can now be readily integrated into dispersed systems to provide ambient intelligence, situational awareness, and the capability for adaptive behaviors or intelligent process automation.

Whether the sensor’s output is used to control the opening and closing of relays or thermostats, or to automatically raise alerts — the integration of sensors into systems is at the heart of the promise of ubiquitous computing. With the ability to place hundreds of embedded sensors within a given coverage area, each wirelessly streaming information, the possibility of self-organizing sensor networks is increasingly becoming a reality.

This article takes a look at the sensor layer of a basic ubiquitous computing stack.

Continue reading this article…

Maxima (Computer Algebra)

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.

Maxima: a Computer Algebra System (CAS) for symbolic computation

Last updated: Feb 19, 2023 (fixed links). Nov 11, 2022 (added omega-math’s excellent web interface, and generating function calculation of the partition of integers problem).

Maxima is a computer algebra system (CAS) for symbolic computation that is free, open source, runs on multiple operating systems (Win,Mac,Linux), and covers a wide range of mathematical capabilities and graphical capabilities. These include algebraic simplification, polynomials, methods from calculus, matrix equations, differential equations, number theory, combinatorics, hypergeometric functions, tensors, gravitational physics, PDEs, nonlinear systems, plus including 2-D/3-D plotting and animation.  With a large and responsive user community, there is plenty of help to get up the learning curve, and with its active developer base, Maxima and its ecosystem continue to gain capability, including a fantastic web interface by Omega-Math/Vroom-Labs (see the screenshot below, r0*0). The result is a free, versatile, powerful mathematical computing package for engineers, scientists, mathematicians, programmers, and students. This article will help you get started with Maxima and set you up with resources to flatten the learning curve.

Omega-Math’s web interface to Maxima. Used here to calculate the first 10 elements of p(n), the number of ways to partition integer n, using a generating function comprising a truncated series of polynomials up to degree n=10


Continue reading this article…

Bare Bones Programming: The C Language

…for Embedded and Low-Level Systems Development

C provides the convenience of learning one language while retaining the ability to target a variety of platforms including modern operating systems (Linux, Windows, Mac), real-time operating systems, systems-on-a-chip, and a host of microcontrollers for embedded development. And if you have to “mov” the bits around yourself (device drivers, DMA controllers), you can do that too. This is a significant efficiency over assembly languages which are essentially chip-specific control codes and therefore require understanding the architecture of the target chip.

Continue reading this article…

Stats: 1,066,417 article views since 2010 (March 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