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! :-)
Mathematics, philosophy, programming, in-line skating, and everything in between. More about me…
Hacking together concepts from mathematical analysis, mathematical logic, and computer science and finding similarities while half asleep can be fun! :-)
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.
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.
I need to e(x)ternalize my new software discoveries before I forget them again :-)
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…)
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 :-)
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.
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.
I’ve just released a bug-fixing version of the abacus daemon. Two compilation-time errors have been fixed.
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 :-)
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.
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.
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 :-)
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.
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 :-).
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.
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.
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?
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.
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.