Posts tagged life

Ping 2012!

Yes,  I am still here.

2011 was a very challenging year for me: in January 2011 I have been offered a very tempting position a company and I have accepted it. It’s a very small “services” company but with large expansions plans. The whole 2011 I was busy building a new system, maintaining some old ones (and gradually deprecating those in favor of the new one). It was really challenging and most of all time consuming. I had barely any free time for myself and when I had any I spent it as personal relaxation time.

The sad part about 2011 is that I did not get any chance to work on my open source projects (except the small updates to TZDB package). This year, hopefully, things are going to settle down work-wise and I will start getting more free time to work on my projects again!

I would like to give a small update about each project and what to expect from them in the future:

  • DeHL — A collection of code built around the concept of “type objects”. Unfortunately, DeHL only stirred some architectural interest in the Delphi community. It did not actually attract  many active users or contributors. If your code is not used in real life applications then it’s kind of useless. The good part is that it’s open source (BSD) and anybody doing a Google search can wind up there and download any piece of code for his/her use. Also, DeHL was a very good compiler “test case” in Delphi 2009/2010/XE time frame. I used it while working for Embarcadero a lot and it always revealed bugs and problems that got fixed internally. And finally, DeHL offered me the chance to learn some design principles I had never used before which ultimately made me a better programmer.But, unless someone steps up and takes over, DeHL is effectively dead.
  • TZDB — This project is alive. It’s a small project wise a very clear scope that was realized 2 years ago. I am only running a tool to generate new time zone definitions from time to time. Other than that TZDB is alive and kicking.
  • Collections — A collection of generic containers. What can be more exiting? (for me at least).  Well, I have on my machine a half-finished version 2.0. I have never completed it because it basically rips open some of the initial designs. Initially I inspired from .NET and Delphi collections classes to make a hybrid. Then I worked in Java and noticed that “Java’s way” is also a good way to go. So 2.0 tries to combine concepts of all three major players. This project is temporarily on hold until I find my direction.

The good thing about 2011 is that I had the chance to use all new shiny .NET technologies I haven’t touched before (I was a .NET 2.0 user before). This means, actual LINQ (collections and SQL) coding, WCF, WPF and all that stuff. This gave me a broader perspective on things. This also means that my most wanted Delphi feature for 2012 is anonymous types and lambdas. Hopefully we will see these features and we can build some very interesting and time-saving solutions around them.


I never make new year’s resolutions because I know I would not keep them. This being said, I hope I can get my act together and finally finish Collections 2.0.


Happy and a Fruitful New Year!

Surge of spam

Every time I post something to this blog I get 100+ spam messages a day for a few days. After this “rush” period the quantity starts dropping until I get maybe 2-5 spam messages a day … I’m pretty sure this post will bring much joy to the spam bots out there. It seems I just keep asking for it :)

How much spam do you guys (other bloggers out there) get on each post?

Ubuntu’s “evolution” is weird

I’ve decided to use GNU/Linux once again (after 3 years of pause). Installed Ubuntu 7.10 and configured all the stuff like I was used to a few years back. I was really amazed that my wireless card was supported and that Ubuntu shipped the requited kernel module to toggle my Wi-Fi kill-switch (bash script required). Everything was just fine until I decided to switch to Ubuntu 8.04.

I won’t start blogging about the suckiness of that release particularly, I will rather concentrate on the model in which all GNU/Linux distributions are “evolving”: Why, o why are distributions including experimental and untested software in their new releases? Why is everybody pushing the “testing” itself onto us users? How can the distribution be considered stable and evolving if the next release is worse then the previous?

To detaliate on the problem:

  • Broken Wi-Fi. The old (non-free) drivers for my Intel card were working perfectly in 7.10. They decided to replace them with an experimental OSS driver from Intel. My internet is coming through a wi-fi link so how can I download the back ports of the old driver?
  • Broken Gnome VFS. Yeah, they decided the old (working) implementation was rather bad so they started a rewrite. I completely agree but why include the new implementation which wasn’t even tested properly?
  • Broken Sound. I know PulseAudio is the new standard (and pretty cool) sound-card daemon. But why include it by default when it’s not yet stable? Probably many users are quite happy with it, but in my case (as in many others) it completely messed up the whole “Linux experience”.

So why not have a new system configuration module for this things? For example show the user the old components (stable) and the new ones (experimental). Let the user select which component he wants to use. One can select the “New Sound System” over the “Stable Sound System” and check if it works the way one wants it to work. If it has problems, revert back to the old module. That way I could have simply selected “Old Intel Wi-Fi drivers” and continue with my work. That is the fair way! This would also prevent thousands of posts all over the internet stating “Ubuntu 8.04 sucks”.

This post can probably be applied to any “bleeding-edge” distributions out there with ease (like Fedora).

1st post

Testing the blog engine. Looks like it works pretty well.