Roland's homepage

My random knot in the Web

Older articles (9/27)

  1. Cleaning up old port configurations

    On FreeBSD, ports save their configuration parameters under /var/db/ports. When you de-install a port, this configuration remains behind. This is how to clean old configurations up.

  2. Generating barcodes with “BWIPP

    Originally I looked for a Python module to generate barcodes, and I found the treepoem module. This used Pillow to create bitmaps, and I preferred to have PDF or other resolution independant formats. Looking through the README, I found that treepoem is a wrapper for bwipp. This is a set of PostScript procedures to generate barcodes.

    Since I’m familiar with using PostScript, I decided to use bwipp directly.

  3. On the nature of GUI programs

    This is based on answers (1, 2) I gave on stackoverflow. That answer is specific to the tkinter toolkit that comes with Python. The principles apply to other GUI toolkits and languages as well but the terminology used (like mainloop and idle task) may be different.

  4. Command-line versus GUI program

    TL;DR

    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.

    Introduction

    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.

  5. How convenient is multithreading compared to multiprocessing?

    There are basically two ways in which one can make use of a modern CPU with multiple cores for computationally intensive work.

    1. Using multiple threads within one program (multithreading).
    2. 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.

  6. Roll back a FreeBSD port with svnlite

    Sometimes I’m too hasty with updating ported applications, and I need to roll them back to a working version. Since I use svnlite to manage my ports tree, this is relatively easy. But since it is different than I’m used to (since I mostly use git), I thought I would document it here for convenience.


←  Page 8 Page 9 / 27 Page 10 →