Stephen Smith's Blog
Musings on Machine Learning...
Ham radio / RFAI / MLAssemblySociety / politics / economyGeneral
- Posts
- 558 from 18 Jan 2009 to 30 Oct 2026
- Posting
- weekly (38 in the last year)
- Kind
- personal blog
- Feed
- https://smist08.wordpress.com/feed/
2026 31
- Reducing Reliance on Tech Oligarchs
- Are AIs Becoming Conscious?
- A Review of the ICOM IC-7300
- Antenna Trials and Tribulations
- Boycotting US Franchises & Chain Stores
- More Tariff Troubles
- International Competition in the AI Space
- False Fear of Open-Source AI Models
- First Look at LM Studio Bionic
- Generating AI Images with ComfyUI
- Is AI Making Things Better or Worse?
- Do We Really Need Data Centers?
- Linux Kills strncpy
- ARM Tries to be Everywhere
- Exploring the Virtual OS Museum
- Can Nvidia RTX Spark Let Windows Catch up to the Mac?
- Problems with Canada’s Bill C-22
- Ubuntu 26.04 Review
- Writing Your First ARM Assembly Program (Step-by-Step)
- Why Learn Assembly in 2026? Still Relevant or Pure Nostalgia?
- Is AI Replacing Bloggers?
- Single Sign-on, Privacy and US Big Tech
- AI Companies Recent Bad Behaviour
- Moving off American Tech – Continued
- Elbows Up
- Bias and Toxicity in Generative AI
- The Generative AI Race
- Canadian Tech Resiliency
- Review of Science Under Siege
- Review of Taming Silicon Valley
- 2026 Another Year Avoiding the USA
2025 16
- Replacing Google Search and Chrome
- A Review of Proton Apps
- Maintaining Privacy and Avoiding the USA
- Virtualizing Ubuntu on an M-series Mac
- Raspberry Pi Assembly Language Programming – Second Edition
- Upgrading to Raspberry Pi OS Trixie
- Playing with Ubuntu 25.10
- Back to Blogging
- Untangling the Reach of US Companies
- Boycotting US Companies
- Is Trump Really an Environmentalist?
- Facebook Pirated my Books
- Boycotting US Products and Services
- Has AI Become Sentient?
- More AI Problems
- AI’s and Stolen Training Data
2024 30
- Looking Ahead to 2025
- City of Vancouver to Use Bitcoin
- Social Media Wars
- iPhone 16 Pro Review
- RISC-V on the Raspberry Pi Pico 2
- Playing with PyGame Zero
- Introducing the RP2350
- MiSTer, PlayStation 1, Nintendo 64 and the MIPS CPU
- On the CrowdStrike Postmortem
- CrowdStrike and the Evil of Automatic Updates
- What’s Next for MiSTer
- MiSTer Amiga
- Continuing the MiSTer Journey
- Getting Started with MiSTer
- Raspberry Pi Connect
- Raspberry Pi 5 with SSD
- LinuxFest Northwest 2024
- Meet the Sipeed Tang Primer 25K FPGA
- Which Assembly Language Book is Right for You
- Speaking at the Upcoming LinuxFest NorthWest
- RISC-V Assembly Language Programming
- Programming the SunFounder GalaxyRVR Mars Rover
- A Mars Rover Explores my Backyard
- Review of Chip War by Chris Miller
- All the Chips: A history of the Semiconductor
- How to Program a SunFounder PiDog
- PiDog a New Member of the Pack
- Fun With an Inexpensive Oscilloscope
- Talking to the World with FT8 on a CRKits ADX-S QRP Radio
- Welcome to 2024, Looking Ahead
2023 16
- Adding Vision to the SunFounder PiCar-X
- Programming the SunFounder PiCar-X to be a Roomba
- My Raspberry Pi Learns to Drive
- Welcome the Raspberry Pi 5
- Espressif ESP32-C3-DevKit RISC-V Review
- Starfive Visionfive 2 SBC Update
- RISC-V Emulation Revisited
- Starfive Visionfive 2 RISC-V SBC Review
- Simulating RISC-V on a Raspberry Pi
- Counting on my RISC-V FPGA CPU
- RISC-V on a Basys 3 FPGA Development Board
- Introduction to FPGAs
- Tracking Aircraft with a Raspberry Pi
- Battling US Export Controls
- Looking Back and Looking Ahead
- KiCad on the Raspberry Pi
2022 21
- Playing with a Raspberry Pi IR Camera
- What I Learned About 3D Printing Last Week
- 3D Printing with the Creality Ender-3 V2
- The New Twitter Fail Whale
- Social Media, Sampling Theory and the US Midterm Elections
- Playing with FreeDOS and GW-Basic
- Koch Snowflake in Applesoft Basic
- Back to Basics
- Introducing the Raspberry Pi Pico W
- Assembly Language Tutorial Six for MagPi Magazine
- Rust Never Sleeps
- Assembly Language Tutorial Five for MagPi Magazine
- Assembly Language Tutorial Four for MagPi Magazine
- Assembly Language Tutorial Three for MagPi Magazine
- Assembly Language Tutorial Two for MagPi Magazine
- Ubuntu Goes Long Term
- Assembly Language Tutorials for MagPi Magazine
- Review of the Ecobee 3 Lite Smart Thermostat
- Adding Assembly Language to MicroPython
- Raspberry Pi OS Goes 64-Bit
- ARM Escapes nVidia’s Grasp
2021 30
- Technology Predictions for 2022
- Assembly Language is Number 8
- RP2040 Assembly Language Programming
- Windows 11 Appears on my Laptop
- The Newest Ubuntu Linux 21.10 Impish Indri
- Playing with the Wio Terminal’s Grove Connectors
- Playing with the Seeed Studio Grove Starter Kit for the Raspberry Pi Pico
- ARM’s True RISC Processors
- Introducing the Seeed Studio Wio RP2040
- ArduPy on the Wio Terminal
- Wio Terminal First Impressions
- I/O Co-processing on the Raspberry Pi Pico
- Bit-Banging the Raspberry Pi Pico’s GPIO Registers
- Calling Main in Assembly Language on the RP2040
- Assembly Language on the Raspberry Pi Pico
- Raspberry Pi Pico First Project
- Adafruit Feather RP2040 First Impressions
- Introduction to the RP2040
- Technology Tips for the Backcountry
- Some Useful Phone Apps for Search & Rescue
- Using Gaia for Search & Rescue
- Programming an Apple Watch
- State of Software on Apple Silicon
- Labists Raspberry Pi Kit Review
- Apple Watch Series 6 Review
- Can Intel Turn Things Around?
- More Linux for Apple Silicon
- Porting Linux to Apple Silicon
- Apple M1 Assembly Language Hello World
- Apple M1 as a Development Workstation
2020 39
- Apple M1 MacBook Air Review
- Technology Predictions for 2021
- 2020’s Best New Technologies
- BC Transit’s Ransomware Attack
- What’s Next for the Apple M2 ARM CPU
- Apple M1 Unified Memory
- Apple Mac ARM M1 Competitive Trade-offs
- Apple Macs Move to ARM Processors
- Is Internet Time a Good Thing?
- Welcome Groovy Gorilla
- How Social Media Divides Us
- Brainwashing by Social Media
- Technology and COVID-19
- What’s Next for ARM and RISC-V?
- Learning to Fly
- A Renaissance of Parallel Processing
- The Downside of Monopolies in Tech
- Is Apple Silicon Really ARM?
- The Ups and Downs of Chip Manufacturing
- Challenges for Many Core Processors
- 5 Best Word Processors for Writers
- Fallout From ARM’s Success
- Exciting Days for ARM Processors
- Playing with CUDA on my Gaming Laptop
- Blocking Speculative Execution Vulnerabilities on ARM Processors
- Raspberry Pi Gets 8Gig and 64-Bits
- Coffee in the Age of Social Distancing
- Browsing MSDOS and GW-Basic Source Code
- Virtual LinuxFest Northwest
- Programming with 64-Bit ARM Assembly Language
- Benchmarking with Folding@Home
- Solving COVID-19 with Folding@Home
- Drawing in Code by Processing
- Learning Electronics with Arduino
- “Unification” – My Second Novel
- Restoring an Old MacBook Pro
- On ARM Based MacBooks
- Tools for the Mobile Writer
- The Facts About Coffee Shop Wifi
2019 21
- ARM Processor Modes
- Interrupting the ARM Processor
- Out-of-Order Instructions
- RISC Instruction Encoding
- Raspberry Pi Assembly Language Programming
- The Race for 64-Bit Raspberry Pi 4 Linux
- Risc-V Assembly Language Hello World
- Introducing Risc-V
- Raspberry Pi 4 as a Desktop Computer
- Playing the Kaggle Two Sigma Challenge 2018/2019
- Low Cost Linux Notebooks
- Raspberry Pi 4 First Impressions
- LinuxFest Northwest 2019
- Playing with Software Defined Radio
- Playing with CUDA on My NVIDIA Jetson Nano
- Can NVidia Bake a Better Pi Than Raspberry?
- Ghidra
- Social Media Bots
- The Technology of “Influence” – Part 5 VHF Radio Modems
- Open Source Photography Toolkit
- The Technology of “Influence” – Part 4 Kali Linux
2018 16
- The Technology of “Influence” – Part 3 The Onion Browser
- The Technology of “Influence” – Part 2 VPN
- The Technology of “Influence” – Part 1 HTTPS
- “Influence” – My First Novel
- Getting Productive with Julia
- Avoiding Airline Collisions with Julia
- Julia Flux for Machine Learning
- TensorFlow from Julia
- Playing with Julia 1.0 on the Raspberry Pi
- TensorFlow on the Raspberry Pi and Beyond
- Erlang on the Raspberry Pi
- Refurbishing an Old Laptop
- Kali Linux on the Raspberry Pi
- Flashing LEDs in Assembler
- Spectre Attacks on ARM Devices
- Raspberry Pi Assembly Programming
2017 30
- C Programming on the Raspberry Pi
- Predictions for 2018
- On Net Neutrality
- Fortran Lives
- Retro-Spreadsheeting
- Playing Music by Writing Code
- Retro-Gaming on the Raspberry Pi
- Breadboarding with my Raspberry Pi
- Playing with my Raspberry Pi
- Getting My Amateur Radio License
- Updates to the TensorFlow API
- Components Leading to Strong AI
- Playing with Image Style Transfer
- An Introduction to Image Style Transfer
- A Crack in the TensorFlow Platform
- Dangers of Tunable Parameters in TensorFlow
- Your New AI Accountant
- Making Business Applications Intelligent
- Learning in Brains and Computers
- The Brain’s Operating System
- Is the Brain Really a Computer?
- Intelligence Through Emergent Behaviour – Part 2
- Intelligence Through Emergent Behaviour – Part 1
- The Road to Strong AI
- Playing the Kaggle Two Sigma Challenge – Part 5
- Playing the Kaggle Two Sigma Challenge – Part 4
- Playing the Kaggle Two Sigma Challenge – Part 3
- Playing the Kaggle Two Sigma Challenge – Part 2
- Playing the Kaggle Two Sigma Challenge – Part 1
- TensorFlow Goes 1.0
2016 23
- The Road to TensorFlow – Part 11: Generalization and Overfitting
- The Road to TensorFlow – Part 10: More on Optimization
- The Road to TensorFlow – Part 9: TensorBoard
- The Road to TensorFlow – Part 8: Improving the Model
- The Road to TensorFlow – Part 7: Finally Some Code
- The Road to TensorFlow – Part 6: Optimization and Training
- The Road to TensorFlow – Part 5: An Introduction to Neural Networks
- The Road to TensorFlow – Part 4: The Stock Market
- The Road to TensorFlow – Part 3: Python Libraries
- The Road to TensorFlow – Part 2: Python
- The Road to TensorFlow – Part 1 Linux
- UI Testing in Swift
- Performance Testing in Swift
- Adding Unit Tests to My Swift Application
- My First Swift Application
- Synchronizing Data with Sage 300
- Some Thoughts on Artificial Intelligence
- Passing the Torch
- Sage Connect 2016
- Sage 300c Web Services
- Accessing Sage 300c’s Business Logic from the Web UIs
- Stateless Versus Stateful Sage 300c Web UIs
- Adding a Grid to Your Sage 300 Web UI
2015 26
- Adding Your Application to the Home Page
- Sage 300 Web UI SDK – Adding JavaScript
- Sage 300 Web UI SDK – Adding UI Controls
- Introducing the SDK for the Sage 300 Web UIs
- Sage 300 2016 Operations Beta
- Agile Vs Roadmap
- Sage 300 Web UI Internals
- Accounting in the Web with Sage 300
- Sage 300 2016 RTM
- International Support in Sage 300c
- Skills for Developing for Sage 300c
- Bengaluru Travel Blog Part 4
- The Sage 300 2016 KPIs
- The New Sage 300 Home Page
- Scaling and Availability for the new Sage 300 Web UIs
- Installing the New Sage 300 Web UIs Securely
- Installing the Sage 300c Web UIs
- Sage 300 Moves into the Browser
- Me and My Drone
- Remembering Leonard Nimoy
- Performance and the Sage 300 Views Part 2
- Performance and the Sage 300 Views Part 1
- Drilldown in Sage 300 ERP
- On Calculating Dashboards
- CSQRY from the .Net API
- Dabble in Startups But Keep Your Blue Chip Job
2014 33
- The Sage 300 SDLC
- Bangalore Travel Blog Part 3
- Bangalore Travel Blog Part 2
- Bangalore Travel Blog Part 1
- How to Run Customized Sage 300 Screens from Sage CRM
- Problems with Branching by Feature
- Sage 300 ERP 2016 SQL Server Only
- Sage Intelligence Go!
- Seos
- Sage Summit 2014
- Using the Sage 300 .Net Helper APIs
- Wearable Devices and Sports
- Google Mobile Trends
- Troubleshooting Problems in the Cloud
- Apple Mobile Trends
- Evicting Users from Sage 300 ERP
- On Organizing Agile
- More Thoughts on Security
- Some Thoughts on Security
- Disaster Recovery
- Elastic Search
- On Accelerating Projects
- On Retaining Employees
- The Umbrella Ceiling
- Unstructured Time at Sage
- Multi-Threading in Sage 300
- 10 Questions for Sage Uncle Steve
- The Sage 300 System Manager Core DLLs
- The Times They Are a-Changin’
- Branching by Feature
- Moving on to Unicode
- Data Entry Through the Ages
- Sage 300 ERP Optional Fields
2013 45
- Looking Back on 2013 and Forward to 2014
- Sage 300 ERP Metadata
- Error Reporting in Sage 300 ERP
- Using the Sage 300 .Net API from ASP.Net MVC
- The Sage Visions and Sage Connect 2013 Conferences
- Using Browse Filters in the Sage 300 ERP .Net API
- Using the Sage 300 ERP View Protocols with .Net
- Composing Views in the Sage 300 ERP .Net API
- Starting to Program the Sage 300 ERP Views in .Net
- An Introduction to the Sage 300 ERP .Net API
- Moving on to 64-Bit
- Sage Intelligence 7.4
- Screen Improvements in Sage 300 ERP 2014
- Sage CRM 7.2 Available for Sage 300 ERP
- Managing Lanpaks in Sage 300 ERP 2014
- Sage Mobile Sales
- Sage Billing and Payments
- Sage Mobile Service
- Sage 300 Online
- Sage Summit 2013
- Visual Process Flows for Sage 300 ERP 2014
- Launching Non-SDK Programs From the Desktop
- Introducing Sage City Online
- Sage 300 ERP Desktops Through the Ages
- Sage 300 ERP Macros
- Pulling My Hair Out Over GPO
- Data Execution Prevention
- Running for a Cause
- Oranges for the Arthritis Blues
- Windows Bit-Rot
- G/L Account Structure in Sage 300 ERP
- User Roles and Security in Sage 300 ERP
- Google Forks WebKit
- Sage 300 ERP – Data Integrity
- Sage 300 ERP – Only Activate What You Need
- My First Experience Writing an iPad App
- The Singularity
- Our Sage R&D Leadership Conference at Newport Beach
- Frustrations in Developing Mobile Applications
- Virtualization
- New Payroll with Sage 300 ERP 2012 Product Update 1
- Colorful Companies in Sage 300 ERP
- Linux is Everywhere
- Azure and PaaS Versus IaaS
- The Sage 300 ERP Java API
2012 47
- Opening Sage 300 ERP Sessions
- Voice Input and Concierge Services
- The End of the Smart Phone Era?
- Sage Insights and Summit Conferences, Wellington 2012
- The Sage Hybrid Cloud
- Some Experiences from Blogging
- Sage Vision 2012
- Our First Hackathon
- The Road to DevOps Part 2
- The Road to DevOps Part 1
- Customization: A Two-Edged Sword
- Devices and the Cloud
- Reporting Via Macros
- Sage 300 ERP 2012 RTM
- Export
- Sage Summit 2012
- Developing Windows 8 Style UIs
- Developing for Mobile Devices
- The Argos SDK Part 2
- The Argos SDK
- Sage 300 ERP 2012
- SData Referenced Resources
- Sage 300 ERP 2012 Supported Platforms
- What’s New in the Sage CRM Integration for Sage 300 ERP 2012
- Sage Visual Process Flows
- Value Added Application Features for Sage 300 ERP 2012
- SData Enhancements for Sage 300 ERP 2012
- Sage 300 ERP Inquiry Queries for 2012
- Sage Innovation Process
- Choosing Between Cloud Providers
- SData Training Videos
- Sage 300 ERP 2012 Payment Processing
- Sage 300 on Windows 8
- Learning over the Web
- Sage Advisor PEP
- TPAC 2012
- Sage Advisor Update
- Defining SData Feeds for Sage 300 ERP
- A Roadmap for SData Integration to Sage Products
- Avoiding Agile Pitfalls
- Sage African Insights 2012
- Continuous Deployment
- NoSQL for ERP?
- ERP and Crystal Reports
- Five Whys
- Doing Work in Small Batches and Limiting Work in Progress
- On Customer Adoption
2011 48
- Tables and Data Flow of the Sage 300 ERP System Manager Module
- Tables and Data Flow of the Sage 300 ERP Payroll Module
- Unit Testing Web UIs in Sage 300 ERP
- Competing Web Development Systems
- 20 Years of Change in ERP
- Stability Testing of Sage 300 ERP
- Sage 300 ERP Web UIs and CSS
- Sage 300 ERP Web UIs and MVC
- Sage 300 Server Side Programming Examples
- The Accpac Server Side Programming Model
- Tables and Data Flow of the Accpac Accounts Payable Module
- Accpac, GWT and other Web Technologies
- Accpac 6 Online
- Tables and Data Flow of the Accpac Purchase Order Module
- More on Sage ERP Accpac 6.1A Order Entry
- Tables and Data Flow of the Accpac Inventory Control Module – Part 2
- Tables and Data Flow of the Accpac Inventory Control Module – Part 1
- Accpac and SQL Server
- Fun with SData
- A Quick Tour of Sage ERP Accpac Order Entry 6.1A
- Tables and Data Flow of the Accpac Order Entry Module
- Sage Summit 2011
- Tables and Data Flow of the Accpac General Ledger Module
- SageCRM 7.1 Released
- SaaSifying Accpac
- Welcome to the Post-PC World
- Customizing Sage ERP Accpac Inquiry
- Releasable State
- Customizing Crystal Reports for Sage ERP Accpac
- ERP Vision 2020
- Skills for Sage Web Development
- Developer Training at Summit
- Test Driven Development at Sage
- Accpac A/R Database Structure
- Day End Processing
- Moving VB Screens to the Web
- Accpac Payment Processing
- RVSpy and DBSpy
- Diagnosing Problems with Sage ERP Accpac 6.0A
- Sage ERP Labs
- SaaSifying Sage
- Moving to GWT 2.1
- Displaying Social Media in the Accpac 6 Portal
- Sage’s Portfolio Strategy
- On Connected Services
- Accpac 6.1 Development Kick-off
- Accpac Credit Card Processing
- Accpac 6 FAQ
2010 49
- Accpac on the Amazon Cloud
- Customizing the Order Details in Quote to Orders
- Accpac in the Cloud
- Customizing Quotes to Orders
- Setting up Sage ERP Accpac 6.0A Securely
- How to Best Demo Sage ERP Accpac 6.0A
- Entering Orders and Header/Detail Views
- To SDK or Not to SDK
- Efficient Data Entry in Accpac
- Sage ERP Accpac 6.0A Compelling Installed Base Value
- Sage ERP Accpac 6 Competitive Advantages
- Installing and Deploying Sage ERP Accpac 6.0A
- Preparing for the Sage ERP Accpac 6.0A Launch
- A Short History of the Accpac View Interface
- Accpac’s Business Logic
- TPAC 2010
- Writing Server Side Code for Accpac 6 Web UIs
- Client Logic for an Accpac 6 Web Form
- Creating a Web Form for Accpac 6
- On Database Dump and Load
- Accpac Multi-Version Support
- Accpac and Business Continuity
- International Support in Accpac
- Accpac and It’s Databases
- Migrating Customizations to Sage ERP Accpac 6
- Accpac on the iPhone and Android
- Sage ERP Accpac 6 User Assistance
- Running Classic Forms in Sage ERP Accpac 6
- Drilling Down from Crystal Reports in Sage ERP Accpac 6
- How to Layout Forms in Sage ERP Accpac 6
- Insights 2010
- Sage ERP Accpac Macro Tips and Tricks
- On the Sage GCRM Contract
- Diagnosing Problems Running Accpac Part 4
- Diagnosing Problems Running Accpac Part 3
- Diagnosing Problems Running Accpac Part 2
- Diagnosing Problems Running Accpac Part 1
- Automated Testing in Sage ERP Accpac Development
- ERP and Social Media
- Sage ERP Accpac 6.x Mobility
- On Total Cost of Ownership
- Sage ERP Accpac 6 Security
- Sage ERP Accpac 6 Performance Testing
- Sage ERP Accpac 6.0 – Locking Fiscal Periods by Module
- Stateful SData
- Sage ERP Accpac 6 Customization
- Sage ERP Accpac 6 Deployment
- More on SData and Sage ERP Accpac 6
- Sage ERP Accpac 6.x Product Roadmap
2009 37
- Sage ERP Accpac 6.0 Data Portlets
- Sage ERP Accpac 6.0 Quote to Orders
- Sage ERP Accpac 6.0 Adhoc Query
- The Sage ERP Accpac 6.0A Portal
- SData in Sage ERP Accpac 6
- Declarative Programming in Sage ERP Accpac 6.0A
- On Agile Sprint Reviews
- Amazing Google Street View
- Diversity in Mobile Phone Platforms
- Learning About Agile
- Amazing CGI
- Frenzy in the WWW
- Competition During a Recession
- More Bad Earnings for Microsoft
- Operating System Competition Heats Up
- Porting Versus Integrating
- SQL Server, Performance and Clustered Indexes
- Sage Insights
- Thinking About Resource-Oriented Architectures
- On Teamwork
- Should We Still Use the C Programming Language?
- On Adopting Agile Development
- On Paranoia and Security
- On Adding Features to a Large Existing Application
- Sage Spark Live
- Improving Product Quality
- Difficulties with SQL Statements
- SaaS and Security
- Fault Tollerance and Self Healing Processes
- Some Thoughts on Technology Adoption
- Root Cause Analysis
- On Being Customer Connected
- The Economy and Selling ERP Solutions
- Bad Day for Microsoft, IBM and Intel
- Open Source Software Development Tools
- Computer Upgrade Cycle
- Introduction