Playing with Pygame
2021-02-21I needed some light relief, so I started messing with Pygame.
Filed in: Python (Primarily about programming in Python)Joining Ably
2020-12-06I am joining Ably to work on their developer documentation.
Filed in: Work (Work related)Server-Sent Events (SSE)
2020-11-29In this article I take a quick look Server-Sent Events using Node and JavaScript.
Filed in: JavaScript (Primarily about programming in JavaScript)Running Vonage API Developer Portal locally
2020-11-27In this article I take a quick look at how to run Vonage ADP locally.
Filed in: Nexmo (About using the Nexmo API)Realtime telemetry with Nexmo and Ably
2020-10-25In this article I take a look at building a realtime telemetry system based on SMS with Nexmo and Ably
Filed in: Ably (Ably Realtime SDK)FlySpy the final frontier
2020-10-14In this article I conclude the video series on FlySpy by looking at the server API and the mapping client.
Filed in: Code (Other programming (not Python or JavaScript))How to secure your Flask web app with HTTPS and Basic Authentication
2020-10-10How to secure your Flask web app with HTTPS and Basic Authentication
Filed in: Python (Primarily about programming in Python)Troubleshooting Ruby Gems
2020-10-06In this article I take a quick look at a recent case where I needed to troubleshoot my Ruby Gem packages installation.
Filed in: Code (Other programming (not Python or JavaScript))FlySpy persistence
2020-10-04In this article I present the FlySpy persistence functionality
Filed in: Code (Other programming (not Python or JavaScript))FlySpy webhook handler
2020-09-30In this article I present the FlySpy webhook handler
Filed in: Code (Other programming (not Python or JavaScript))FlySpy architectural overview
2020-09-26In this article I present an architectural overview of FlySpy, and also demonstrate the Facebook side of the project.
Filed in: Code (Other programming (not Python or JavaScript))An introduction to FlySpy
2020-09-25In this article I do a video intro to this exciting project.
Filed in: Code (Other programming (not Python or JavaScript))First experiences with TinyDB
2020-09-06In this article I take a quick look at the magical TinyDB, a nifty little NoSQL/JSON/document-oriented database for Python.
Filed in: Python (Primarily about programming in Python)Base64 encoding
2020-08-21In this article I take a quick look at Base64 encoding in Python.
Filed in: Code (Other programming (not Python or JavaScript))Verifying signed webhooks
2020-07-20In this article I take a look at verifying Nexmo signed webhooks. The ideas might be useful in your own projects and for dealing with other APIs.
Filed in: Python (Primarily about programming in Python)URL Encoding
2020-07-07In this article I take a look at what URL encoding is, and also look at a related practical problem I had to overcome.
Filed in: Formats (File, number and data formats, encodings and character sets (Spreadsheets, JSON, YAML, BCD, Hex etc.))Freelancing: How much should you charge?
2020-01-06In this article I take a look at how much you should charge for freelance IT work.
Filed in: Work (Work related)The death of the Internet café
2019-11-25A look back at the rise and fall of the Internet café, or Cyber café as it was sometimes known.
Filed in: Retro (Digging back into the old days of tech)Write your own JWT generator in Python
2019-11-23Shows you how to write your own command-line JWT generator in Python.
Filed in: Python (Primarily about programming in Python)Exploring HTTP
2019-11-21A brief exploration of HTTP and the tool HTTPie.
Filed in: Tools (Useful command line tools, applications, and shell)How to write a simple web spider in Python
2019-11-07How to write a simple web spider in Python to use as a link checker.
Filed in: Python (Primarily about programming in Python)Python and Unicode
2019-11-05This article takes a look at using Unicode in Python.
Filed in: Python (Primarily about programming in Python)What are Character Encodings?
2019-11-02This article takes a look at what character encodings are.
Filed in: Formats (File, number and data formats, encodings and character sets (Spreadsheets, JSON, YAML, BCD, Hex etc.))What are Character Sets?
2019-10-29This article takes a look at what character sets are.
Filed in: Formats (File, number and data formats, encodings and character sets (Spreadsheets, JSON, YAML, BCD, Hex etc.))Introduction to JSON
2019-10-24A quick look at JSON, why it's important and how to deal with it in Python and JavaScript.
Filed in: Formats (File, number and data formats, encodings and character sets (Spreadsheets, JSON, YAML, BCD, Hex etc.))How to upgrade your Postgres database tables
2019-10-21Looks at how to upgrade database tables in an older version to a newer version of Postgres.
Filed in: Databases (MySQL, Postgres, et alia)Introducing Python lambda
2019-10-20A first look at Python lambda
Filed in: Python (Primarily about programming in Python)Python non-greedy regexes
2019-10-19How to make Python regexes a little less greedy using the `?` modifier.
Filed in: Python (Primarily about programming in Python)On missed opportunities
2019-04-11Some thoughts on some of the bigger opportunities missed along the way.
Filed in: Stories (Memoir and stories based on (often bitter) personal experience)How to take out a contract on John Wick
2019-04-04I show you how to take out an open contract on John Wick with a bit of help from Nexmo and Python.
Filed in: Python (Primarily about programming in Python)The case of the missing clients
2019-03-30What do you do when all your customers suddenly dispappear overnight? Call me of course.
Filed in: Stories (Memoir and stories based on (often bitter) personal experience)Creating a video chat application with OpenTok
2019-03-21Creating video chat application with OpenTok.
Filed in: Nexmo (About using the Nexmo API)Calculating compound interest
2019-03-05T00:00:00.000ZIn this article I take a quick look at performing financial calculations in Python. I also take a look at the very important 4% rule.
Filed in: Random (Miscellaneous pieces that don't fit one of the other categories)Doom Zone Memory Manager
2018-12-13On the mysteries of the Doom Zone Memory Manager and other Doom-related trivia.
Filed in: Books (Book reviews and recommended books)Python keyword parameters
2018-11-02In this article I take a quick look at Python keyword (named) parameters.
Filed in: Python (Primarily about programming in Python)Emacs keyboard configuration on Mac
2018-11-02In this article I talk about configuring Emacs for use on Mac OS X. The configuration works with both Terminal Emacs and Cocoa Emacs(Desktop).
Filed in: Emacs (The one true and totally splendiferous editor)Understanding JWTs
2018-11-01This article takes a look at JSON Web Tokens or JWTs. The article looks at their basic format, and how they are created and used.
Filed in: Formats (File, number and data formats, encodings and character sets (Spreadsheets, JSON, YAML, BCD, Hex etc.))Understanding Unix time
2018-10-30This article takes a look at the idea behind Unix time. It also shows you how to get the current Unix time from the shell and from Python. The concept of the Unix timestamp will be used again in subsequent articles.
Filed in: Formats (File, number and data formats, encodings and character sets (Spreadsheets, JSON, YAML, BCD, Hex etc.))Customizing your Bash shell prompt
2018-07-06In this article I look at customizing your Bash shell prompt.
Filed in: Tools (Useful command line tools, applications, and shell)Learning JavaScript with HTML5 Canvas
2018-07-05In this article I decide to learn JavaScript and write a couple of simple JavaScript programs.
Filed in: JavaScript (Primarily about programming in JavaScript)Dial-a-chiptune
2018-05-11In this article I talk about a fun little project I whipped up in about an hour of pre-breakfast hack time. It's super easy, but could provide the basis for your own more ambitious projects.
Filed in: Nexmo (About using the Nexmo API)A gentle introduction to Nexmo
2018-05-10In this article I attempt to provide you with a gentle introduction to what Nexmo is, some of the things it can be used for, and provide some simple example code in Python.
Filed in: Nexmo (About using the Nexmo API)Really simple encryption
2018-05-08In this article I take a look at a really simple encryption system. Applications could include sending ever-so-slightly more secure text messages via APIs such as Nexmo or Clockwork.
Filed in: Formats (File, number and data formats, encodings and character sets (Spreadsheets, JSON, YAML, BCD, Hex etc.))Radio telemetry with Nexmo and Python
2018-05-02This article looks at how to set up a cheap radio telemetry system using someting like a Raspberry Pi with an SMS module, Nexmo, and a little bit of Python on the back end.
Filed in: Nexmo (About using the Nexmo API)On buying my first smartphone
2018-04-20Some thoughts on taking the plunge and becoming a smartphone owner.
Filed in: Personal (Personal updates and thoughts on life)Intro to Ngrok
2018-04-13A quick intro to the wonders of Ngrok.
Filed in: Tools (Useful command line tools, applications, and shell)Joining Nexmo
2018-03-31Things are changing at Coffee and Code HQ (now tonys-notebook.com).
Filed in: Work (Work related)The lost art of fixing electronics
2018-03-01Some personal thoughts on the lost art of fixing electronics.
Filed in: Stories (Memoir and stories based on (often bitter) personal experience)Real-time systems - Internet of Things
2018-02-28My series on real-time systems concludes with some brief thoughts on the Internet of Things.
Filed in: Systems (Algorithms, data structures, concepts, OS, general systems)Bootstrapping
2018-02-28A look back at 'bootstrapping' in the 1980s.
Filed in: Retro (Digging back into the old days of tech)Real-time systems - web
2018-01-19Previous articles in this series described the nature of real-time systems and then the infrastructure (networks and protocols) underlying the web and the Internet of Things (IoT). This article provides a brief introduction to the real-time web, without delving into language-specific details. A future article will look at real-time aspects of the IoT.
Filed in: Systems (Algorithms, data structures, concepts, OS, general systems)Days of dial-up modems
2018-01-18Light-hearted memories of the "olden days".
Filed in: Retro (Digging back into the old days of tech)Real-time systems - networks and protocols
2018-01-17This article continues the series on real-time systems by looking at infrastructure (networks and protocols) underlying the web and the Internet of Things (IoT).
Filed in: Systems (Algorithms, data structures, concepts, OS, general systems)Real-time systems - timing
2018-01-16This article is the first in a series that attempts to explore what is meant by a real-time system, specifically in the context of communications, the web, and the Internet of Things (IoT).
Filed in: Systems (Algorithms, data structures, concepts, OS, general systems)Limits of Markdown
2017-11-24In which I discuss the limitations of Markdown when constructing websites and documentation systems.
Filed in: Tools (Useful command line tools, applications, and shell)How to generate an Atom feed
2017-11-20This article explains how an Atom feed was added to this site using Python code. The article also describes adding automatic feed discovery to the site.
Filed in: Code (Other programming (not Python or JavaScript))Dealing with dates
2017-11-14In this article I describe dates, how they are used on this site, and how you can generate ISO-8601 format dates on the Mac OS X command line.
Filed in: Formats (File, number and data formats, encodings and character sets (Spreadsheets, JSON, YAML, BCD, Hex etc.))The woeful web
2017-11-07In this article I look at what I think are some serious issues with the web today.
Filed in: Random (Miscellaneous pieces that don't fit one of the other categories)Caching in
2017-11-05T00:00:00.000ZA look back at how disk caching software and disk de-fragmenters were A Thing back in the 90s.
Filed in: Retro (Digging back into the old days of tech)Ever expanding memory
2017-11-01A brief look at how console memory has increased over the years.
Filed in: Systems (Algorithms, data structures, concepts, OS, general systems)How long to transfer a 1TB file?
2017-10-31How long does it take to transfer a 1TB file? Python can help.
Filed in: Python (Primarily about programming in Python)Cracking the Fog Creek coding problem
2017-10-29In this article I take a look at how to crack the Fog Creek content developer coding puzzle.
Filed in: Random (Miscellaneous pieces that don't fit one of the other categories)Wolfenstein's memory manager
2017-10-27An overview of the Wolfenstein 3D compacting memory manager.
Filed in: Systems (Algorithms, data structures, concepts, OS, general systems)Tracing version of `malloc`
2017-10-25I managed to create some useful macros for debugging C programs.
Filed in: Code (Other programming (not Python or JavaScript))Diving into the buffer pool
2017-10-23In this article I provide some brief notes on buffer pools.
Filed in: Systems (Algorithms, data structures, concepts, OS, general systems)Spreadsheets everywhere
2017-10-20On the phenomenon of the spreadsheet that starts out innocently enough and then becomes an out-of-control beast.
Filed in: Tools (Useful command line tools, applications, and shell)'Stdout was a bad, bad boy'
2017-10-19Sometimes an application may open `stdout` with ASCII encoding, rather than UTF-8.
Filed in: Python (Primarily about programming in Python)Python env issue on Ubuntu 16.04
2017-10-17Describes an issue where Python couldn't be found on Ubuntu.
Filed in: Python (Primarily about programming in Python)Excel ain't a database!
2017-10-15A light-hearted story on the problems of using Excel as a database.
Filed in: Stories (Memoir and stories based on (often bitter) personal experience)How Python saved my sanity!
2017-10-14A light-hearted look into how Python can help you retain your sanity!
Filed in: Python (Primarily about programming in Python)Calculating entropy
2017-10-11This article looks into how to calculate entropy. The article includes example C code.
Filed in: Code (Other programming (not Python or JavaScript))Can Rust help?
2017-10-10In this article I look into some problems with C pointers and wonder if Rust can help.
Filed in: Code (Other programming (not Python or JavaScript))Tales from the Bcrypt
2017-10-09Bcrypt proves to be a very convenient library for encrypting passwords.
Filed in: Python (Primarily about programming in Python)Don't forget to flush!
2017-10-07On solving a mysterious problem in a CGI web app.
Filed in: Tools (Useful command line tools, applications, and shell)Tracing memory allocations
2017-10-05On various attempts to try and trace memory allocations.
Filed in: Code (Other programming (not Python or JavaScript))Don't forget the Unix tools
2017-10-04There are times when the best approach is not to reinvent the wheel but use the numerous command line tools available in Unix.
Filed in: Tools (Useful command line tools, applications, and shell)Remembering TurboDOS
2017-10-02Back in the early 80s the company I worked for ran its entire operation on a Z-80 based operating system called TurboDOS. This article fondly remembers how capable the system was.
Filed in: Retro (Digging back into the old days of tech)Why I still use Emacs
2017-10-01A light-hearted story on why I still use Emacs.
Filed in: Emacs (The one true and totally splendiferous editor)