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: CodeFreelancing: 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: RandomThe 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: RetroWrite your own JWT generator in Python
2019-11-23Shows you how to write your own command-line JWT generator in Python.
Filed in: CodeHow 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: CodeWhat are Character Encodings?
2019-11-02This article takes a look at what character encodings are.
Filed in: CodeWhat are Character Sets?
2019-10-29This article takes a look at what character sets are.
Filed in: CodeIntroduction 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: CodeHow 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: ToolsPython non-greedy regexes
2019-10-19How to make Python regexes a little less greedy using the `?` modifier.
Filed in: CodeOn missed opportunities
2019-04-11Some thoughts on some of the bigger opportunities missed along the way.
Filed in: StoriesHow 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: NexmoThe case of the missing clients
2019-03-30What do you do when all your customers suddenly dispappear overnight? Call me of course.
Filed in: StoriesCreating a video chat application with OpenTok
2019-03-21Creating video chat application with OpenTok.
Filed in: NexmoCalculating 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: RandomDoom Zone Memory Manager
2018-12-13On the mysteries of the Doom Zone Memory Manager and other Doom-related trivia.
Filed in: BooksPython keyword parameters
2018-11-02In this article I take a quick look at Python keyword (named) parameters.
Filed in: CodeEmacs 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: ToolsUnderstanding 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: CodeUnderstanding 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: CodeCustomizing your Bash shell prompt
2018-07-06In this article I look at customizing your Bash shell prompt.
Filed in: ToolsLearning JavaScript with HTML5 Canvas
2018-07-05In this article I decide to learn JavaScript and write a couple of simple JavaScript programs.
Filed in: CodeDial-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: NexmoA 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: NexmoReally 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: CodeRadio 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: NexmoOn buying my first smartphone
2018-04-20Some thoughts on taking the plunge and becoming a smartphone owner.
Filed in: StoriesJoining Nexmo
2018-03-31Things are changing at Coffee and Code HQ (now tonys-notebook.com).
Filed in: PersonalThe lost art of fixing electronics
2018-03-01Some personal thoughts on the lost art of fixing electronics.
Filed in: StoriesReal-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: SystemsReal-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: SystemsReal-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: SystemsReal-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: SystemsLimits of Markdown
2017-11-24In which I discuss the limitations of Markdown when constructing websites and documentation systems.
Filed in: ToolsHow 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: CodeDealing 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: CodeThe woeful web
2017-11-07In this article I look at what I think are some serious issues with the web today.
Filed in: RandomCaching 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: RetroEver expanding memory
2017-11-01A brief look at how console memory has increased over the years.
Filed in: SystemsHow long to transfer a 1TB file?
2017-10-31How long does it take to transfer a 1TB file? Python can help.
Filed in: CodeCracking 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: CodeWolfenstein's memory manager
2017-10-27An overview of the Wolfenstein 3D compacting memory manager.
Filed in: SystemsTracing version of malloc
2017-10-25I managed to create some useful macros for debugging C programs.
Filed in: CodeDiving into the buffer pool
2017-10-23In this article I provide some brief notes on buffer pools.
Filed in: SystemsSpreadsheets 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'Stdout was a bad, bad boy'
2017-10-19Sometimes an application may open `stdout` with ASCII encoding, rather than UTF-8.
Filed in: CodePython env issue on Ubuntu 16.04
2017-10-17Describes an issue where Python couldn't be found on Ubuntu.
Filed in: ToolsExcel ain't a database!
2017-10-15A light-hearted story on the problems of using Excel as a database.
Filed in: StoriesHow Python saved my sanity!
2017-10-14A light-hearted look into how Python can help you retain your sanity!
Filed in: StoriesCalculating entropy
2017-10-11This article looks into how to calculate entropy. The article includes example C code.
Filed in: CodeCan Rust help?
2017-10-10In this article I look into some problems with C pointers and wonder if Rust can help.
Filed in: CodeTales from the Bcrypt
2017-10-09Bcrypt proves to be a very convenient library for encrypting passwords.
Filed in: CodeTracing memory allocations
2017-10-05On various attempts to try and trace memory allocations.
Filed in: CodeDon'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: ToolsRemembering 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