Blog update

Few new additions appeared on the blog. First of, you can now subscribe through Atom or RSS2 feeds. The subscribe button will take you to feed burner managed feed, but there are also 2 direct feeds linked with the website, so whatever software you're using, it should be possible to subscribe to them.

I've also added the ability to browse blog by tags and archive. There is a small slide down handle below the logo. Clicking it will show the browsing menu for the blog.

Embedding python in a C++ application

Recent events has brought me back to C++, and its always good to play with it - especially with C++11.

Today I've been messing around with embedding python. Turns out it's pretty easy, but the resulting code is very verbose. The whole API is in C, so no RAII. And since python uses reference counting, in C it has to be done manually by calling Py_IncRef and Py_DecRef. I wrote a very simple wrapper to reduce the amount of boilerplate code (available here), here is the example from Python docs:


Finally, after all those years I've managed to create my website from scratch. There has been countless versions never published, and the only thing constant is the logo. I know it's far from perfect, but I've made it in high school around 10 years ago, and it survived all that time, so it deserves to be here :). I lost the original .xcf file, so modifying it would be pretty hard, only the .png version remained.

The blog will focus on coding and maybe a bit of linux administration, since I'm using it on an everyday basis, and if I run into some problems, and I know I will :), I'll write about them and the solution if I find one. There are many things still missing, and I will add those in the following days, namely:

  • No feeds: this will probably be the first thing I'll be working on.
  • No trackbacks/pingbacks and generally rather weak integration with other sites.
  • No way to browse the blog other than viewing the posts in the reverse chronological order, or by clicking a tag at the bottom of the post. Since there aren't many posts right now, this has a low priority.

I've also have a lot of work in documenting my nweb framework and nwman, so it may take some time, but me writing code is much more probable than me writing the documentation.

I hope you'll enjoy the blog, and find something interesting here.

iwlwifi times out on authentication

I've recently tried sabayon linux, and I've had 1.5hr battle to get the wifi to work. After dozens of different forum posts, I've found the solution. The iwlwifi module needs additional parameter, otherwise it'll indefinately loop during auth (time out after time out).

# /etc/modprobe.d/iwlwifi.conf
options iwlwifi bt_coex_active=0

What's more funny is the fact that few years back, when I was installing gentoo I had the same problem, I just forgot about it. Only scanning my gentoo modprobe configs shown me I've tackled this problem in the past :)

CMake introduction


This post was copied from my previous (unmaintaned) blog at It was only a draft, I never finished it, what you can see with the missing sections at the bottom. If there will be an interest in those topics, I will write a follow up.


The windows way

When I switched to linux as my primary desktop OS there were a few - or even more :) things i had to adjust to. The "linux way" is completely different than windows. In the latter there is a philosophy to create applications that accomplish all the tasks related to the given problem, whether it is image processing (Photoshop), 3D modeling(3DS Max) or programming(VisualStudio). As a VS user for about 5 years I was accustomed to having IDE, debugger and build system integrated. For example I thought then that the build system is just a feature of an IDE, and all of the build related options are set through dialogs inside the IDE. I knew that I can use the compiler itself and pass arguments through the command line, but I never did nor needed to. I was also aware of the existence of something called makefiles but I saw them as a relict from the past and didn't bother with even learning about them.

The linux way

On the other side, there is linux. OpenSource operating system developed by programmers all over the world. It's development model promotes completely different approach. Since everybody can change the source of almost everything(be it kernel, or most of the applications) it's better to have everything neatly divided into components instead of monolithic architecture as in Windows. This way, it's easier for a single developer to work on a specific component, it's also easier to substitute a given component with the new one that does stuff better/faster or simply is better designed. This approach of course has its own pros and cons as everything. It's easier to have multiple tools doing the same job without implementing the whole 'system'(not as in operating system but more as of set of tools to do the job e.g. develop, model etc), but also requires more work to integrate those tools.

1 / 2 >>