Welcome to Tony's Notebook

Playing with Pygame

2021-02-21

I needed some light relief, so I started messing with Pygame.

Filed in: Python (Primarily about programming in Python)

Joining Ably

2020-12-06

I am joining Ably to work on their developer documentation.

Filed in: Work (Work related)

Server-Sent Events (SSE)

2020-11-29

In 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-27

In 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-25

In 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-14

In 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-10

How to secure your Flask web app with HTTPS and Basic Authentication

Filed in: Python (Primarily about programming in Python)

Troubleshooting Ruby Gems

2020-10-06

In 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-04

In this article I present the FlySpy persistence functionality

Filed in: Code (Other programming (not Python or JavaScript))

FlySpy webhook handler

2020-09-30

In this article I present the FlySpy webhook handler

Filed in: Code (Other programming (not Python or JavaScript))

FlySpy architectural overview

2020-09-26

In 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-25

In 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-06

In 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-21

In 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-20

In 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-07

In 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-06

In 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-25

A 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-23

Shows you how to write your own command-line JWT generator in Python.

Filed in: Python (Primarily about programming in Python)

Exploring HTTP

2019-11-21

A 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-07

How 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-05

This article takes a look at using Unicode in Python.

Filed in: Python (Primarily about programming in Python)

What are Character Encodings?

2019-11-02

This 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-29

This 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-24

A 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-21

Looks 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-20

A first look at Python lambda

Filed in: Python (Primarily about programming in Python)

Python non-greedy regexes

2019-10-19

How to make Python regexes a little less greedy using the `?` modifier.

Filed in: Python (Primarily about programming in Python)

On missed opportunities

2019-04-11

Some 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-04

I 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-30

What 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-21

Creating video chat application with OpenTok.

Filed in: Nexmo (About using the Nexmo API)

Calculating compound interest

2019-03-05T00:00:00.000Z

In 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-13

On 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-02

In 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-02

In 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-01

This 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-30

This 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-06

In 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-05

In 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-11

In 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-10

In 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-08

In 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-02

This 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-20

Some thoughts on taking the plunge and becoming a smartphone owner.

Filed in: Personal (Personal updates and thoughts on life)

Intro to Ngrok

2018-04-13

A quick intro to the wonders of Ngrok.

Filed in: Tools (Useful command line tools, applications, and shell)

Joining Nexmo

2018-03-31

Things are changing at Coffee and Code HQ (now tonys-notebook.com).

Filed in: Work (Work related)

The lost art of fixing electronics

2018-03-01

Some 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-28

My 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-28

A look back at 'bootstrapping' in the 1980s.

Filed in: Retro (Digging back into the old days of tech)

Real-time systems - web

2018-01-19

Previous 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-18

Light-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-17

This 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-16

This 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-24

In 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-20

This 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-14

In 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-07

In 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.000Z

A 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-01

A 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-31

How 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-29

In 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-27

An overview of the Wolfenstein 3D compacting memory manager.

Filed in: Systems (Algorithms, data structures, concepts, OS, general systems)

Tracing version of `malloc`

2017-10-25

I 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-23

In this article I provide some brief notes on buffer pools.

Filed in: Systems (Algorithms, data structures, concepts, OS, general systems)

Spreadsheets everywhere

2017-10-20

On 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-19

Sometimes 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-17

Describes 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-15

A 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-14

A light-hearted look into how Python can help you retain your sanity!

Filed in: Python (Primarily about programming in Python)

Calculating entropy

2017-10-11

This 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-10

In 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-09

Bcrypt 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-07

On solving a mysterious problem in a CGI web app.

Filed in: Tools (Useful command line tools, applications, and shell)

Tracing memory allocations

2017-10-05

On 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-04

There 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-02

Back 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-01

A light-hearted story on why I still use Emacs.

Filed in: Emacs (The one true and totally splendiferous editor)