Mathematics, philosophy, programming, in-line skating, and everything in between. More about me…

My Blog

My Latest Tweets

Follow me on Twitter…
English | Czech
Choose your language. I write in English, but I translate most of my articles to Czech as well. Zvolte si jazyk. Píšu anglicky, ale většinu svých článků překládám i do češtiny.

Programming

Late Night Meeting of Gödel and Turing?

Hacking together concepts from mathematical analysis, mathematical logic, and computer science and finding similarities while half asleep can be fun! :-)

November 2, MMXI 4.47 PM — Mathematics, Philosophy and Programming. 1 comment.

seex: Self-expanding Archive Creator

As a part of school assignment, I wrote a self-expanding archive creator in the form of a UNIX shell script. The script should be POSIX-compatible, it’s very well documented, and features some interesting processing of its own source code.

October 10, MMXI 7.00 AM — Linux, Programming and bash.

5 Software Development Lessons… Learned The Hard Way

I have had to maintain some rather big pieces of software I wrote a few years ago. Apart from being a special kind of hell (“WTF?! How could I have written atrocities like these?”) this experience reminded me what I’ve learned during those eight years I’ve spent writing software for money.

September 1, MMXI 4.00 AM — Personal and Programming.

Two Handy XML Tools

I need to e(x)ternalize my new software discoveries before I forget them again :-)

February 1, MMX 6.00 AM — Programming.

Matrix Multiplication in Galois Fields With Python

A few weeks ago I needed to quickly verify a result of matrix multiplication. Having only a few minutes, I had to resort to a DIY solution instead of finally learning how to use numpy (yeah, still on the TO DO list…)

January 13, MMX 7.45 AM — Mathematics, Programming and Python. 1 comment.

tcviz 1.2

I’ve released a new version of my tcviz script. Apart from making a few improvements under the hood, I’ve fixed a bug – never again will tcviz choke on hexadecimal major/minor numbers :-)

December 28, MMIX 1.00 PM — Linux, Programming, Projects and Python.

dæmonēs: Easy Daemon Management

Since I develop and test various web applications, I usually need to run a web server and one or two database servers. To avoid wasting resources, I start the necessary server daemons only when I need them. Unfortunately, this method is rather uncomfortable. Or, it used to be. Until I wrote a script called daemones.

September 14, MMIX 11.25 AM — Linux, Programming, Projects and Python.

tcviz 1.1

A new version of my little tcviz script is out. I’ve fixed a few ugly bugs. tcviz can now also load the TC specs from files instead of reading live TC setup. This is mostly useful for debugging.

July 30, MMIX 1.15 PM — Linux, Programming, Projects and Python. 1 comment.

abacus 1.1

I’ve just released a bug-fixing version of the abacus daemon. Two compilation-time errors have been fixed.

July 21, MMIX 2.50 PM — C++, Linux, Programming and Projects.

abacus: a Key-Counting Daemon

abacus is a simple daemon that counts every key that you press. Its only use is to generate interesting charts that show how much you type every day :-)

July 14, MMIX 11.00 AM — C++, Linux, Programming, Projects and Python.

autoEQ: The Taming of the Amarok Equalizer

Are you tired of manual enabling, disabling, and reconfiguring the Amarok equalizer? I used to be… until I developed a nice Amarok script to do the work for me. Meet autoEQ, a program that monitors what tracks you listen to and automatically selects equalizer presets according to your own rules.

June 28, MMIX 7.00 AM — Linux, Programming, Projects and Python.

Visualizing Linux Traffic Control Setup

In the past six months I had to deal with Linux traffic control (TC) a lot. I was literally blown away by the advanced features of the system. Of course, the versatility comes for the usual price: complexity. I definitely do not regret the time spent on understanding the principles of classes, qdiscs, filters, major and minor numbers, etc. However, I think I have found a way to work with them more easily.

April 5, MMIX 12.00 PM — Linux, Programming, Projects and Python. 11 comments.

Graphing Subversion Commit Activity II.

Long time ago I published my little commitChart script. Since then, I have reworked it several times. The current version is exactly three times better than the old one :-)

April 2, MMIX 9.20 AM — Linux and Programming.

Three Drops of Python

The more I get to know Python the more I like it. In this post I am going to share three code fragments that I wrote in the past few months. Whether useful or not, they demonstrate the beauty of the language that I admire. No doubt my code could be improved. I’ll be grateful for any suggestions.

February 17, MMIX 11.00 AM — Programming and Python.

Graphing Subversion Commit Activity

I like graphs. Writing little scripts that somehow utilize the gnuplot program is my favorite pastime. Today I am going to share one such script that might be actually useful :-).

September 30, MMVIII 11.00 AM — Linux and Programming. 1 comment.

Simple Object Improvement in PHP5

PHP has many unpleasant features. One of them is a certain inconsistency when handling object properties and object methods. When you try to use a nonexistent method, PHP throws a fatal error and stops the execution. However, access to an undefined property results in a mere notice. There is a primitive way to remedy this, however. We can replace the notice by a nice, juicy fatal error.

September 1, MMVIII 7.00 AM — PHP and Programming.

Vita::config – reading config files

In a follow-up to my post about Vita::string, I release another part of my micro-library: class serving as a gateway to simple configuration files.

August 11, MMVIII 12.00 PM — C++ and Programming.

Unveiling Project Nexus

Today I am going to publish a major project of mine: Nexus, parallel computing grid and arbitrary precision arithmetic. The project came into existence under special circumstances and its development has dominated my life for several months. I consider it to be an important milestone on my personal path to self-improvement. Even though it is now over and I don’t intend to continue it, the gained experience is unforgettable. So, what exactly is Nexus about?

July 25, MMVIII 2.28 PM — Programming and Projects.

Easier Subversion Operation – Subversion Shell

Subversion version control system is one of the tools I use every day. Over the time I realized that many Subversion tasks are more or less repetitive – checking the logs of the last few revisions, adding or removing files, comparing changes, committing to the repository, updating the working copy… in the end I created Lazy Programmer’s Best Friend™. Meet SVNshell, a script simplifying everyday Subversion tasks.

July 22, MMVIII 6.52 AM — Linux, Programming and bash.

Vita::string – a slightly better C++ string

In the past year and a half I worked on several bigger C++ projects. Each one required string handling, and every time I found the basic std::string class lacking a few bits and pieces. I consequently derived my own class and started adding the missing capabilities.

July 10, MMVIII 2.17 PM — C++ and Programming.