It is rare to see a piece of software considered “done”. The TeX typesetting engine in one of the few examples I could name. Why isn’t this more common?
Articles about programming
This article covers some aspects of using SSH keys with github that are left out of the original documentation on github.
It assumes that you’ve been using HTTPS with a password for remote access to github.
This is based on an answer I gave on stackoverflow. That answer is specific to the
tkintertoolkit that comes with Python. The principles apply to other GUI toolkits and languages as well but the terminology used (like
mainloopand idle task) may be different.
This article documents how I set up Python and the syslog daemon so that Python programs can log to syslogd.
When you are exploring a problem, in general first write a command-line program whenever possible.
It will take less effort to write then a full-blown GUI.
Recently I wrote a program to remove the protection from ms-excel files.
The original version was written as a command-line program. Later I re-used the relevant code for a GUI program for use on ms-windows. This was mainly for the benefit of some colleagues who are not comfortable with using the command-line.
In this article I want to contrast the two programs.
There are basically two ways in which one can make use of a modern CPU with multiple cores for computationally intensive work.
- Using multiple threads within one program (multithreading).
- Using multiple (single-threaded) programs that communicate (multiprocessing).
In the first case, all data is implicitly shared. In the second case, data must be explicitly shared or communicated.
The first option is often said to be more convenient. I would like to make the case that this usually makes the task more difficult, because of the need to manage all shared data.
Sometimes I need to use some binary data (e.g. a bitmap image) in a Python script. In a package, you can store this data portable in a
datasubdirectory of a modules using the
setuptools.setup. This won’t work in a standalone script. You can of course make your script into a package, but here I want to show an alternative solution.
The ImageMagick suite has been in my software toolbox for years. It is my go-to tool for manipulating bitmap images. Over the years I have written several front-ends for specific tasks for in Python.
In general, I have used the subprocess module to launch
After some initial experiments with sqlite as a replacement for a json data file format (which I did not pursue in the end), I have now started using sqlite in earnest. And I must say that I quite like it.
This document explores how an SQLite database could be used to store data for the resin-calculator. Normally, the recipes are a dictionary keyed to the name of the resin. The value of each recipe is a list of (component, parts-by-weight) tuples. Since a database only contains tables, where each row has the same form, how do we store such infomation in a database?