Starting with real VoIP

Phone calls are notoriously expensive in Czech Republic. Despite the former communication monopoly is officially gone, the company still owns the landlines and you pay them high fixed monthly fees and high call rates. Fortunately, VoIP started to expand here recently.

I’ve already been using VoIP for some time, but only at the PC-to-PC level and it used to be full of software and network connection problems. But things get better and I start to use real VoIP services now. The choice of VoIP operators is wide and their prices are much better than with regular landlines or mobile phones.

My first experience was with 802.VOX. They are cheap but AFAICT they are incompetent as well. After using the service with common Linux clients I discovered several problems with their SIP implementation. For instance, they ignore declining calls or they create From: headers in an invalid format. Simply they don’t conform to RFC 3261 and that is not something I’m willing to use as a paid service.

After looking elsewhere I registered to ha-loo for my personal use. ha-loo is not as cheap as 802.VOX, but it is not expensive too and they offer several nice features which make the operator unique among Czech VoIP operators: No monthly fees (including disguised monthly fees such as credit expiration), low initial required credit, free regular phone number, 1+1 billing, instant payment through Ebanka, both SIP and IAX2 are supported, a dedicated VoIP line to our network, and 1-hour trial number to test the service before you sign up. Let’s see, so far their services seem to work well.

Not without help

There are simple facts which one should nevertheless repeat as often as needed. We are sometimes full of doubts about things we do. But if God gives us a task, there is a reason He did so and He doesn’t leave us without his help.


Yesterday morning was -22°C cold here. This was the lowest temperature I can remember I’ve ever experienced. Cool.

I’m old enough now to observe some changes in clime here. About 20 years ago summers often used to be dry and there wasn’t much snow in winters. Last years there is more snow and winters seem to be more sunny and somewhat colder. Perhaps this observation is subjective, perhaps it’s not. But I think clime has been changing during this period, for whatever reason.

From Konqueror to Firefox

Several latest versions of Konqueror use to crash, usually about once or twice a week. This is not something I’m able to fix easily and as I got sufficiently annoyed (including some missing features such as inability to block popups or to show page source in a sane way) I decided to move to another browser.

There is hardly any real alternative other than Firefox. So I switched to Firefox 1.5. The result? Firefox has crashed three times during the first day of its use…

Stepping down with GUI toolkits

I write a small application which works with Festival speech synthesis system. As Festival modules I use are written in Scheme, I started to write the application in Common Lisp and McCLIM. But I had to step back from this decision soon. McCLIM is an excellent GUI toolkit, but it lacks support for Czech, which is absolutely required by my application. As there is no real maintainer of McCLIM and the team of occasional contributors is generally not responsive even when you try to make patches, I didn’t want to risk blockers in the later stages of my project.

I moved to Guile and guile-gnome. That seemed to be a natural choice, GTK+ is a proven and stable platform and despite I missed McCLIM high-level functions I hoped to benefit from the implementation of the whole project in Scheme. But it occurred again that using foreign bindings is painful. guile-gnome platform is basically undocumented and based on a foreign bindings generator which is hard to understand and without proper documentation too. After several battles with guile-gnome I had to give up and rewrite the UI part to C (the rest remains written in Guile).

The plain C GTK+ UI works now. Well, the basic UI concepts of GTK+ look like ten years behind CLIM 2.0 (i.e. somewhere around 1980), programming in GTK+ is no way comfortable and the thousands of low-level functions are far from elegance. But what is more important is that GTK+ works and is properly documented. You spend predictable amount of time on low-level coding instead of completely unpredictable amount of time on reading and fixing toolkit source code.

Back to math

I was curious whether one can return to same basic math (calculus and linear algebra in this case) after several years of inactivity in those areas. I was positively surprised that while I forgot many things I was still able to refresh my knowledge quickly. And not only that, I was able to understand some things better than before. So fortunately the years of inactivity had probably no big damaging effect on my mathematical abilities.

I could observe another interesting effect. We computer professionals use to do things quickly without caring too much about bugs – the bugs can be fixed later. Mathematics doesn’t tolerate this approach, computations are often not modular and fixing errors is more expensive. And you don’t have always chance to test the obtained results for corectness which makes errors more dangerous. I was shocked to see how wrong my first computations were. Fortunately I could restore the “mathematical mode of operation” too and got the ability to perform correct computations again.

Last but not least, mathematics is still fun for me. Very well.

I think we miss mathematics in our lives a lot. We allow ignorance to take over our thinking, with corresponding effects on our work. Let’s return to math, we can always learn from it. Demand it – math is power!

Shiny nights

These days we have clear sky, full moon and a lot of snow. We can’t enjoy such wonderful conditions at our geographical location often. And because winter moon is high, I took my old photography equipment (which suffers of no problems working at -10°C for long time) and entered the night to take some snapshots of it. Unsurprisingly photographing under moon light proved to be tricky, I don’t expect any usable result. But I can give you one advice immediately: Before you take your heavy bag with tripod and dive into cold winter night, check the camera remote control, which always used to be in the bag, is still there and it’s there at its usual place.

Introductory economics textbooks

I needed to get some very basic knowledge of economics principles, so I looked for introductory economics textbooks (in Czech). The classic Samuelson’s and Nordhaus’s book Economics was the most expensive one and its Czech edition was dated 1991. I wasn’t willing to pay such a big amount of money for an about 15 years old edition, so I tried other options: Robert Holman’s book Ekonomie and Jiří Blažek’s book Základy ekonomie 1.

It was interesting to compare the two books. Blažek’s book is short and it is a pure textbook. Holman’s book is quite thick (there are two versions of it, I’m talking about the thicker one) and is very much based on examples which are often very recent (the book has been regularly updating) and related to current Czech economy. So it allows one to understand things well. It’s useful not only as a textbook, but also for general information and understanding things you can listen on news or read in newspapers.

But there are things I don’t like about the Holman’s book. Despite it’s much larger (and much more expensive) than the Blažek’s textbook, it doesn’t mention some of the things explained there. Blažek’s book mentions more terms and more names, which is important when you want to get more information from Internet. So the Holman’s book is in some sense incomplete. But what is worse, it feels biased. When reading it, you can understand why Václav Klaus has made Holman a member of Czech National Bank Council. On the contrary, when reading Blažek’s book you get no idea which economic theories the author prefers. Nothing against one’s economic opinions (whether you agree with them or not), but when reading a biased book, you simply don’t believe it. Perhaps it’s not bad to doubt about much of the text, but I think a textbook author should just present the subject and unbiased facts and let the readers to think about their implications without prejudice. Too bad, I like the Holman’s book otherwise.

Tramping in Emacs

Why to use separate terminal applications for remote connections when one can use Emacs? Why to run remote Emacs of different version, in different configuration, with echo delays, without your customizations, etc.? Why to pollute your desktop with another window and why to switch between it and Emacs all the time? Why to run multiple editors?

The only reason I didn’t simply use Tramp for remote connections was lack of command line completion. But that can be done with Tramp too, one just must configure it. rlogin.el doesn’t seem to be directly useful for that purpose, but it’s useful for getting a clue. So I wrote a little hack:

(defun my-shell-directory-tracker (command)
  (when (string-match "^ssh " command)
    (make-local-variable 'comint-file-name-prefix)
    (let ((host (comint-substitute-in-file-name
                 (comint-arguments command nil nil))))
      (set (make-local-variable 'comint-file-name-prefix) (format "/%s:" host))
      (set (make-local-variable 'comint-process-echoes) t)
      (cd-absolute (format "%s~" comint-file-name-prefix))
      (rename-buffer (format "*shell:%s*" host)))))
(add-hook 'comint-input-filter-functions 'my-shell-directory-tracker)

Now I can enjoy remote editing (both editing files and editing command lines) quite comfortably and without echo delays.

This hack is not perfect, but it has good usefulness/effort ratio. If you can improve it or know about a better solution, please tell me.