Roland's homepage

My random knot in the Web

Older articles (3/20)

  1. 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.

  2. 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.

  3. 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.

  4. Including binary data in Python scripts

    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 data subdirectory of a modules using the package_data argument of 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.

  5. My e-mail setup

    For years I’ve been using fetchmail and procmail for incoming mail. However, both of these programs haven’t been maintained for years. So it was time to change.

  6. Luminous clouds

    My balcony gets the evening sun. Sometimes the sun and clouds make for a stunning view. See below.

  7. A simple feed reader for Youtube

    As an exercise, I wrote a small script to read the Atom feeds for some favourite youtube channels. Of course I could have installed a “real” feed-reader, but that would be overkill and not half as much fun. :-)

  8. Attempting a conky replacement in Python (part 2)

    In part 1 we say that a simple replacement for conky for generating a statusline for i3 can be achieved. But since it uses the subprocess module to call external programs it is pretty CPU intensive.

    The question now is if we can reduce that? For that we’re going to use mmap to look at the mailbox, and call sysctlbyname(3) using ctypes to get the remaining system information. Note that sysctl et al and the names used are specific to FreeBSD.


←  Page 2 Page 3 / 20 Page 4 →